なぜDBCC CHECKDBを実行するのですか?
DBCC CHECKDBは、データベース内のすべてのオブジェクトの論理的および物理的な整合性をチェックし、破損の情報を提供します。DBCC CHECKDBプロセスを高速化する方法の一つとして、プロセスを自動化して別のサーバーに作業を転送し、データベースの復元後にCHECKDBを実行することがあります。 バックアッププロセスはデータベースのコピーであり、復元されたデータベースはオンラインデータベースとまったく同じであるため、不整合や問題があった場合、バ この方法を使用すると、本番データベースに影響を与えることなく、リストアがテストされ、バックアップが検証されます。
復元後にDBCC CHECKDBを実行することは、バックアップの品質が不明な場合にもお勧めします。
この記事では、SQL Serverエージェントジョブとメンテナンスプランを使用して、データベースの復元後にDBCC CHECKDBを自動化することにより、データベースの復元後にDBCC CHECKDBを自動化する方法について説明します。
SQL Serverエージェントジョブを使用してデータベースの復元後にDBCC CHECKDBを自動化する方法
SQL Serverエージェントを使用してデータベースの復元後にDBCC CHECKDBを自動化するには:
- SQL Serverエージェントノードから新しいジョブを選択します➜Jobs
-
最初のステップを作成し、次のスクリプトを使用して復元するデータベースバックアップを指定します:次のT-SQLスクリプトを追加して、復元されたデータベースでDBCC CHECKDBを実行する2番目のステップを追加します。
RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO
-
異なるdbcc checkdbオプションを使用するには、次のt-sqlスクリプトを使用します。
列の値をチェックし、範囲外の列の値があるかどうかをチェックします。
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
不要な情報メッセージを抑制するには:インデックス付きビュー、空間、およびXMLインデックスをチェックするには:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
データベースの物理構造のみをチェックするには:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
インデックス付きビュー、空間、およびXMLインデックスをチェックするには:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
データベースの物理構造のみをチェックするには:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
table-shared locking:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
これらのオプションは、この記事の後半で説明する一部のオプションと組み合わせることができないwith physical_onlyオプ
- ジョブを希望する実行頻度にスケジュールします。
これらの操作にSQL Serverエージェントジョブを使用して設定するのは比較的簡単ですが、T-SQLスクリプトを作成し、DBCC CHECKDBオプション構文の知識と、各オプ
Maintenance Planを使用してデータベースの復元後にDBCC CHECKDBを自動化する方法
Maintenance Planを使用してこのアクションを実行することもできます。 Maintenance Plansツールバーには復元タスクは含まれていませんが、T-SQLタスクを使用できます。
メンテナンスプランを使用してデータベースの復元後にDBCC CHECKDBを自動化するには、次の手順を実行します。
- オブジェクトエクスプローラペインの管理ノードから、メンテナンスプランで新しいメンテナンスプランを選択します。
- 新しいメンテナンスプラン名で新しいプランを選択します。
-
メンテナンスプランタスクツールバーからT-SQLステートメントタスクの実行を選択します。
-
タスクをダブルスリックし、T-sqlスクリプトを貼り付けます。
-
メンテナンスプランタスクツールバーからデータベース整合性:タスクをダブルクリックし、タスクを実行するデータベースを選択します。
-
メンテナンスプランが設定されている場合は、SQL Serverエージェントジョブとしてスケジュールします。
-
メンテナンスプランが設定されている場合は、SQL Serverエージェントジョブとしてスケジュールします。
-
メンテナンスプランが設定されている場合は、SQL Serverエージェントジョブとしてスケジュールします。
-
メンテナンスプランが設定されている場合は、
このアプローチの欠点は、セットアップがより複雑であることに加えて、現在、データベースの整合性のチェックタスクは、追加のオプションとしSQL Server2016バージョンでは、より多くのオプションが追加されます。