日期:2014-05-17  浏览次数:20620 次

数据库故障还原
大家好,有一台sql server数据库服务器,有一个lumigent数据库,每天晚上19:00安排完整备份,每天早上9:00到晚上18:00每隔10分钟安排一次事务日志备份,假如在2013-6-18 17:40:00同事把lumigen的leAuditCollectAlerts表的一条记录delete掉,我在2013-6-18 17:55发现这个问题并且备份尾部日志,再依次还原事务日志,这大概的步骤我知道,我想知道怎么把丢失的这条记录找回来,而且17:40——17:55这段时间已经提交的数据要体现在数据库里,没提交的回滚。因为对用事务日志还原有点模糊,所以想请大家就此情景给小弟说说!

------解决方案--------------------
把完整备份文件+日志备份单独恢复成其他数据库(与正式库不同名),然后单独抽取出被误删的记录,插入到正式库中.
------解决方案--------------------
引用:
把完整备份文件+日志备份单独恢复成其他数据库(与正式库不同名),然后单独抽取出被误删的记录,插入到正式库中.

恢复成其他数据库时,应恢复到误删时间稍前的时间点. 
如 restore log ... with stopat="2013-6-18 17:39:00"
------解决方案--------------------
不知在正式库中可否直接完成恢复呢?
--> 不行喔,虽然恢复了误删的,但误删之后的数据变化都没法恢复.
------解决方案--------------------
把完整备份文件+日志备份单独恢复成其他数据库(与正式库不同名),然后单独抽取出被误删的记录,插入到正式库中.
恢复成其他数据库时,应恢复到误删时间稍前的时间点.  如 restore log ... with stopat="2013-6-18 17:39:00"

用这个办法没问题,因为你只是要恢复误删除的数据,所以把数据恢复出来之后再跟现在的表进行合并(因为可能有后续的数据插入或者删除)
------解决方案--------------------
学习 啦 , 
------解决方案--------------------
这个比较实用,如果不知道时间段,你需要渐进的stopat .....,其实挺麻烦的。