none
企业数据库坏,急求!sql server表被清空,有日志文件,请问如何恢复? RRS feed

  • 问题

  • sql 2000 其中有一个表中被清空了

    现在有3个小时前的完整备份,当前数据库文件也没坏,还有完整的日志文件

    请问如何把删除的记录恢复?

    请各位专家解答!


    此去千万里,岁月忽已晚!

    2013年5月21日 9:25

答案

  • 对应步骤供参考的SQL 语句

    --1. 备份现在的日志
    backup log xx to disk = 'c:\xx.bak' with copy_only
    -- 2. 还原完全备份
    restore database xx_restore from disk = 'c:\xx_完全备份.bak' with norecovery
    -- 3. 日志时间点还原
    restore log xx from disk = 'c:\xx.bak' with STOPAT='2013-05-21 17:56:46.880'

    2013年5月21日 10:09
  • 如果在完整备份之后还有其他日志备份需要先还原这些日志备份,然后再用STOPAT选项还原最后的日志备份。


    Please Mark As Answer if it is helpful.

    2013年5月22日 2:16

全部回复

  • 确认你的数据库恢复模型是否是 sijple(简单模型), 如果是的话, 那么无法通过日志还原到时间点解决

    如果恢复模型不是 simple 的话,  那么可以通过日志的时间点还原搞定

    首先对你目前的数据库做日志备份, 为了避免对正常备份序列产生影响, 你可以考虑备份的语句加 COPY_ONLY 选项

    然后找台机器还原你的完整备份 (同一台机器也行, 但注意修改数据库名和文件位置, 不要把现在的库给覆盖了), 注意还原的选项指定 NORECOVERY (使数据库处于还原状态, 以后做后面的日志还原)

    最后基于步骤2作日志还原, 还原的文件为步骤1的日志备份文件, 还原的选项指定 STOPAT = '删除表之前的一个时间点'

    2013年5月21日 10:06
  • 对应步骤供参考的SQL 语句

    --1. 备份现在的日志
    backup log xx to disk = 'c:\xx.bak' with copy_only
    -- 2. 还原完全备份
    restore database xx_restore from disk = 'c:\xx_完全备份.bak' with norecovery
    -- 3. 日志时间点还原
    restore log xx from disk = 'c:\xx.bak' with STOPAT='2013-05-21 17:56:46.880'

    2013年5月21日 10:09
  • 估计回答指引不了你上岸。。还是要几个步骤和实践经验的

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2013年5月22日 0:52
  • 如果在完整备份之后还有其他日志备份需要先还原这些日志备份,然后再用STOPAT选项还原最后的日志备份。


    Please Mark As Answer if it is helpful.

    2013年5月22日 2:16