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)。
right click > failover
に接続します)。すべてを元に戻すには、SQL1 SERVICE
を手動で開始し、SQL1 SSMS
とright 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つのサーバーがあります。
この設定でクォーラムの問題があります。クラスターには2つの参加者しかありません。
SQL1がダウンした場合、SQL2がSQL1がプライマリであることを知る方法はありません。すべてのSQL2が知っているように、ネットワークはダウンしており、SQL1は依然としてプライマリとして動作しています。したがって、SQL2はRESOLVING状態になります(何をすべきかわかりません)。これは「スプリットブレイン」シナリオを防ぐためです。
2ノードクラスターの場合、通常、ファイル共有監視をWSFCクラスターのリソースとして追加する必要があります。これにより、残りのインスタンスSQL2がFSWとのクォーラムを確立し、プライマリとして引き継ぐことができます。
さらに、AGの動作では、バックアップされてもすぐに「元のプライマリ」に自動的にフェールバックされません。自動フェイルオーバーは、現在のプライマリで障害が発生した場合のみであり、「自動的にフェイルバックする」ことを意図していません。
説明したプライマリクラスターノードを停止する他のシナリオは、AGをフェールオーバーする方法ではないことに注意してください。 それをしないでください :
次のように、フェールオーバークラスターマネージャーを使用して可用性グループを操作しないでください。
可用性グループのクラスター化サービス(リソースグループ)でリソースを追加または削除しないでください。
実行可能な所有者や優先所有者などの可用性グループのプロパティは変更しないでください。これらのプロパティは、可用性グループによって自動的に設定されます。
フェールオーバークラスターマネージャーを使用して、可用性グループを別のノードに移動したり、可用性グループをフェールオーバーしたりしないでください。フェイルオーバークラスターマネージャーは、可用性レプリカの同期ステータスを認識しないため、ダウンタイムが長くなる可能性があります。 Transact-SQLまたはSQL Server Management Studioを使用する必要があります。