20〜60秒ごとに起動するDBCC CHECKDB


13

実稼働環境への展開に急速に近づいている開発環境があり、ログで約20秒ごとにメッセージが表示されることに気付きました。

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

これに気づいたのは、これをテストしているエンドユーザーに問題があり、Windowsイベントログ(アプリケーションログ)でエラーに気付いたためです。

The log for database 'dbname' is not available. Check event log for related messages.

ちなみに、関連するメッセージは見つかりませんでしたが、オフライン/オンラインサイクルで解決しました。

私が考えることができる唯一のことは、このアプリケーションが1msごとにデータを収集することですが、このデータのすべてがデータベースに挿入されるわけではありません。開発サーバーであるため、ログとデータが同じドライブ上にあるように構成されました。これら2つの情報を念頭に置いて、私はこれがIOの問題であり、サーバーがそのストレージ(SAN)への接続の損失から回復しようとしていることに傾倒しています。しかし、これでもすべてのデータベースが失われるわけではないため、これだけでは意味がありません。他に何がこれを引き起こしているのでしょうか?

プラットフォーム:Windows Server 2008 R2(標準)上のSQL Server 2008 R2(Ent。)

回答:


22

これを見ている理由:

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

データベースオプションがに設定されているためAutoCloseです。

AutoCloseをオフにするには、次の操作を行います。

alter database YourDatabase
set auto_close off
go

何がAutoClose最後のユーザ・プロセスが切断後にデータベースをシャットダウンされません。そして、次のユーザー接続が接続を試みると、データベースは自動的に「再オープン」します。

通常はAutoClose、データベースを再度スピンアップするまでの待ち時間が明らかなため、OFFのままにすることをお勧めします。あなたの質問から、これは開発環境であると理解していますが、そこでも必要ではありません(そして実稼働環境では絶対にそれを望まないでしょう)。

さらにDBCC CHECKDB、実際には質問のタイトルごとに「20〜60秒ごとに発射する」のではなく、そのまま表示されます。

SQL Server 2005以降、データベースが起動されるたびにdbi_dbccLastKnownGood値(存在する場合)がエラーログに報告されます。そのため、同じ履歴情報が繰り返し表示されるだけです。

このトピックは記事「SQL Serverがサーバーの起動時にデータベースに対してDBCC CHECKDBを実行しているのはなぜですか?」で説明されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.