現象
Microsoft SQL Server 2016 または2017を使用していることを前提としています。 DAG がドロップして再作成した直後に、可用性グループを既存の分散可用性グループ (DAG) に参加させると、DAGへの参加に失敗し、次のようなエラーメッセージが表示されることがあります。
Always On: "フォワーダー" の状態で ag ' Agname ' のプロセス ag 構成変更通知を処理します (7)。エラー: 41162、レベル:16、状態: 0。可用性グループ 'Agname' の構成のシーケンス番号を検証できませんでした。 メモリ内のシーケンス番号が、持続しているシーケンス番号と一致していません。 可用性グループまたはローカルの可用性レプリカは、自動的に再起動されます。 この時点では、ユーザー操作は必要ありません。Always On: AR 'Agname' が通知を処理しています (「64」と入力します)。Always On: "フォワーダー" の状態で ag 'Agname' のプロセス ag 構成変更通知を処理します (7)。Always On: AR 'Agname' は、WSFC で AG の整合性を検証しています。Always On: AR 'Agname' 役割の切り替え [フォワーダー]--> [フォワーダー], トリガー [VALIDATE_AG_CONFIG], 状態 (wsfc = 1, metadata = 1)。Always On: AR 'Agname' が通知を処理しています (type-2)。
さらに、エラー 41162 では AG の状態を解決できるため、他の2つの問題が発生する可能性があります。 エラー 19407 とアサーションエラー。
Error 19407:
Nonqualified のトランザクションは、Always On 可用性グループの状態変更のためにデータベース DBName でロールバックされています。 推定ロールバック完了: 100%。 これは情報メッセージだけです。 ユーザー操作は必要ありません。[HaDrDbMgr:: SetPrimaryAR]Primary ID: agid、ReplicaID: ReplicaNumber、Agid: agdbnumberエラー: 19407、深刻度:16、状態: 2。可用性グループの "GroupName" と Windows Server フェールオーバークラスターの間のリースが期限切れになっています。 SQL Server と Windows Server フェールオーバークラスターのインスタンス間で接続の問題が発生しました。 可用性グループが正常にフェールオーバーされているかどうかを判断するには、Windows Server フェールオーバークラスターで対応する可用性グループリソースを確認します。
アサーションに対する
Always On: ' RESOLVING_NORMAL ' (0) での AG 'DatabaseNameの構成変更通知を処理します。
Always On: AR 'DatabaseName' は、WSFC で AG の整合性を検証しています。
Always On: GetTransportWithRef () は、local AR がオンラインではないため拒否されます。
データベース 'DatabaseName' の状態情報: ' (34:304752:1) ' コミット lsn: ' (0:0:0) ' commit Time: ' Jan 1 1900 12: 00am '
RECOVERY (DatabaseName, 6): 並列 redo ワーカーの停止を開始しています
* * ダンプスレッド-spid = 0、EC = 0x000001F280CC7250
FileLocationに送信されるスタックダンプ
* スタックダンプの開始:
* Location: "FileLocation": 1774
* 式: GetContext () >-GetController ()->GetHadrArRoleExternal () = = HADR_ROLE_FORWARDING_SECONDARY
* SPID: spid
* プロセス ID: ProcessId
エラー: 17066、レベル:16、状態: 1。
SQL Server Assertion: File: < "Filelocation" >、line = 1774 Failed Assertion = ' GetContext ()->getcontroller ()->GetHadrArRoleExternal () = = HADR_ROLE_FORWARDING_SECONDARY '。 このエラーは、タイミングに関連している可能性があります。 ステートメントの再実行後もエラーが発生する場合は、DBCC CHECKDB を使用してデータベースの構造の整合性を確認するか、またはサーバーを再起動して、メモリ内のデータ構造体が破損していないことを確認します。
エラー: 3624、レベル:20、状態: 1。
システムアサーションのチェックに失敗しました。 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack またはテクニカルサポートの修正プログラムで Microsoft から提供されている場合があります。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
解決方法
この問題は、以下の SQL の累積的な更新プログラムで修正されています。 Server
SQL Server の累積更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、すべて 修正プログラムと、以前のバージョンに含まれていたすべてのセキュリティの修正 累積更新プログラム。 SQL Server の最新の累積的な更新プログラムを確認します。
オンデマンドのホットフィックスの情報:
この問題は、次の SQL Server のオンデマンドの修正プログラムで修正されています。
関連情報
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。