zoukankan      html  css  js  c++  java
  • SQLServer数据库使用日志备份还原至指定时间点

    SQLServer数据库使用日志备份还原至指定时间点

    现场正常情况:

             某客户数据库数据文件约1T,日志文件忽略大小,每日凌晨0点做数据库完整备份,每日中午12点做数据库差异备份。

    异常问题:

             某日晚19点01分,因某误操作,导致某大表近2亿条数据被删除,约19点30分,发现问题,客户分别在19点31分、19点50分、20点00分执行了日志备份(本文为了简化说明,假定备份均立即完成,实际备份过程中产生数据及耗时不做考虑),之后在20点30分做数据库全备,最后请求支持。

    支持处理操作:

             1、立即断开前台业务,确保不再有新业务写入(否则新写入的业务会在恢复时丢失)

             2、由于客户最后又做了一次数据库全备,因此可以直接忽略最后一次完备。协调客户使用新服务器。

             3、首先还原当日凌晨0点数据库备份,并将数据库处于还原模式

             4、继续还原当日12点数据库差异备份,同样处于还原模式(该步骤实际可以忽略)

             5、最后还原晚上做的第一次日志备份,注意还原时选择时间点为19点00分00秒,选在回滚事务。

             6、检查数据库数据情况,若仍有数据误删情况,考虑重复还原数据库日志(需要先将数据库调整成还原状态),并调整还原时间点。

    备注:

             第4步所谓的可以忽略是因为差异备份与完整备份之间相差时间不长,但假如情况如下:周一0点完备,周二、周三、周四、周五12点差异备份,在周五18点进行日志备份,此时想将数据恢复至17点。

    此时同样可以直接使用周一0点的完备+周五18点的日志备份。但日志备份数据量较大,耗时可能较长;也可以使用周一0点完备+周五12点差异备份,加周五18点日志备份,这样耗时相对较短。

    总结:

             日志恢复的重点在于上一次的完整备份,如果有多个日志备份,那么就按照时间先后顺序,逐个还原日志备份。

  • 相关阅读:
    C#反射中Assembly.Load及Assembly.Load.CreateInstance
    ASP.NET知识点(一):面向接口,工厂模式的程序结构
    表格布局规范
    山塞一个PetShop 4.0(01)——最简单的数据库连接
    ASP.NET知识点(二):数据访问层的基础[SQLHelper]
    山塞一个PetShop ——源代码下载、安装、配置及体验
    OD基本快捷键及功能
    OD使用教程 调试篇01|解密系列
    OD基本快捷键及功能
    OD基本快捷键及功能
  • 原文地址:https://www.cnblogs.com/moonliu/p/14266333.html
Copyright © 2011-2022 走看看