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 へのレプリケーション
次の手順を実行する必要があります。
- https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/demos/asr-automation-recovery/scripts/ASR-SQL-FailoverAG.ps1 で入手できるスクリプトを、Azure Automation アカウントにインポートします。 このリポジトリには、SQL の可用性グループをフェールオーバーするためのスクリプトが含まれています。
- 復旧計画の最初のグループの事前アクションとして ASR-SQL-FailoverAG スクリプトを追加します。
- 可用性グループの名前を指定するオートメーション変数を作成するには、スクリプトで使用できる指示に従います。
SQL Always On は、テスト フェールオーバーをネイティブでサポートしていません。 テスト フェールオーバーを実行するには、次の手順に従います。
- Azure で可用性グループのレプリカをホストする仮想マシンで Azure 仮想マシンのバックアップを構成します。
- 回復計画のテスト フェールオーバーをトリガーする前に、前の手順で作成したバックアップからテスト仮想ネットワークに仮想マシンを復旧します。
- バックアップから復元された仮想マシンでクォーラムを強制します。
- リスナーの IP アドレスをテスト フェールオーバーのネットワークで利用できる IP アドレスに更新します。
- リスナーをオンラインにします。
- 各可用性グループ リスナーに対応するフロントエンド IP プールの下で作成された 1 つの IP と、バックエンド プールに追加された SQL の仮想マシンを使って、ロード バランサーを作成します。
- 回復計画のテスト フェールオーバーを実行します。
回復計画にスクリプトを追加し、テスト フェールオーバーを実行して回復計画を検証した後は、計画フェールオーバーを実行できます。