メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Microsoft SQL Server の起動時に、データベースの回復が完了してクライアント接続が有効になった直後に、次のいずれかの現象が発生します。

現象 1

SQL Server エラーログに次のようなエラーメッセージとアサーションが表示されます。

2014-12-13 08:03:34.85 spid24s Using 'dbghelp.dll' version '4.0.5'2014-12-13 08:03:34.85 spid24s **Dump thread - spid = 0, EC = 0x0000000082274B202014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt2014-12-13 08:03:34.85 spid24s * *******************************************************************************2014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:34.85 spid24s * BEGIN STACK DUMP:2014-12-13 08:03:34.85 spid24s * 12/13/14 08:03:34 spid 242014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:34.85 spid24s * Location: ghost.cpp:17422014-12-13 08:03:34.85 spid24s * Expression: tcln1 != NULL2014-12-13 08:03:34.85 spid24s * SPID: 242014-12-13 08:03:34.85 spid24s * Process ID: 354442014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:35.47 spid24s Error: 17066, Severity: 16, State: 1.2014-12-13 08:03:35.47 spid24s SQL Server Assertion: File: <ghost.cpp>, line=1742 Failed Assertion = 'tcln1 != NULL'. このエラーは、タイミングに関連している可能性があります。 ステートメントの再実行後もエラーが発生する場合は、DBCC CHECKDB を使用してデータベースの構造の整合性を確認するか、またはサーバーを再起動して、メモリ内のデータ構造体が破損していないことを確認します。

現象 2

SQL Server エラーログに次のようなエラーメッセージと例外が表示されます。

2014-12-13 12:38: 30.25 spid51 ' ' バージョン ' 4.0.5 ' 2014-12-13 12:38: 30.25 spid51 * * * スタックダンプは、SQL Server \ MSSQL10_50 に送信されました。 SQL2008R2\MSSQL\LOG\SQLDump0003.txt2014-12-13 12:38: 30.25 spid51 SqlDumpExceptionHandler:51 生成された致命的な例外 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server is terminating this process.2014-12-13 12:38:30.25 spid51 * *******************************************************************************2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * BEGIN STACK DUMP:2014-12-13 12:38:30.25 spid51 * 12/13/14 12:38:30 spid 512014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * Exception Address = 000000000030D47C Module(sqlservr+00000000000FD47C)2014-12-13 12:38:30.25 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION2014-12-13 12:38:30.25 spid51 * Access Violation occurred reading address FFFFFFFFFFFFFFFF2014-12-13 12:38:30.25 spid51 * Input Buffer 54 bytes -2014-12-13 12:38:30.25 spid51 * exec usp_select12014-12-13 12:38:30.77 Server Error: 17310, Severity: 20, State: 1.2014-12-13 12:38:30.77 Server A user request from the session with SPID 51 generated a fatal exception. SQL Server がこのセッションを終了しています。 ログディレクトリで生成されたダンプを使用して、製品サポートサービスに連絡します。アクセス違反には、次のようなコールスタックがあります。 sqlservr.exe!TaskGhostCleanup:: IsHashed + 0x8dsqlservr!TaskGhostCleanup:: エンキュー + 0x32sqlservr!IndexRowScanner:: MoveToRowOnNextPage + 0x9csqlservr!IndexDataSetSession:: GetNextRowValuesInternal + 0x11cb

現象3

上記の症状のセクションで説明したメッセージが表示されると、SQL Server エラーログに次のメッセージが表示されます。

2014-12-13 08:04: 53.37 Server Process 0:0:0 (0x23c8) ワーカー0x000000002880C1A0 は、Scheduler 23 では生成されません。 スレッドの作成時間: 13062953007877。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率は0%。 システムアイドル88%。 間隔: 70013 0x000000002A8D21A0 08:04: 53.37 Server Process 0:0:0 (0x71d8) ワーカーは、スケジューラ30では生成されないように見えます。 スレッドの作成時間: 13062953007891。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率は0%。 システムアイドル88%。 Interval: 70013 ms.2014-12-13 08:04:53.38 Server ***Unable to get thread context for spid 02014-12-13 08:04:53.38 Server * *******************************************************************************2014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * BEGIN STACK DUMP:2014-12-13 08:04:53.38 Server * 12/13/14 08:04:53 spid 294882014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * Non-yielding Scheduler2014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * *******************************************************************************2014-12-13 08:04:53.38 Server Stack Signature for the dump is 0x00000000000003412014-12-13 08:04:55.43 Server External dump process return code 0x20000001. 外部ダンププロセスでエラーが返されませんでした。 2014 ~ 12-13 08:04: 55.43 Server Process 0:0:0 (0x9358) ワーカー0x0000000081CE41A0 はスケジューラ4では発生しません。 スレッドの作成時間: 13062953009701。 おおよそのスレッド CPU 使用: カーネル0ミリ秒、ユーザー15ミリ秒。 プロセスの使用率は0%。 システムアイドル88%。 間隔: 70011 ミリ秒。

この時点で、SQL Server がユーザー要求に応答しない可能性があります。 この場合は、サービスを再起動して問題を解決する必要があります。

原因

この問題は、このプロセスが完全に初期化される前に、ユーザーがゴーストクリーンアップキューを使用しようとしたために発生します。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

回避策

この問題を回避するには、次の手順を実行します。

  1. T669をスタートアップパラメーターとして設定します。 このトレースフラグは、ユーザーがゴーストクリーンアッププロセスへの要求をキューに送信できないようにします。

  2. Sql Server エージェントの通知をセットアップして、SQL メッセージ3408でジョブをトリガーします。 たとえば、次の通知を設定します。

    回復が完了しました。 これは情報メッセージだけです。 ユーザー操作は必要ありません。

  3. このジョブでは、TSQL スクリプトを実行して 5 ~ 10 分待ってから、 DBCC TRACEOFF (669,-1) コマンドを実行します。

この手順では、SQL Server の起動時にのみこのトレースフラグがアクティブになるようにします。 このトレースフラグを使うと、バックグラウンドのゴーストクリーンアップ処理の通常の機能には影響しません。

状態

Microsoft は、これが SQL Server に関する問題であり、現在この問題の解決について調査中であることを確認しています。 このサポート技術情報の記事には、利用可能になったときに追加情報が記載されています。

参照情報

ストレージエンジン内部: 詳細 な警告SP_ADD_ALERT (transact-sql)DBCC traceoff (Transact-sql)トレースフラグデータベースエンジンの起動オプション

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×