松本美穂と松本崇博が執筆した SQL Server 2012 自習書シリーズの「新機能編 No.2 AlwaysOn による可用性の向上」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2014年12月26日]
可用性グループでは、セカンダリに対しても読み取り操作を行うことが可能です。それでは、これも試してみましょう。
1.まずは、オブジェクト エクスプローラーの[接続]メニューから[データベース エンジン]をクリックして、セカンダリ(SERVER2)へ接続します。
2.接続後、ツールバーの[新しいクエリ]ボタンをクリックして、t1 テーブルに対する SELECT ステートメントを実行し、正しくデータが複製されていることを確認しておきましょう。
3.次に、リスナー(SERVER1)へ接続して、プライマリ側へデータを 2件 INSERT してみましょう。
4.データの追加が完了したら、再度セカンダリ(SERVER2)へ接続して、データを確認します。
プライマリ側で追加したデータが、すぐにセカンダリ側でも読み取りできることを確認できます。
このように、可用性グループでは、セカンダリに対するリアルタイムでの読み取りアクセスができる点が大きなメリットです。以前のバージョンのデータベース ミラーリング機能では、セカンダリに対してはデータベース スナップショットを作成しないとアクセスすることができず、リアルタイムで現在のデータを参照することができませんでした(スナップショット作成時点での古いデータしか参照できませんでした)。
可用性グループでは、セカンダリ側でバックアップを実行することも可能です。これも試してみましょう。
1.まずは完全バックアップを実行してみましょう、これを行うには、セカンダリ(SERVER2)へ接続して、次のように BACKUP DATABASE ステートメントで COPY_ONLY オプションを利用します(バックアップ先に指定している「C:\temp」フォルダーは、皆さんの環境に合わせて任意のパスへ変更して実行してください)。
このように、可用性グループでは、セカンダリに対してもバックアップを実行することができるので、テスト環境などを作成する際に大変便利です(本番環境と同じ環境を作成するのに、本番環境=プライマリ サーバーへの負荷をかけることなく行うことができるようになります)。
2.次に、セカンダリに対して、BACKUP LOG ステートメントを実行して、ログ バックアップを取得してみましょう。
このように可用性グループでは、セカンダリに対してログ バックアップを実行することも可能です。
3.次に、もう一度ログ バックアップを実行しておきましょう。
次に、セカンダリで取得したバックアップを別のマシンへリストアしてみましょう。
1.リストアを行うには、次のようにオブジェクト エクスプローラーで[データベース]フォルダーを右クリックして、[データベースの復元]をクリックします。
[データベースの復元]ダイアログが表示されたら、[デバイス]を選択して、[...]ボタンをクリックします。[バックアップ デバイスの選択]ダイアログでは、[追加]ボタンをクリックします。
2.[バックアップ ファイルの検索]ダイアログが表示されたら、次のように「C:\temp」フォルダーを選択して、3つのバックアップ ファイルをすべて選択し、[OK]ボタンをクリックします。
[バックアップ デバイスの選択]ダイアログへ戻ったら、[OK]ボタンをクリックします。
3.[データベースの復元]ダイアログへ戻ると、どのバックアップを戻せば最新の状態へ復元できるのかを提示してくれます(これは SQL Server 2012 からの新機能です)。
次に、[転送先]の[データベース名]を任意のデータベース名(AGTestDB2 など)へ変更します(ここでの手順では、復元先となる別のマシンを用意せずに、SERVER2 上にデータベースを復元しようとしているので、違う名前のデータベースとして復元します)。変更後は、[タイムライン]ボタンをクリックします。
4.これにより、[バックアップのタイムライン]ダイアログが表示されて、どの時点までのデータを復元するのかをグラフィカルに設定することができます(この GUI ツールも SQL Server 2012 からの新機能です)。
ここでは[キャンセル]ボタンをクリックして、ダイアログを閉じます。
5.[データベースの復元]ダイアログへ戻ったら、[ファイル]ページをクリックします。
[復元先]のファイル名を「AGTestDB2.mdf」と「AGTestDB2.ldf」へ変更します(既存の AGTestDB データベースと同じファイル名にならないように変更します)。
6.次に、[オプション]ページをクリックします。
[ログ末尾のバックアップ]セクションの[復元の前にログ末尾のバックアップを実行する]のチェックを外して、[OK]ボタンをクリックします。
これで復元が始まり、数秒すると[データベース "AGTestDB2" の復元に成功しました]と表示されれば、復元が完了です。
7.最後に復元が完了したことをオブジェクト エクスプローラーや SELECT ステートメントを実行して確認しておきましょう。
このように、可用性グループでは、セカンダリに対しても完全バックアップやログ バックアップを実行できるようになったので、テスト環境や開発環境などを作成する場合に大変便利です(本番環境と同じ環境を作成するのに、本番環境=プライマリ サーバーへの負荷をかけることなく実施することができます)。また、SQL Server 2012 からは、バックアップ ファイルからの復元時のユーザー インターフェースが非常に使いやすくなった点もうれしいところです。
ここまでは SERVER2 への読み取り操作とバックアップについて確認しましたが、次にもう 1台のセカンダリである SERVER3(非同期モードへ設定したセカンダリ)に対しても読み取り操作を実行してみましょう。
1.オブジェクト エクスプローラーの[接続]メニューから[データベース エンジン]をクリックして、SERVER3 へ接続します。
2.接続後、ツールバーの[新しいクエリ]ボタンをクリックして、t1 テーブルに対する SELECT ステートメントを実行し、正しくデータが複製されていることを確認しておきましょう。
このように、非同期モードの SERVER3 に対しても、SERVER2 と同じように読み取りアクセスが可能です。バックアップについても、同様に完全バックアップやログ バックアップを実行することが可能です。
第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 へ参加