none
SQLServer2008でのデータベースの整合性確認タスク実行不可 RRS feed

  • 質問

  • お世話になっております。

    SQLServer2008にて、毎週一回、下記の運用タスクを行なうメンテナンスプランを作成し、実行しております。(ひとつのメンテナンスプランで下記の3タスクが順番に動きます。)

    1. インデックスの再構成タスク
    2. データベースの整合性確認タスク
    3. データベースのバックアップタスク

    これまで3年間ほど問題なく稼動していたのですが、今週の処理で突然「2.データベースの整合性確認タスク」が失敗しました。それ以降、何度手動実行してもエラーとなります。

    状況は下記の通りになっております。

    • それぞれのタスクをそれぞれ個別にメンテナンスプランを作成し実行したところ、他のタスクはうまく行きますが、2のタスクのみ失敗します。
    • DBCC CHECKDBをコマンドラインから実行すると、問題なく動きます。
    • 対象は「特定のデータベース」としており、ユーザデータベースをいくつか指定しています。(テストではひとつの小さいデータベース選択してみましたがダメでした)。また、「インデックスを含める」はONにしてあります。
    • エラーメッセージは右記の通りです。 ⇒ エラー番号:0   エラーメッセージ:サーバー 'サーバー名\\インスタンス名' のAlterに失敗しました

    SQLServerのバージョンは下記の通りになっております。

    >>SELECT @@VERSION

    Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6001: Service Pack 1)

    原因に心当たりがある方がおられましたらアドバイスをお願いします。

    また、その他必要な情報がございましたらご指摘ください。

    2013年5月27日 5:37

回答

  • ProfilerでSQL:BatchStmtStarting/Completed, SP:StmtStarting/Completed, Exceptionイベントをトレースすると、どのステートメントが何のエラーで失敗しているのかを確認することができると思います。失敗の内容が確認できれば、あとはそれに対する対応を行うだけなので、まずは、トレースしてみてはいかがでしょうか?
    • 回答としてマーク erusona 2013年6月5日 2:20
    2013年6月3日 6:12

すべての返信

  • ProfilerでSQL:BatchStmtStarting/Completed, SP:StmtStarting/Completed, Exceptionイベントをトレースすると、どのステートメントが何のエラーで失敗しているのかを確認することができると思います。失敗の内容が確認できれば、あとはそれに対する対応を行うだけなので、まずは、トレースしてみてはいかがでしょうか?
    • 回答としてマーク erusona 2013年6月5日 2:20
    2013年6月3日 6:12
  • お世話になっております。

    ご回答ありがとうございます。

    アドバイスいただいた内容を元に、調査を実施したところ、原因がわかりました。

    • データベースの整合性チェックタスクの中で、sp_configureをいくつか実施した後に、reconfigureを実施しており、このreconfigureでエラーとなっていた。
    • Webの情報を調べたところ、SQLServerのプロパティ"allow updates"が"1"の場合にエラーが発生する可能性があるとのこと。
    • SQLServerの設定を確認したところ、"allow updates"が"1"となっており、エラーとなる少し前に変更されていた。
    • "allow updates"を"0"に戻し、整合性チェックタスクが処理されることを確認。

    プロパティ"allow update"が変更された原因は調査中です。

    お忙しいところ、ありがとうございました。


    2013年6月5日 2:19