バックアップまたは復元の操作をエラー発生後に続行するか停止するかを指定する (SQL Server)
このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、エラーが発生したときにバックアップ操作または復元操作を中止するか続行するかを指定する方法を説明します。
このトピックの内容
作業を開始する準備:
セキュリティ
エラーが発生したときにバックアップ操作または復元操作を続行するかどうかを指定する方法:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
セキュリティ
権限
BACKUP
BACKUP DATABASE 権限と BACKUP LOG 権限は、既定では、sysadmin 固定サーバー ロール、db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられています。バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdevice では、ファイル アクセスの権限は確認されません。 バックアップ デバイスの物理ファイルに関するこのような問題は、バックアップや復元が試行され、物理リソースがアクセスされるまで、表面化しない可能性があります。
RESTORE
復元するデータベースが存在しない場合、ユーザーは RESTORE を実行できる CREATE DATABASE 権限を使用する必要があります。 データベースが存在する場合、既定では、RESTORE 権限は sysadmin 固定サーバー ロールおよび dbcreator 固定サーバー ロールのメンバーと、データベースの所有者 (dbo) に与えられています。FROM DATABASE_SNAPSHOT オプションを使用する場合、データベースは常に存在します。RESTORE 権限は、サーバーでメンバーシップ情報を常に確認できるロールに与えられます。 固定データベース ロールのメンバーシップは、データベースがアクセス可能で損傷していない場合にのみ確認することができますが、RESTORE の実行時にはデータベースがアクセス可能で損傷していないことが必ずしも保証されないため、db_owner 固定データベース ロールのメンバーには RESTORE 権限は与えられません。
[Top]
SQL Server Management Studio の使用
エラーが発生したときにバックアップ操作を続行するか停止するかを指定するには
「データベースのバックアップを作成する」の手順に従います。
[オプション] ページの [信頼性] セクションで、[メディアに書き込む前にチェックサムを行う] と [エラーのまま続行する] をクリックします。
[Top]
Transact-SQL の使用
エラーが発生したときにバックアップ操作を続行するか停止するかを指定するには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
BACKUP ステートメントに、続行する場合は CONTINUE_AFTER ERROR オプションを、停止する場合は STOP_ON_ERROR オプションを指定します。 既定の動作は、エラーが発生した場合は停止することです。 次の例では、エラーが発生してもバックアップ操作を続行するように命令します。
BACKUP DATABASE AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM, CONTINUE_AFTER_ERROR;
GO
エラーが発生したときに復元操作を続行するか停止するかを指定するには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
RESTORE ステートメントに、続行する場合は CONTINUE_AFTER ERROR オプションを、停止する場合は STOP_ON_ERROR オプションを指定します。 既定の動作は、エラーが発生した場合は停止することです。 次の例では、エラーが発生しても復元操作を続行するように命令します。
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM, CONTINUE_AFTER_ERROR;
GO
[Top]
関連項目
参照
RESTORE FILELISTONLY (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
RESTORE LABELONLY (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)