NGA cissyleo的专业分析:
码农给大家讲讲数据库和回档是怎么回事吧~~开服了开服了,我11点半拿的T3衣服还在~~
省的一群半吊子在这边瞎掰,传播谣言。
作为魔兽数据库,至少两种备份方式,双机热备和异地备份。
异地大家都能理解,机房爆炸之类的情况能用到,这种会丢失几小时或者几天数据,这个取决于备份频率。这个叫回档。一般这种回档,个把小时就搞定了。
我说下双机热备。
数据库里每一次增删改查都有日志,日志中存储每一次数据库的更改操作,这个代表什么呢?就是比如数据全被误删了,那么只要有这个日志,从头开始执行一遍,就能重建所有数据。
双机热备就用的这个机制,备份数据库会监听这个日志变化,并且在备份数据库里执行这些日志,就能保持与主数据库一样的数据,这种同步频率是秒或者毫秒级别的,如果主数据库挂了,备份数据库会自动顶上,最多损失几秒或者毫秒级别的数据,当然这次出问题肯定不是主数据库挂了。
这次事故,很有可能是执行了错误的sql或者服务端逻辑问题,导致数据被删改或者破坏了关系,那么这种操作会同时发生在主备数据库,所以热备没用了,那么处理方式是什么呢?
我先找到一个最近的备份,比如4月1日凌晨,先恢复上去,这个过程很快,可能个把小时都不需要。然后我就要开始查看主数据库的日志了,从4.1凌晨备份的时间点,向后找日志,直到关服,然后把其中导致数据破坏的内容排除掉,然后从头开始执行一遍,重建数据,最后要验证数据是不是正确,这里面很多工作需要人工来做,所以就导致了长时间的关服。
所以,不要紧张,如果真是回档,早就开服了。