現象
SQL Server ミラーリング アーキテクチャでは、パートナー (ミラー) サーバーで SQL Server アサーションが発生することがあります。さらに、SQL Server エラー ログに次のようなエラー メッセージが表示されます。このエラーは通常、ミラー ペアを再構築する必要があることを意味します。
SQL Server アサーション: ファイル: loglock.cpp、 行 = 834 失敗アサーション = '結果 == LCK_OK' 。このエラーは、タイミングに関連している可能性があります。ステートメントの再実行後もエラーが引き続き発生する場合は、DBCC CHECKDB を使用してデータベースの構造の整合性をチェックするか、サーバーを再起動してメモリ内のデータ構造が破損していないことを確認します。エラー: 3624、重大度: 20、状態: 1.A システム アサーション チェックに失敗しました。詳細については、SQL Server のエラー ログを確認してください。通常、アサーションエラーは、ソフトウェアのバグまたはデータの破損が原因で発生します。データベースの破損を確認するには、DBCC CHECKDB の実行を検討してください。セットアップ中にダンプをマイクロソフトに送信することに合意した場合は、ミニ ダンプがマイクロソフトに送信されます。更新プログラムは、最新のサービス パックまたはテクニカル サポートからの QFE でマイクロソフトから入手できる場合があります。
メモこの問題が発生すると、ミニ ダンプ ファイルが SQL Server エラー ログ フォルダーに生成されます。このファイルには、"SQLDumpnnnn.mdmp" のような名前が付けられます。
原因
この問題は、いくつかの異なるシナリオで発生する可能性があります。各シナリオには異なる原因と解決方法があり、各シナリオで同じエラー メッセージとアサーションが発生する可能性があります。メモ
-
エラー署名は非常に具体的に見えますが、実際のエラーは失敗したアサーションが原因で発生します。たとえば、プロセス全体のクラッシュを引き起こすのではなく、できるだけクリーンに失敗するために、SQL Server コードでプロアクティブ チェックを実行するアサーションが原因でエラーが発生する可能性があります。
-
実際の原因を簡単に特定することはできません。マイクロソフト カスタマー サポート サービスは、通常、原因を特定します。これは通常、プリンシパル データベースの完全バックアップ ファイルと、問題の時刻をカバーするトランザクション ログ バックアップを収集することによって行われます。さらに、特定の設定で問題を再現するために、ミラーの完全なプロセス ダンプ ファイルが必要になる場合があります。
解決方法
サービス パック情報
この問題を解決するには、使用している SQL Server のバージョンに対応する最新の修正プログラムを入手します。詳細については、次の表を参照してください。
原因 |
サポート技術情報の記事 |
最初に固定 |
---|---|---|
プライマリとミラーのロック動作が異なる |
2938828 [FIX] データベース ミラーリングヒットアサートおよびミラーリング セッションは、SQL Server 2012 または SQL Server 2014 で中断状態を示します。 |
2931693 SQL Server 20142931078 SQL Server 2012 SP1 の累積的な更新プログラム 9 の累積的な更新プログラム 1 |
ロックのエスカレーションの問題 |
953625 [FIX] SQL Server 2005 がミラー化されたデータベースを同期するときにエラー メッセージ "式: 式 = 結果 == LCK_OK" |
951217 SQL Server 2005 サービス パック 2 の累積的な更新プログラム パッケージ 8 |
ページ分割中に移行をロックする |
974319 [FIX] SQL Server 2005、SQL Server 2008、または SQL Server 2008 R2 でデータベース ミラーリングを使用する場合の断続的なエラー メッセージとアサーションエラー: "SQL Server アサーション: ファイル: <loglock.cpp>、 行 = 823 失敗アサーション = '結果 = = LCK_OK'" |
974648 SQL Server 2005 Service Pack 3975976 SQL Server 2008975977 SQL Server 2008 サービス パック 1975976 SQL Server 2008 R2 用の累積的な更新プログラム パッケージ 1 の累積的な更新プログラム パッケージ 8 の累積的な更新プログラム パッケージ 6 975976 の累積的な更新プログラム パッケージ 6 |
Check_Constraintsオフの一括挿入/BCP |
SQL Server 2012 |
|
暗号化キーの変更:
|
SQL Server 2012 |
|
他のトランザクションと競合する圧縮操作 (PurgeIAM) |
982933 2 台の SQL Server 2005 サーバーのデータベース ミラーリングでプリンシパル上のデータ ファイルを圧縮するとエラー メッセージが表示される |
983329 SQL Server 2005 サービス パック 3 の累積的な更新プログラム パッケージ 10 |
ページ分割の後にロックのエスカレーションが続き、その後に割り当て解除とそのページの割り当てが続く |
983564 [FIX]データベース ミラーリングを使用すると、エラー メッセージが表示され、SQL Server 2008 または SQL Server 2008 R2 でデータベース ミラーリングが断続的に発生する |
983329 SQL Server 2005 サービス パック 32083921の累積的な更新プログラム パッケージ 10 SQL Server 2008 サービス パック 12289254 SQL Server 2008 サービス パック2261464 SQL Server 2008 R2 の累積的な更新プログラム パッケージ 3 の累積的な更新プログラム パッケージ 3 |
注意事項
-
最後の列には、修正プログラムを含む最初のビルドのみが一覧表示されます。SQL Server ビルドは累積的であるため、SQL Server 2008 R2 SP1 などの後のビルドには、これらの修正プログラムが含まれています。ただし、これらのビルドはテーブルに一覧表示されません。
-
SQL Server 2005 SP3 累積的な更新プログラム (CU) 10、SQL Server 2008 SP2 CU 1、または SQL Server 2008 R2 CU3 以降のビルドには、"lck_ok" アサーション シナリオに関するすべての修正プログラムが含まれています。この資料の執筆時点では、これらのビルドは少なくとも 1 つの完全な Service Pack に置き換えられました。サービス パックは、固定されたシナリオで SQL Server の最新のビルドのほとんどを保護する必要があります。使用している SQL Server のバージョンに対応した最新のサービス パックを入手する方法の詳細については、次のサポート技術情報番号をクリックしてください。
913089 SQL Server 2005968382 SQL Server 20082527041 SQL Server 2008 R2 の最新のサービス パックを取得する方法の最新のサービス パックを取得する方法
-
2 つのシナリオには、利用可能な修正プログラムが含まれていないことに注意してください。その理由は、これら 2 つの問題には、SQL Server トランザクション ログ内部の再構築が必要なためです。このような変更は、SQL Server のメジャー リリースにのみ含めることができます。この場合、Microsoft SQL Server 2012 で問題が修正されます。ただし、BCP/一括挿入シナリオは一般的です。BCP/一括挿入シナリオは、SQL Server 2008 および SQL Server 2008 R2 では修正されていないため、これらの製品の現在のビルドで "lck_ok" アサーションが発生する可能性が最も高い原因となります。このシナリオの詳細については、「関連情報」を参照してください。
-
この資料には、公開後に発見された問題が反映されない場合があります。必要に応じて、マイクロソフト サポート技術情報で新しい個別の "修正プログラム" 資料を検索できます。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
BCP/一括挿入シナリオ
次の条件に該当する場合、SQL Server 2008 または SQL Server 2008 R2 ミラーリング セットのミラー パートナーで、"result == LCK_OK" アサーションと共に 3624 エラーが発生することがあります。
-
プリンシパル データベースで BCP または一括挿入アクティビティが発生しています。
-
BCP/一括挿入アクティビティでは、CHECK_CONSTRAINTS = OFF オプションが使用されます。メモこのオプションのデフォルト値は OFF です。
この問題を回避するには、BCP/一括挿入操作の CHECK_CONSTRAINTS オプションを ON に設定します。BCP/一括挿入操作のパフォーマンスが影響を受ける可能性があります。メモSQL Server 2012 は、この問題の影響を受けません。
参照情報
ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明