[修正] SQL Server 2016 および 2017 で分散可用性グループの作成が失敗した場合に、エラー 41162 が発生します。

適用対象: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

現象


Microsoft SQL Server 2016 または 2017 を使用しているとします。可用性グループが DAG をドロップして再作成した直後に既存の分散可用性グループ (DAG) に参加すると、DAG への参加に失敗し、次のようなエラー メッセージが表示される可能性があります。
常時オン: 状態 'フォワーダ' (7) の AG 'AGName'に対する AG 構成変更通知を処理します。エラー: 41162、重大度: 16、状態: 0.可用性グループ'AGName'の構成のシーケンス番号の検証に失敗しました。 メモリ内シーケンス番号が永続化されたシーケンス番号と一致しません。 可用性グループまたはローカル可用性レプリカは自動的に再起動されます。 現時点では、ユーザーの操作は必要ありません。常時オン: AR 'AGName' が通知を処理しています (タイプ 64)。常時オン: AG 'AGName' の状態 'フォワーダ' (7) の AG 構成変更通知を処理します。常時オン: AR 'AGName' が WSFC で AG 整合性を検証するようになりました。常時オン: AR 'AGName' ロール遷移 [フォワード] --> [フォワーダ]、トリガー [VALIDATE_AG_CONFIG]、状態 (wsfc = 1、メタデータ = 1)。常時オン: AR 'AGName' が通知を処理しています (タイプ -2)。
さらに、エラー 41162 はAG 解決状態を引き起こす可能性があり、エラー 19407 とアサーションの失敗という 2 つの問題が発生する可能性があります。
Error 19407:
非修飾トランザクションは、常に可用性グループの状態の変更のためにデータベースDBNameにロールバックされています。推定ロールバック完了: 100%これは情報メッセージのみです。ユーザーの操作は必要ありません。[HaDrDbMgr::セットプライマリール]プライマリを AGID として設定する: AGNumber, レプリカID:レプリカ番号, AGDBID: AGDBNumberエラー: 19407, 重大度: 16, 状態: 2.可用性グループ'GroupName' とWindows サーバー フェールオーバー クラスタ間のリースは、期限 切れ。SQL Server のインスタンスと Windows サーバー フェールオーバー クラスタの間で接続の問題が発生しました。可用性グループが正しくフェールオーバーしているかどうかを確認するには、Windows Server フェールオーバー クラスタ内の対応する可用性グループ リソースを確認します。
アサーション:
常時オン: AG 'データベース名' のプロセス AG 構成変更通知を 'RESOLVING_NORMAL' (0) の状態で処理します。
常時オン: AR 'データベース名' は WSFC で AG 整合性を検証するようになりました。
常時オン: GetTransportWithRef() はローカル AR がオンラインではないため拒否されます。
データベース 'データベース名' - 強化された Lsn: '(34:304752:1)' コミット LSN: '(0:0:0)' コミット時間: '1900 1900 12:00AM'
回復 (データベース名, 6): 並列やり直しワーカーの停止を開始する
**ダンプスレッド - spid = 0、EC = 0x000001F280CC7250
ファイルロケーションに送信されるスタック ダンプ
*スタックダンプを開始:
*場所: "ファイルロケーション":1774
* 式: GetContext ()->GetController ()->GetHadrArRole 外部 () == HADR_ROLE_FORWARDING_SECONDARY
* SPID:スピッド
*プロセスID:プロセスID
エラー: 17066、レベル: 16、状態: 1 です。
SQL Server アサーション: ファイル: <"ファイルの場所">, line=1774 失敗したアサーション = 'GetContext (->GetController()->GetHadrArRole 外部 () == HADR_ROLE_FORWARDING_SECONDARY'このエラーはタイミングに関連している可能性があります。ステートメントの再実行後にエラーが解決しない場合は、DBCC CHECKDB を使用してデータベースの構造的整合性を検査するか、サーバを再起動してメモリ内のデータ構造が破損していないことを確認します。
エラー: 3624、重大度: 20、状態: 1 です。
システム アサーション チェックに失敗しました。詳細については、SQL Server エラー ログを確認してください。通常、アサーションの失敗は、ソフトウェアのバグまたはデータの破損が原因で発生します。データベースの破損を確認するには、DBCC CHECKDB の実行を検討してください。セットアップ中にダンプをマイクロソフトに送信することに同意した場合は、ミニ ダンプがマイクロソフトに送信されます。更新プログラムは、最新のサービス パックまたはテクニカル サポートの修正プログラムでマイクロソフトから入手できる場合があります。

状態


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

解決方法


この問題は、SQL の次の累積的な更新プログラムで修正されています。サーバー:
SQL Server の累積的な更新プログラムについて:
SQL Server の新しい累積的な更新プログラムには、すべての更新プログラムが含まれています。修正プログラムと前に含まれていたすべてのセキュリティ修正累積的な更新プログラム。SQL Server の最新の累積的な更新プログラムを確認してください。
オンデマンド修正プログラム情報:
この問題は、SQL Server の次のオンデマンド修正プログラムで修正されています。

関連情報


マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。