数据库完整还原的目的是还原整个数据库。整个数据库在还原期间处于脱机状态。在数据库的任何部分变为联机之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间点并且不存在未提交的事务。
在简单恢复模式下,数据库不能还原到特定备份中的特定时间点。
还原整个数据库
简单恢复模式下的完整数据库还原只涉及一个或两个 RESTORE 语句,具体取决于是否需要还原差异数据库备份。
如果只使用完整数据库备份,则只需还原最近的备份,如下图所示。
如果还使用差异数据库备份,则应还原最近的完整数据库备份而不恢复数据库,然后还原最近的差异数据库备份并恢复数据库。下图显示了这一过程。
还原整个数据库时,应当使用单一的还原顺序。以下示例显了数据库完整还原方案的还原顺序中的关键选项。还原顺序由通过一个或多个还原阶段来移动数据的一个或多个还原操作组成。将省略与此目的无关的语法和详细信息。
将数据库恢复到完整数据库备份的状态。在恢复数据库时,尽管 RECOVERY 选项是默认值,但为清楚起见,仍建议显式指定该选项。
示例
以下示例首先显示了如何使用 BACKUP 语句来创建 AdventureWorks 数据库的完整数据库备份和差异数据库备份。然后按顺序还原这些备份。
注意:
此示例以 ALTER DATABASE 语句开头,该语句将恢复模式设置为 SIMPLE。
复制代码
USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH FILE=2, RECOVERY;
GO还原完整数据库备份
用于还原数据库备份的 RESTORE 语句的基本语法是:
RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]
注意:
如果还打算还原差异数据库备份,则应使用 WITH NORECOVERY。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-541426/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16436858/viewspace-541426/