web-dev-qa-db-ja.com

可用性グループの自動フェイルオーバーはそれほど自動ではありません

SQL Serverサービスを停止したときの動作

  • 可用性グループが失敗します(SECONDARY SQL SERVERで解決し、クラスター管理で失敗状態)。

  • SQL ServerがクラスターIPに接続しない(SQL1とSQL2の両方に接続するためにソフトウェア内で固定クラスターIPを使用しています。x.x.x.10を使用すると、両方に接続する必要がありますx.x.x.9(SQL1)およびx.x.x.8のため、windows failover cluster(SQL2)。

    • AGを手動でセカンダリに移動する必要があります(SQL2とright click > failoverに接続します)。
  • すべてを元に戻すには、SQL1 SERVICEを手動で開始し、SQL1 SSMSright click > failoverを手動で接続する必要があります。クラスター管理でNODE2サービスを停止して、SQL1ノードを再びプライマリにします。

プライマリクラスタノードを停止したときの動作

  • 可用性グループはSQL2/NODE 2に移行します(現在、セカンダリはプライマリです)。

  • プライマリAGが解決していません...

  • SQL ServerはクラスターIPに接続します(SSMSについて話します。IPX.x.x.10に接続し、ノードx.x.x.8(プライマリ)を強制終了した後、セカンダリノードであるx.x.x.9に接続します。

  • クラスターノード(プライマリ)を再度起動すると、自動的にdo SQL1(プライマリ)が返されます。 x.x.x.10で接続しても、セカンダリノードに接続されます。

  • SQL1を再びプライマリにしたい場合は、**stop** node2 cluster serviceを使用して、SQL1を再起動する必要があります。このようにして、SQL1(プライマリ)は再びクラスタIPに接続するプライマリになります。

これは完全に私が持っていると私が思う自動的ではありません。 SQL Serverが停止した場合、すべての接続は自動的にセカンダリに接続されますが、フェイルオーバーするのはif the primary NODE is down(SQLサーバーサービスではない)だけだと思いました。プライマリに戻るには、SQL2クラスターサービスを停止する必要があるため、プライマリが再びプライマリになります。

何か足りないものはありますか?

共有ストレージでフェールオーバークラスターを使用していません。独自のディスクを持つ2つのサーバーがあります。

3
Racer SQL

この設定でクォーラムの問題があります。クラスターには2つの参加者しかありません。

  • SQL1
  • SQL2

SQL1がダウンした場合、SQL2がSQL1がプライマリであることを知る方法はありません。すべてのSQL2が知っているように、ネットワークはダウンしており、SQL1は依然としてプライマリとして動作しています。したがって、SQL2はRESOLVING状態になります(何をすべきかわかりません)。これは「スプリットブレイン」シナリオを防ぐためです。

2ノードクラスターの場合、通常、ファイル共有監視をWSFCクラスターのリソースとして追加する必要があります。これにより、残りのインスタンスSQL2がFSWとのクォーラムを確立し、プライマリとして引き継ぐことができます。

さらに、AGの動作では、バックアップされてもすぐに「元のプライマリ」に自動的にフェールバックされません。自動フェイルオーバーは、現在のプライマリで障害が発生した場合のみであり、「自動的にフェイルバックする」ことを意図していません。


説明したプライマリクラスターノードを停止する他のシナリオは、AGをフェールオーバーする方法ではないことに注意してください。 それをしないでください

次のように、フェールオーバークラスターマネージャーを使用して可用性グループを操作しないでください。

  • 可用性グループのクラスター化サービス(リソースグループ)でリソースを追加または削除しないでください。

  • 実行可能な所有者や優先所有者などの可用性グループのプロパティは変更しないでください。これらのプロパティは、可用性グループによって自動的に設定されます。

  • フェールオーバークラスターマネージャーを使用して、可用性グループを別のノードに移動したり、可用性グループをフェールオーバーしたりしないでください。フェイルオーバークラスターマネージャーは、可用性レプリカの同期ステータスを認識しないため、ダウンタイムが長くなる可能性があります。 Transact-SQLまたはSQL Server Management Studioを使用する必要があります。

9
Josh Darnell