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

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

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

安全说明安全说明

建议您不要从未知或不可信源附加或还原数据库。 这些数据库可能包含执行非预期 Transact-SQL 代码的恶意代码,或通过修改架构或物理数据库结构导致错误。 在使用未知或不可信源中的数据库之前,请在非生产服务器中对数据库运行 DBCC CHECKDB,同时检查数据库中的代码(例如,存储过程或其他用户定义代码)。

本主题内容:

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

  • 相关任务

注意注意

有关支持从 SQL Server 的早期版本进行备份的信息,请参阅 RESTORE (Transact-SQL) 中的“兼容性支持”一节。

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

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

仅还原完整数据库备份

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

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

注意注意

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

基本 TRANSACT-SQL RESTORE 语法

用于还原完整数据库备份的 Transact-SQL RESTORE 语句的基本语法是:

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

注意注意

如果还打算还原差异数据库备份,则应使用 WITH NORECOVERY。

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

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

示例 (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)