AG環境の1つでエラーが発生しました
可用性グループXXXXXXXとWindows Serverフェールオーバークラスター間のリースの有効期限が切れています。 SQL ServerのインスタンスとWindows Serverフェールオーバークラスターの間で接続の問題が発生しました。可用性グループが正しくフェールオーバーしているかどうかを判断するには、Windows Serverフェールオーバークラスターの対応する可用性グループリソースを確認します。
これでこの問題が発生した理由がわかりましたが、可用性グループが別のノードにフェールオーバーする代わりにクラッシュした理由を理解したいと思います。つまり、プライマリロールが解決に変更されたことが次のエラーでした。同じノードで可用性グループが自動的にオンラインに戻るまでに約1分かかりました。確かに、次に利用可能なノードにフェイルオーバーする必要がありますか?これは、すべてクォーラム内で投票を持つ5ノードのクラスターです。
これはSQL可用性グループが機能する方法ですか?つまり、AGがWindowsフェールオーバークラスターdllへの接続を失った場合、スプリットブレインシナリオを回避するためにフェールオーバーおよびクラッシュできませんか?
別のノードにフェイルオーバーする前に、最初に再接続しようとするこのデフォルトの動作をどこで構成しますか?
Sean Gallardyの回答 へのアドオンとして、自動フェイルオーバーは基本的に次の領域に依存します。
FAILURE_CONDITION_LEVEL = 2
、1に設定した場合、偶然にも、より高いレベルの条件、つまり2は考慮されません、3、4、5で、自動フェイルオーバーは発生しません。failover_mode
automatic(特にAGプロパティ)に設定されていない場合、AGはどのFAILURE_CONDITION_LEVELでも自動的にフェイルオーバーしませんポイント#1および2を参照すると、次のクエリで現在の構成を確認できます。
select name, failure_condition_level
from sys.availability_groups_cluster
go
select replica_server_name,
endpoint_url,
availability_mode_desc,
failover_mode_desc
from sys.availability_replicas
go