指定备份或还原以在出错后继续或停止

适用范围:SQL Server

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 指定在 SQL Server 中遇到错误后,备份或还原操作是继续还是停止。

本主题内容

开始之前

安全性

权限

BACKUP
默认情况下,为 sysadmin 固定服务器角色以及 db_ownerdb_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE 和 BACKUP LOG 权限。

备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice不检查文件访问权限。 备份设备物理文件的这些问题可能直到为备份或还原而访问物理资源时才会出现。

RESTORE
如果不存在要还原的数据库,则用户必须有 CREATE DATABASE 权限才能执行 RESTORE。 如果数据库存在,则 RESTORE 权限默认授予 sysadmindbcreator 固定服务器角色成员以及数据库的所有者 (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  

另请参阅

RESTORE FILELISTONLY (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
RESTORE LABELONLY (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)
BACKUP (Transact-SQL)
backupset (Transact-SQL)
RESTORE 参数 (Transact-SQL)
备份和还原期间可能出现的媒体错误 (SQL Server)
在备份或还原期间启用或禁用备份校验和 (SQL Server)