次の方法で共有


バックアップ チェックサムの既定値 (サーバー構成オプション) の構成

適用対象: SQL Server

バックアップ チェックサムの既定の設定を使って、インスタンス レベルでバックアップと復元の全操作時にバックアップ チェックサムを有効または無効にします。

個々のバックアップまたは復元操作に対するエラーのチェックを構成するには、「バックアップ中または復元中にバックアップ チェックサムを有効または無効にする (SQL Server)」を参照してください。

有効な値を次の表に示します。

意味
0 (既定) 無効
1 Enabled

インスタンス レベルですべてのバックアップと復元操作に対してバックアップ チェックサムを有効にするには、次のコマンドを実行します。

EXEC sp_configure 'backup checksum default', 1;
RECONFIGURE;

設定はすぐに有効になります。

使用シナリオ

これらのオプションをネイティブで公開しないバックアップ アプリケーションまたはユーティリティを使用するときに、バックアップ チェックサムの既定の設定を使ってエラー管理オプション (CHECKSUMNO_CHECKSUM) を用意できます。 SQL Server ログ シッピングまたは SQL Server メンテナンス プランの Backup データベース タスクなどのユーティリティを使うときに、このオプションを使うこともできます。 これらのユーティリティとそれに関連付けられた Transact-SQL ストアド プロシージャには、バックアップ中に CHECKSUM オプションを含めるオプションが用意されていません。

詳細情報

バックアップ操作中にページ チェックサムの検証が失敗すると、SQL Server はバックアップ操作を停止し、エラー メッセージ 3043 を報告します。 エラーの詳細とトラブルシューティング手順については、MSSQLSERVER_3043 のエラー ページを参照してください。

BACKUP コマンドで明示的な NO_CHECKSUM オプションを使うと、バックアップ チェックサムの既定のサーバー オプションがオーバーライドされます。

バックアップ セットを保護するために、バックアップ中にチェックサムが使われていたかどうかを判断するには、次のいずれかの方法を使います。

  • RESTORE HEADERONLY コマンドの出力にある HasBackupChecksums フラグ。 次に例を示します。

    RESTORE headeronly FROM disk = 'c:\temp\master.bak'
    
  • msdb データベースの backupset システム テーブルにある has_backup_checksums 列。 次に例を示します。

    SELECT has_backup_checksums, database_name, *
    FROM msdb..backupset
    

CHECKSUM オプションを使用してバックアップを実行した場合、復元操作によって検証が自動的に実行され、エラー メッセージ 3183 が表示されます。 エラーの詳細とトラブルシューティング手順については、MSSQLSERVER_3183 のエラー ページを参照してください。

SQL Server 2012 以前のバージョンの場合:

SQL Server 2012 (11.x) 以前のバージョンには、このオプションは存在しません。 トレース フラグ 3023 を使って、CHECKSUM オプションを BACKUP コマンドの既定値として有効にする必要があります。 トレース フラグ 3023 は、DBCC TRACEON ステートメントを使って動的に使うか、スタートアップ パラメーターとして使うことができます。

動的な使用法

DBCC TRACEON(3023, -1);
BACKUP DATABASE...;
DBCC TRACEOFF(3023, -1);

スタートアップ パラメーターの使用法

SQL Server のスタートアップ パラメーターとしてトレース フラグを追加してから (-T3023)、SQL Server サービスを停止して再起動します。