次の方法で共有


データベース データ ファイルが使用できないときにフェールオーバーを実行するようにAlways On可用性グループを構成する方法

概要

SQL Server Always On可用性グループでは、データベース レベルの正常性検出は、データベース トランザクション ログでエラー (ディスク エラーなど) が発生した場合にのみフェールオーバーを実行できます。

データ ファイルでエラーが発生した場合、SQL Serverは Windows Server フェールオーバー クラスター (WSFC) にのみエラー通知を送信し、それに依存してポリシー構成に基づいて適切な決定を行います。

エラー 823 などが発生したときにフェールオーバーを実行するようにAlways On可用性グループを構成するには、次のいずれかの手順を使用します。

フェールオーバー クラスター マネージャーの構成

この手順では、現在のプライマリ ノードでロールを再起動する代わりに、可能な所有者のいずれかにフェールオーバーを行う WSFC ポリシーを設定します。

  1. フェールオーバー クラスター マネージャーを開きます。

  2. クラスターを展開し、[ ロール] を選択します。

  3. AG ロールを右クリックし、[プロパティ> ポリシー] を選択します

  4. 指定した期間内の最大再起動数の値を 0 に設定します。

  5. [ すべての再起動試行が失敗した場合は、指定した期間 (hh:mm) の後に再起動を開始 し、[ OK] を選択します

  6. 両方のノードが [可能な所有者] と [ 優先所有者] であることを確認します。

カスタム構成オプション

この手順では、SQL ServerおよびSQL Server エージェントで使用可能なアラート メカニズムを利用してエラーを検出し、フェールオーバーを実行する方法の例を示します。

  1. SQL Server Management Studioで、[SQL Server エージェント] を展開し、[アラート] を右クリックし、[新しいアラート]を選択します。

  2. [名前] の値を指定し、[種類] SQL Serverイベント アラートを選択し、一覧に従って [エラー番号] の値を 823 または他の目的のエラーに指定し、[OK] を選択します

  3. [応答] を選択し、[ジョブの実行] をチェックし、目的のジョブを選択し、[OK] を選択します

  4. [ジョブ ステップのプロパティ] ダイアログで、[ステップ名] の値を指定し、[種類] に [オペレーティング システム (CmdExec)] を選択し、[実行] SQL Server エージェント [サービス アカウント] を選択します。

  5. 次のフェールオーバー sqlcmd コマンドを入力します。

    sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"

    注:

    <SecondaryReplicaName><YourPassword>、および <AGName> はプレースホルダーです。 環境に合わせて変更する必要があります。 このスクリプトは参照の例です。 完全なスクリプトは、フェールオーバーを実行する前に他のチェックを実行する必要があります。