現象
Microsoft SQL Server 2016 または2017で DTC_SUPPORT = PER_DB の少なくとも1つの AlwaysOn 可用性グループがあることを前提とします。 可用性グループのデータベースの少なくとも1つを含むデータベース間のトランザクションが含まれている SQL Server トリガーを実行すると、アサーションエラーが発生する場合があります。 SQL Server エラーログでは、次のアサーションエラーメッセージが報告されます。
DateTime spid20s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-* ** * * * * SPID20S * 開始スタックダンプ:Datetime * Location: ファイル名: 3880DateTime spid20s * 式: m_state = = basexact:: XACT_PREPARED | |m_state = = BaseXact:: XACT_COMMITTEDDateTime SPID20S * SPID:20
DateTime spid20s Error: 17066、Severity:16、State: 1。DateTime Spid20s SQL Server Assertion: File: <FileName>、Line =LineNumber Failed Assertion = ' m_state = = basexact:: XACT_PREPARED | |m_state = = BaseXact:: XACT_COMMITTED '。 このエラーは、タイミングに関連している可能性があります。 ステートメントの再実行後もエラーが発生する場合は、DBCC CHECKDB を使用してデータベースの構造の整合性を確認するか、またはサーバーを再起動して、メモリ内のデータ構造体が破損していないことを確認します。DateTime spid20s Error: 3624、Severity:20、State: 1。DateTime spid20s システムアサーションチェックが失敗しました。 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack またはテクニカルサポートの修正プログラムで Microsoft から提供されている場合があります。
さらに、次のようなエラーメッセージが表示されることがあります。
DateTimeサーバーエラー: 19407、Severity:16、状態: 1。
DateTimeサーバー可用性グループの"GroupName"と Windows Server フェールオーバークラスターの間のリースの有効期限が切れています。SQL Server と Windows Server フェールオーバークラスターのインスタンス間で接続の問題が発生しました。可用性グループが正常にフェールオーバーされているかどうかを判断するには、Windows Server フェールオーバークラスターで対応する可用性グループリソースを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
解決方法
累積的な更新情報:
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server の累積更新プログラムについて:SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
オンデマンドのホットフィックスの情報:
この問題は、次の SQL Server のオンデマンドの修正プログラムで修正されています。
参照情報
詳細につい ては、terminologyソフトウェアの更新を説明するために Microsoft が使用する用語。