次の方法で共有


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

まとめ

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

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

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

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

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

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

  2. クラスターを展開し、 Roles を選択します。

  3. AG ロールを右クリックし、 Properties>Policies を選択します。

  4. Maximum restarts in the specified period の値を 0 に設定します。

  5. チェック ボックスをオンにします。すべての再起動が失敗した場合は、指定した期間 (hh:mm) 後に再起動を開始し、OK を選択します。

  6. ノードの両方が Possible 所有者推定所有者であることを確認します。

カスタム構成オプション

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

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

  2. Nameの値を指定し、TypeSQL Server イベント アラートを選択し、一覧に従ってエラー数 823 またはその他の必要なエラーの値を指定してから、OK を選択します。

  3. Responseを選択し、実行ジョブをオンにして必要なジョブを選択してから、OKを選択します。

  4. [ジョブ ステップのプロパティダイアログで、Step name の値を指定し、Type の [Operating system (CmdExec)を選択し、実行にサービス アカウント SQL Server エージェントを選択

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

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

    Note

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