SQL Server のことなら SQL Quality SQL Server パフォーマンス チューニング、コンサルティング、アドバイス、相談、定期診断、トレーニング

ホーム > 技術情報 > SQL Server 2012 自習書 DWH 関連の新機能

SQL Server 2012 自習書シリーズ (HTML 版)
新機能編 No.2「AlwaysOn による可用性の向上」

松本美穂と松本崇博が執筆した SQL Server 2012 自習書シリーズの「新機能編 No.2 AlwaysOn による可用性の向上」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2014年12月26日]

目次へ | 前のページへ | 次のページへ

2.5 読み取り可能セカンダリ/セカンダリでのバックアップ

◆ 読み取り可能セカンダリ

可用性グループでは、セカンダリに対しても読み取り操作を行うことが可能です。それでは、これも試してみましょう。

1.まずは、オブジェクト エクスプローラーの[接続]メニューから[データベース エンジン]をクリックして、セカンダリ(SERVER2)へ接続します。

00061

2.接続後、ツールバーの[新しいクエリ]ボタンをクリックして、t1 テーブルに対する SELECT ステートメントを実行し、正しくデータが複製されていることを確認しておきましょう。

USE AGTestDB
SELECT FROM t1

00062

3.次に、リスナーSERVER1)へ接続して、プライマリ側へデータを 2件 INSERT してみましょう。

USE AGTestDB
INSERT INTO t1 VALUES(2)
INSERT INTO t1 VALUES(3)
SELECT FROM t1

00063

4.データの追加が完了したら、再度セカンダリSERVER2)へ接続して、データを確認します。

00064

プライマリ側で追加したデータが、すぐにセカンダリ側でも読み取りできることを確認できます。

このように、可用性グループでは、セカンダリに対するリアルタイムでの読み取りアクセスができる点が大きなメリットです。以前のバージョンのデータベース ミラーリング機能では、セカンダリに対してはデータベース スナップショットを作成しないとアクセスすることができず、リアルタイムで現在のデータを参照することができませんでした(スナップショット作成時点での古いデータしか参照できませんでした)。

◆ セカンダリ側でのデータベース バックアップの取得

可用性グループでは、セカンダリ側でバックアップを実行することも可能です。これも試してみましょう。

1.まずは完全バックアップを実行してみましょう、これを行うには、セカンダリ(SERVER2)へ接続して、次のように BACKUP DATABASE ステートメントで COPY_ONLY オプションを利用します(バックアップ先に指定している「C:\temp」フォルダーは、皆さんの環境に合わせて任意のパスへ変更して実行してください)。

BACKUP DATABASE AGTestDB
 TO DISk 'C:\temp\AGTestDB_full.bak'
  WITH COPY_ONLY

00065

このように、可用性グループでは、セカンダリに対してもバックアップを実行することができるので、テスト環境などを作成する際に大変便利です(本番環境と同じ環境を作成するのに、本番環境=プライマリ サーバーへの負荷をかけることなく行うことができるようになります)。

Note: Management Studio からバックアップを実行する場合
Management Studio からバックアップを実行する場合は、次のように該当データベースを右クリックして、[タスク]メニューの[バックアップ]をクリックします。
00066
データベースのバックアップ]ダイアログが表示されたら、次のように「コピーのみのバックアップ」をチェックすることで、セカンダリ上でもバックアップを取得することができます。
00067

Note: COPY_ONLY を付けない場合
セカンダリに対しての完全バックアップでは、COPY_ONLY オプションが必須になります。これを付けない場合は以下のエラーが発生します。
00068

2.次に、セカンダリに対して、BACKUP LOG ステートメントを実行して、ログ バックアップを取得してみましょう。

BACKUP LOG AGTestDB
 TO DISk 'C:\temp\AGTestDB_log1.trn'

00069

このように可用性グループでは、セカンダリに対してログ バックアップを実行することも可能です。

3.次に、もう一度ログ バックアップを実行しておきましょう。

BACKUP LOG AGTestDB
 TO DISk 'C:\temp\AGTestDB_log2.trn'

00070

◆ テスト環境などへのリストア

次に、セカンダリで取得したバックアップを別のマシンへリストアしてみましょう。

1.リストアを行うには、次のようにオブジェクト エクスプローラーで[データベース]フォルダーを右クリックして、[データベースの復元]をクリックします。

00071

データベースの復元]ダイアログが表示されたら、[デバイス]を選択して、[...]ボタンをクリックします。[バックアップ デバイスの選択]ダイアログでは、[追加]ボタンをクリックします。

2.バックアップ ファイルの検索]ダイアログが表示されたら、次のように「C:\temp」フォルダーを選択して、3つのバックアップ ファイルをすべて選択し、[OK]ボタンをクリックします。

00072

バックアップ デバイスの選択]ダイアログへ戻ったら、[OK]ボタンをクリックします。

3.データベースの復元]ダイアログへ戻ると、どのバックアップを戻せば最新の状態へ復元できるのかを提示してくれます(これは SQL Server 2012 からの新機能です)。

00073

次に、[転送先]の[データベース名]を任意のデータベース名(AGTestDB2 など)へ変更します(ここでの手順では、復元先となる別のマシンを用意せずにSERVER2 上にデータベースを復元しようとしているので、違う名前のデータベースとして復元します)。変更後は、[タイムライン]ボタンをクリックします。

4.これにより、[バックアップのタイムライン]ダイアログが表示されて、どの時点までのデータを復元するのかをグラフィカルに設定することができます(この GUI ツールも SQL Server 2012 からの新機能です)。

00074

ここでは[キャンセル]ボタンをクリックして、ダイアログを閉じます。

5.データベースの復元]ダイアログへ戻ったら、[ファイル]ページをクリックします。

00075

復元先]のファイル名を「AGTestDB2.mdf」と「AGTestDB2.ldf」へ変更します(既存の AGTestDB データベースと同じファイル名にならないように変更します)。

6.次に、[オプション]ページをクリックします。

00076

ログ末尾のバックアップ]セクションの[復元の前にログ末尾のバックアップを実行する]のチェックを外して、[OK]ボタンをクリックします。

これで復元が始まり、数秒すると[データベース "AGTestDB2" の復元に成功しました]と表示されれば、復元が完了です。

7.最後に復元が完了したことをオブジェクト エクスプローラーや SELECT ステートメントを実行して確認しておきましょう。

00077

このように、可用性グループでは、セカンダリに対しても完全バックアップやログ バックアップを実行できるようになったので、テスト環境や開発環境などを作成する場合に大変便利です(本番環境と同じ環境を作成するのに、本番環境=プライマリ サーバーへの負荷をかけることなく実施することができます)。また、SQL Server 2012 からは、バックアップ ファイルからの復元時のユーザー インターフェースが非常に使いやすくなった点もうれしいところです。

◆ SERVER3(非同期モード セカンダリ)での読み取り操作

ここまでは SERVER2 への読み取り操作とバックアップについて確認しましたが、次にもう 1台のセカンダリである SERVER3(非同期モードへ設定したセカンダリ)に対しても読み取り操作を実行してみましょう。

1.オブジェクト エクスプローラーの[接続]メニューから[データベース エンジン]をクリックして、SERVER3 へ接続します。

00078

2.接続後、ツールバーの[新しいクエリ]ボタンをクリックして、t1 テーブルに対する SELECT ステートメントを実行し、正しくデータが複製されていることを確認しておきましょう。

00079

このように、非同期モードの SERVER3 に対しても、SERVER2 と同じように読み取りアクセスが可能です。バックアップについても、同様に完全バックアップやログ バックアップを実行することが可能です。

目次へ | 前のページへ | 次のページへ

事例1

MPNロゴ


SQLQualityは執筆とセミナーを通じて技術の啓蒙やエンジニアの育成支援も行っています
最新刊
SQL Server 2012 の教科書
SQL Server 2012 の教科書(ソシム)

弊社オリジナル制作の
SQL Server 2012 自習書も
マイクロソフトのサイトで公開中!
ロングセラー
ASP.NET でいってみよう  SQL Server 2000 でいってみよう
ASP.NET でいってみよう
第7刷 16,500 部発行
SQL Server 2000 でいってみよう
第12刷 28,500 部発行


セミナー風景
セミナー風景

弊社執筆の
SQL Server 2012 自習書
マイクロソフトのサイトで公開中
全30冊
ダウンロードはこちら
弊社執筆の
SQL Server 2008 R2 自習書
マイクロソフトのサイトで公開中
全30冊
目次はこちら
松本美穂のコラム
(公開活動などのお知らせ)

第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回:iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回:PASS Summit 2012 参加レポート
第31回:SQL Server 2012 Reporting Services 自習書のお知らせ
第30回:SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回:書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回:SQL Server 2012 の Power View 機能のご紹介
第25回:SQL Server 2012 の Data Quality Services
第24回:SQL Server 2012 自習書のご案内と初セミナー報告
第23回:Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加

技術コミュニティでも活動中

Microsoft MVP for SQL Server

松本崇博 Blog(SQL Server Tips)
松本美穂ブログ(SQL Serverノート)