エラー後にバックアップまたは復元を続行するか中止するかを指定する

適用対象:SQL Server

このトピックでは、SQL Server で SQL Server Management Studio または Transact-SQL を使用して、エラーが発生したときにバックアップ操作または復元操作を中止するか続行するかを指定する方法を説明します。

アクセス許可

BACKUP

BACKUP DATABASE および BACKUP LOG のアクセス許可は、既定では sysadmin 固定サーバー ロールのメンバーと、db_owner および db_backupoperator 固定データベース ロールのメンバーに付与されています。

バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。 SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdeviceでは、ファイル アクセスの権限は確認されません。 バックアップ デバイスの物理ファイルに関するこのような問題は、バックアップや復元が試行され、物理リソースがアクセスされるまで、表面化しない可能性があります。

RESTORE

復元するデータベースが存在しない場合、ユーザーはCREATE DATABASEを実行するためにRESTORE権限を持っている必要があります。 データベースが存在する場合、 RESTORE のアクセス許可は、 sysadmin 固定サーバー ロールと dbcreator 固定サーバー ロールのメンバーと、データベースの所有者 (dbo) に既定で設定されます (FROM DATABASE_SNAPSHOT オプションの場合、データベースは常に存在します)。

RESTORE アクセス許可は、メンバーシップ情報をサーバーが常に即座に参照できるロールに付与されます。 固定データベース ロールのメンバーシップは、データベースがアクセス可能で破損していない場合にのみ確認できるため( RESTORE の実行時には常に当てはまるとは限りません)、 db_owner 固定データベース ロールのメンバーには RESTORE 権限がありません。

SQL Server Management Studio を使用する

エラーが発生したときにバックアップ操作を続行するか停止するかを指定するには

  1. データベースのバックアップを作成する」の手順に従います。

  2. [オプション] ページの [信頼性] セクションで、 [メディアに書き込む前にチェックサムを行う][エラーのまま続行する]をクリックします。

Transact-SQL の使用

エラーが発生したときにバックアップ操作を続行するか停止するかを指定するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. BACKUP ステートメントで、続行する CONTINUE_AFTER ERROR オプションまたは停止する STOP_ON_ERROR オプションを指定します。 既定の動作は、エラーが発生した場合は停止することです。 次の例では、エラーが発生してもバックアップ操作を続行するように命令します。

BACKUP DATABASE AdventureWorks2022   
 TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'  
   WITH CHECKSUM, CONTINUE_AFTER_ERROR;  
GO  

エラーが発生したときに復元操作を続行するか停止するかを指定するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. RESTORE ステートメントで、続行する CONTINUE_AFTER ERROR オプションまたは停止する STOP_ON_ERROR オプションを指定します。 既定の動作は、エラーが発生した場合は停止することです。 次の例では、エラーが発生しても復元操作を続行するように命令します。

RESTORE DATABASE AdventureWorks2022   
 FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'   
   WITH CHECKSUM, CONTINUE_AFTER_ERROR;  
GO