完整数据库还原(简单恢复模式)

在完整的数据库还原中,目标是还原整个数据库。 整个数据库在还原期间处于脱机状态。 在数据库的任何部分联机之前,所有数据都会恢复到一致的点,其中数据库的所有部分都处于同一时间点,并且不存在未提交的事务。

在简单恢复模式下,数据库无法还原到特定备份中的特定时间点。

重要

建议不要从未知或不受信任的源附加或还原数据库。 这些数据库可能包含恶意代码,这些代码可能会意外执行 Transact-SQL 代码,或者通过修改架构或物理数据库结构引发故障。 在从未知或不受信任的源使用数据库之前,请在非生产服务器上对数据库运行 DBCC CHECKDB ,并在数据库中检查代码,例如存储过程或其他用户定义的代码。

注释

有关对早期版本的 SQL Server 备份的支持的信息,请参阅 RESTORE (Transact-SQL) 的“兼容性支持”部分。

简单恢复模式下的数据库还原概述

简单恢复模式下的完整数据库还原涉及一两个 RESTORE 语句,具体取决于是否要还原差异数据库备份。 如果只使用完整数据库备份,只需还原最新的备份,如下图所示。

仅还原完整数据库备份

如果还使用差异数据库备份,请还原最新的完整数据库备份而不恢复数据库,然后还原最新的差异数据库备份并恢复数据库。 下图显示了此过程。

还原完整数据库备份和差异数据库备份

注释

如果计划将数据库备份还原到其他服务器实例,请参阅 使用备份和还原复制数据库

基本 Transact-SQL RESTORE 语法

用于还原完整数据库备份的基本 Transact-SQLRESTORE 语法为:

恢复数据库 database_namebackup_device [ WITH NORECOVERY ]

注释

如果还计划还原差异数据库备份,请使用 WITH NORECOVERY。

用于还原数据库备份的基本 RESTORE 语法为:

backup_device还原数据库database_name并进行恢复

示例 (Transact-SQL)

以下示例首先演示如何使用 BACKUP 语句创建 AdventureWorks2012 数据库的完整数据库备份和差异数据库备份。 然后,该示例按顺序还原这些备份。 数据库在差异数据库备份完成时还原到其状态。

该示例显示了完整数据库还原方案还原序列中的关键选项。 还原序列由一个或多个还原操作组成,数据在一个或多个还原阶段中移动。 省略与此目的无关的语法和详细信息。 恢复数据库时,我们建议显式指定 RECOVERY 选项,以便清楚起见,即使它是默认值。

注释

该示例以 ALTER DATABASE 语句开头,该语句将恢复模式设置为 SIMPLE

USE master;  
--Make sure the database is using the simple recovery model.  
ALTER DATABASE AdventureWorks2012 SET RECOVERY SIMPLE;  
GO  
-- Back up the full AdventureWorks2012 database.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
  WITH FORMAT;  
GO  
--Create a differential database backup.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'  
   WITH DIFFERENTIAL;  
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=1, NORECOVERY;  
--Restore the differential backup (from backup set 2).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=2, RECOVERY;  
GO  

相关任务

还原完整数据库备份

还原差异数据库备份

使用 SQL Server 管理对象(SMO)还原备份

另请参阅

RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice(Transact-SQL)
完整数据库备份 (SQL Server)
差异备份 (SQL Server)
备份概述 (SQL Server)
还原和恢复概述 (SQL Server)