删去数据时漏写了WHERE,差距数据库备份的过来

要实现误操作恢复,恢复模型不能是“简单”恢复模型,至少是“大容量日志记录”恢复模型,最保险的是“完全”恢复模型(为什么要保险一些,请参见)。另外操作最好在查询分析器里操作,如果使用企业管理器,并且仅有一个事务日志,可能无法正确返回到即时点。

差异数据库备份指记录自上次数据库备份后发生更改的数据,那么上次备份是指什么样的备份呢,指完整备份,不是指差异备份,所以还原差异数据库备份时,只需要先还原完整备份,然后选择一个差异数据库备份即可完成还原操作。

假如你在09:30:00时,删除某个表中的某条记录时忘记写WHERE,结果,所有的记录都已经被删除。幸好你在今天09:00:00对数据库进行了完整备份,并且恢复模型是“完全”恢复模型。这时你要做的是立即禁止他人对数据库的访问,并且备份事务。然后再利用以下语句还原。

企业管理器,如图,选择一个完整数据库备份,再选择一个差异数据库备份,单击“确定”按钮即可。

restore database f2 from disk=’E:foo’ with file=1, move ‘foo_data’ to
‘D:foo_data.mdf’, move ‘foo_log’ to ‘D:foo_log.ldf’, norecovery,
replace
restore log f2 from disk=’E:foo’ with file=2, stopat=’2005-12-18
09:29:59′, replace

图片 1

并于restore的更多语法我们不在这里讨论,我们只说要注意的有两点,第一个还原语句要指明norecovery,表示还原操作不回滚任何未提交的事务,第二个还原语句stop表示还原到这个时间点时的数据库状态(这个点被称为即时点)。

从文件组或文件还原也比较简单。比较复杂的是从设备,要分两步还原。

执行上述语句后,我们现在的数据库就是和09:29:59的状态一样了。不过为了数据库的完整性,这之后对数据库的其它修改是无法恢复了,也就是说这之后对数据库的正确操作必须重做。

第一步、还原完整数据库备份,请注意图中红色部分。如果完整数据库备份是单独的一个文件就不必在乎备份号。还原之后数据库显示“正在装载”,不予理会,进行第二步。

图片 2

图片 3

第二步、还原差异数据库备份,请注意图中红色部分。如果差异数据库备份是单独的一个文件就不必在乎备份号。最后点击确定就完成了数据库还原。

发表评论

电子邮件地址不会被公开。 必填项已用*标注