在SQL Server 2000中误删除了某些用户数据,如何进行恢复?
解答:如果包含当前误操作的事务尚未提交,我们可以执行ROLLBACK TRANSACTION命令回滚该事务取消误操作。若事务已提交,则只能利用数据库和日志备份来进行恢复。
如果曾经执行过数据库的备份,则我们可以将数据库恢复到最近一次数据库完全备份、差异备份或事务日志备份结束时的状态,但这样会导致最近一次备份之后进行的数据库更新全部丢失。
针对这一情况,SQL Server 2000提供了“时点还原”的功能,利用这一功能,可以将数据库恢复到以前某一指定时刻的状态。这样当误删除了用户数据之后,我们就可以通过执行“时点还原”,将数据库恢复到误操作之前那一刻的状态。
要利用“时点还原”的功能对数据库进行恢复,必须满足以下几个条件:
该数据库使用完全恢复模型(见图一)。
曾经执行过数据库的完全备份。
自最近一次数据库完全备份或差异备份之后,没有执行过截断事务日志的操作(BACKUP LOG WITH NO_LOG命令)。

(图一:检查数据库的故障还原模型)
如果以上条件满足,则我们在误删除了数据之后,可以通过以下步骤将数据库还原到误操作前的状态:
首先执行数据库的事务日志备份:在SQL Server Enterprise Manager中右键点击数据库名称,然后选择“所有任务”-〉“备份数据库”,在弹出对话框中选中“事务日志”,并选择将备份追加到已有的数据库备份媒体中,然后“确定”(见图二)。

(图二:备份事务日志)
利用已有的数据库备份和事务日志备份进行时点还原:在SQL Server Enterprise Manager中右键点击数据库名称,然后选择“所有任务”-〉“还原数据库”,在弹出对话框中确认使用默认的备份设备集,然后选中“时点还原”(见图三)。

(图三:还原数据库)
这时会弹出一个“时点还原”对话框,我们在这里输入想要将数据库恢复到的以前某个时刻即可。例如,误删除操作是在11:30左右发生的,则我们可以在时间栏输入11:29:30(见图四)。

(图四:设定时点还原的时间)
点击两次“确定”,当看到如图五所示的对话框时,数据库的时点还原就成功完成了。

(图五:数据库还原完成)
另外,需要注意的是,如果是误删除了用户数据库,则无法通过时点还原功能来恢复到该误操作前的状态,而只能利用数据库和事务日志备份将数据库恢复到最近一次备份或这之前某个时刻的状态。