在前面两节,我们介绍了如何利用SQL Server Enterprise Manager 和BACKUP 命令进行备份以及SQL Server 提供的备份向导。本节我们将介绍部分数据库恢复,以及如何使用SQL Server Enterprise Manager 和RESTORE 命令进行数据库恢复。
15.5.1 利用Enterprise Manager 恢复数据库 利用SQL Server Enterprise Manager 恢复数据库的操作步骤如下: (1) 启动SQL Server Enterprise Manager, 单击要登录的数据库服务器,然后从主菜单中选择Tools, 在菜单中选择Restore Database, 弹出Restoredatabase 对话框,如图15-15 所示。 (2)在Restore as database 旁的下拉列表中选择要恢复的数据库。 (3) 在Restore 组中通过单击单选按钮来选择相应的数据库备份类型。 (4) 在Parameters 栏中,在Show backup of database 旁的下拉列表中选择数据库,如果该数据库已经执行了备份,那么在表格对话框中就会显示备份历史。从First backup to restore 旁的下拉列表中选择要使用哪个备份来恢复数据库,在缺省情况下使用最近的一次备份。
(5) 选中Option 标签,进行其它选项的设置见图15-16, 其中各选项含义如下: - Eject Tapes After Restoring Each Backup
表示在备份完成恢复时磁带从磁带机中自动退出。 - Prompt Before Restoring Each Backup
表示在前一个备份成功装入之后,下一个备份装入之前提示恢复操作执行者。 - Force Restore over Existing Database
表示自动覆盖当前已存在的数据库文件。 - Restore Database Files as
通过网格中的Restore As 列可以在恢复过程中改变文件的位置。 - Recovery Completion State Frame
表示在恢复过程完成之后离开数据库的状态,并且数据库可以立即使用。 - Leave Database Operational
表示完成所有的(数据库和事务日志)恢复。 - Leave Database Non-operational But Able to Restore Additional Transaction Logs
表示未恢复事务日志,因此数据库不可以使用,此选项用在进行多次才能恢复数据库或事务日志的情况下。但在装入最后的事务日志时应选择Leave Database Operational 选项。 - Leave Database Read-only 和Able To Restore Additional Transaction
Logs 用于待命服务器(6) 在设置完选项之后,单击确定按钮数据库开始进行恢复。
15.5.2 RESTORE 命令进行恢复 1 使用RESTORE 命令恢复数据库
其中: - DBO_ONLY
表示将新恢复的数据库的访问权限只授予给数据库所有者。 - FILE
表示恢复具有多个备份子集的备份介质中的那个备份子集。 - MEDIANAME
表示在备份时所使用的备份介质名称。如果给出该选项,则在恢复时首先检查其是否与备份时输入名字相匹配,若不相同恢复操作将结束。 - MOVE
表示把备份的数据库文件恢复到系统的某一位置。缺省条件下恢复到备份时的位置。 - NORECOVERY
表示恢复操作不回滚任何未提交的事务。若恢复某一数据库备份后又将恢复多个事务日志,或在恢复过程中执行多个RESTORE 命令,则要求除最后一条RESTORE 命令外其它的必须使用该选项。 - RECOVERY
表示回滚所有未提交的事务。在恢复结束后,数据库就可以使用。 - STANDBY
表示数据库恢复操作的UNDO 文件。 注意:如果不指定NORECOVERY、RECOVERY、STANDBY则默认为RECOVERY。 如果数据库恢复操作结束后又要进行事务日志恢复,则必须使用NORECOVERY或STANDBY选项。 - REPLACE
表示如果恢复的数据库名称,与已存在的某一数据库,重名则首先删除原数据库然后重新创建。 - RESTART
表示从恢复中断处继续进行恢复处理,该选项只能用于磁带介质并且跨多卷磁带。 - STOPAT
表示将数据库恢复到该设定时间以前的状态,只有在该时间以前的事务日志才会被恢复。如果使用了NORECOVERY 或STANDBY 选项,则不能选定此选项。
15.5.3 部分数据库恢复 在实际应用环境中,用户经常因误操作而导致部分数据库损坏比如一个表或索引。 SQL Server 提供新的机制以实现对数据库的部分恢复,从而使损坏或丢失的数据重新拷贝到原始数据库。例如,如果用户错误地删除一张表,您可以仅恢复包含该删除表的那部分数据库。日志或差异备份可以将表恢复到其被删除时的状态。在以下情况下我们会发现部分数据库恢复具有极大的价值。 为了进行开发或生成报表可以在另外服务器上创建某一数据库的一个子集; 恢复存档数据。
进行部分数据库恢复操作时要使用数据库文件组,而且总是要恢复主要的文件和文件组,此外就是恢复您所指定的相应的数据库文件或文件组。 使用RESTORE 命令进行部分数据库恢复的语法规则为:
 
|