SQL Server のためにディザスター リカバリーを設定する

完了

次に、SQL Server の事業継続とディザスター リカバリー (BCDR) テクノロジと Azure Site Recovery の組み合わせを使って、アプリケーションの SQL Server バックエンドを保護する方法について確認します。

SQL Server は、次の多くの方法でデプロイできます。

  • スタンドアロンの SQL Server: SQL Server とすべてのデータベースは、1 つのマシン (物理または仮想) にホストされます。 仮想化する場合、ローカルの高可用性のためにホストのクラスタリングを使用します。 ゲストレベルの高可用性は実装されません。
  • SQL Server フェールオーバー クラスタリング インスタンス (Always On FCI): Windows フェールオーバー クラスターに、共有ディスクが使用された SQL Server インスタンスを実行する複数のノードを構成します。 ノードが停止した場合、クラスターは SQL Server を別のインスタンスにフェールオーバーできます。 通常、この設定はプライマリ サイトに高可用性を実装するために使用されます。 このデプロイメントでは、共有ストレージ層の障害や停止は保護されません。 共有ディスクは、iSCSI、ファイバー チャネル、または共有 VHDX を使用して実装できます。
  • SQL Always ON 可用性グループ: 複数のノードをシェアード ナッシング クラスターに設定します。このクラスターでは、同期レプリケーションと自動フェールオーバーを設定した可用性グループに SQL Server データベースを構成します。

このプロセスでは、次のネイティブ SQL ディザスター リカバリー テクノロジを使って、データベースをリモート サイトに復旧します。

  • SQL AlwaysOn 可用性グループ: SQL Server 2012 Enterprise エディション以降 (SQL Server 2017 Standard Edition を含む) のディザスター リカバリーを提供します
  • 高い安全性モードの SQL データベース ミラーリング: その他の SQL Server デプロイ用。

サポートされるシナリオ

Site Recovery は、次の表のように SQL Server を保護できます。

シナリオ セカンダリ サイトへ Azure へ
Hyper-V はい はい
VMware はい はい
物理サーバー はい はい
Azure NA はい

サポートされている SQL Server のバージョン

サポート対象のシナリオでは、次の SQL Server バージョンがサポートされています。

  • SQL Server 2017 Enterprise および Standard
  • SQL Server 2016 Enterprise および Standard
  • SQL Server 2014 Enterprise および Standard
  • SQL Server 2012 Enterprise および Standard
  • SQL Server 2008 R2 Enterprise および Standard

サポートされる SQL Server の統合

Site Recovery は、次の表に要約したネイティブの SQL Server の BCDR テクノロジと統合して、ディザスター リカバリー ソリューションを提供できます。

機能 機能の詳細 SQL Server
Always On 可用性グループ SQL Server の複数のスタンドアロン インスタンスであり、複数のノードを持つフェールオーバー クラスターでそれぞれが実行されます。 データベースは、SQL Server インスタンス上でコピー (ミラー化) が可能なフェールオーバー グループにグループ化できるため、共有記憶域は必要ありません プライマリ サイトと 1 つまたは複数のセカンダリ サイトの間でディザスター リカバリーを実現します。 2 つのノードをシェアード ナッシング クラスターに設定できます。このクラスターでは、同期レプリケーションと自動フェールオーバーを設定した可用性グループに SQL Server データベースを構成しておきます。 SQL Server (サポートされているすべてのバージョン)
フェールオーバー クラスタリング (Always On FCI) SQL Server では、Windows フェールオーバー クラスタリングを使って、オンプレミスの SQL Server ワークロードの高可用性を実現します。 共有ディスクを備えた、SQL Server のインスタンスを実行しているノードは、フェールオーバー クラスター内に構成されます。 インスタンスが停止している場合、クラスターは別のインスタンスにフェールオーバーします。 クラスターは、共有ストレージのエラーまたは障害からは保護しません。 共有ディスクは、iSCSI、ファイバー チャネル、または共有 VHDX を使用して実装できます。 SQL Server (サポートされているすべてのバージョン)
データベース ミラーリング (高い安全性モード) 1 つのセカンダリ コピーで 1 つのデータベースを保護します。 高い安全性 (同期) と高パフォーマンス (非同期) の両方のレプリケーション モードで使用できます。 フェールオーバー クラスターは必要はありません。 SQL Server (サポートされているすべてのバージョン)
スタンドアロンの SQL Server SQL Server とデータベースは、単一のサーバー (物理または仮想) でホストされます。 サーバーが仮想である場合、ホスト クラスタリングが高可用性のために使用されます。 ゲストレベルの高可用性はありません。 Enterprise または Standard エディション

デプロイの前提条件

  • サポートされている SQL Server のバージョンを実行しているオンプレミスの SQL Server デプロイメント。 通常、SQL Server には Active Directory も必要です。
  • デプロイするシナリオの要件。

Active Directory のセットアップ

SQL Server を正常に実行するために、セカンダリ復旧サイトに Active Directory をセットアップします。

  • 小規模の企業: 少数のアプリケーションと、オンプレミス サイト用の 1 つのドメイン コントローラーがあり、サイト全体をフェールオーバーする場合、Site Recovery レプリケーションを使用し、ドメイン コントローラーをセカンダリ データセンターまたは Azure にレプリケートすることをお勧めします。
  • 中規模から大規模の企業:多数のアプリケーションと、Active Directory フォレストがあり、アプリケーションまたはワークロード単位でフェールオーバーする場合、セカンダリ データセンターまたは Azure に追加のドメイン コントローラーを設定することをお勧めします。 Always On 可用性グループを使用してリモート サイトに回復する場合は、回復される SQL Server インスタンスに使用するために、セカンダリ サイトまたは Azure に別の追加のドメイン コントローラーを設定することをお勧めします。

これらの指示では、セカンダリ ロケーションでドメイン コントローラーが使用できると仮定しています。

SQL Server Always On との統合: Azure へのレプリケーション

次の手順を実行する必要があります。

  1. https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/demos/asr-automation-recovery/scripts/ASR-SQL-FailoverAG.ps1 で入手できるスクリプトを、Azure Automation アカウントにインポートします。 このリポジトリには、SQL の可用性グループをフェールオーバーするためのスクリプトが含まれています。
  2. 復旧計画の最初のグループの事前アクションとして ASR-SQL-FailoverAG スクリプトを追加します。
  3. 可用性グループの名前を指定するオートメーション変数を作成するには、スクリプトで使用できる指示に従います。

SQL Always On は、テスト フェールオーバーをネイティブでサポートしていません。 テスト フェールオーバーを実行するには、次の手順に従います。

  1. Azure で可用性グループのレプリカをホストする仮想マシンで Azure 仮想マシンのバックアップを構成します。
  2. 回復計画のテスト フェールオーバーをトリガーする前に、前の手順で作成したバックアップからテスト仮想ネットワークに仮想マシンを復旧します。
  3. バックアップから復元された仮想マシンでクォーラムを強制します。
  4. リスナーの IP アドレスをテスト フェールオーバーのネットワークで利用できる IP アドレスに更新します。
  5. リスナーをオンラインにします。
  6. 各可用性グループ リスナーに対応するフロントエンド IP プールの下で作成された 1 つの IP と、バックエンド プールに追加された SQL の仮想マシンを使って、ロード バランサーを作成します。
  7. 回復計画のテスト フェールオーバーを実行します。

回復計画にスクリプトを追加し、テスト フェールオーバーを実行して回復計画を検証した後は、計画フェールオーバーを実行できます。