概述
以前在某公司就职时,使用ORACLE数据库,做后台业务开发工作,经常查询数据库,通过查询数据库,来查找系统存在的bug。
系统测试通过上线后,难免有一些问题没有测试出来,测试的目的是尽可能的减少bug,不是把bug全部消灭,bug是不可能被消灭的。
没有测试出来的bug,就需要通过分析线上数据库,通过数据的一致性,来判断是否存在问题。
开始的时候,我们在分析数据的时候,经常发现明细和统计对不上,会员的余额和明细对不上,充值减去消费不等于余额,经过分析也不可能是系统的问题,
经过几个讨论,终于发现,原来是数据库备份的时候,有业务正在发生。比如数据库比较大,A表刚备份完,发生了一笔业务,修改了A表和B表,但A表已经备份完了, 所以备份文件里A表是业务发生前的,B表是业务发生后的。这样就会造成AB表数据不一致。
解决的办法
这里我起了一个优雅的名字“静止备份”,什么意思呢?就是在数据库静止时进行备分。
尽可能在不发生的业务的时间点备份,一般国内客户选择在0点到6点之间备份都是可以的,建议在凌晨3点备份。
或者备份前,停掉业务,比如关闭IIS等。
最后
以上就是友好硬币为你收集整理的解决数据库备份前后数据表不一致的情况的全部内容,希望文章能够帮你解决解决数据库备份前后数据表不一致的情况所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复