有客户每天凌晨三点做一次全量备份。某天下午两点数据库损坏,恢复后丢了十一个小时的业务数据。对电商来说,这十一个小时的订单得一笔笔手工补,还要跟客户解释。
全量加增量才够
全量是基础,但频率不可能太高,因为耗资源和时间。所以在全量之间要有增量或者日志备份。数据库的二进制日志能做到逐条记录变更,配合定期全量,可以恢复到任意时间点。这个能力叫时间点恢复,对业务很重要。
比如发现数据被误删是在下午三点,但误删发生在两点十分,就可以恢复到两点零九分。没有日志备份,只能回到凌晨,中间全丢。能接受丢一小时数据的业务,每小时做一次增量就够。能接受丢一天,每天一次全量也行。人工能不能先顶着?
备份策略按业务定
但要说清楚这个代价,让业务方明确接受,而不是技术单方面决定。保留周期也要按业务定。财务数据通常需要更长的保留期,日志类可以短。全都留半年,存储成本会很可观;只留三天,出了问题又没得选。
这是个需要平衡的取舍。再好的策略,没恢复过就是未知。建议每季度挑一次,实际恢复到测试库,跑一遍业务验证。这一步能发现很多问题:备份文件损坏、日志断档与恢复脚本依赖缺失。先做还是先算?
演练比策略更重要
演练要记录耗时。别追新。恢复花两小时还是八小时,直接决定故障影响面。如果耗时无法接受,就要调整策略,比如增加全量频率或者做热备。收个尾:备份策略的终点是可恢复、多久恢复。想清楚这两点,策略自然是清楚的。
数据库备份的常见疑问
每天全量备份够吗
不够。恢复点会退到上一次全量,可能丢失一整天数据,建议配合增量或日志备份。
什么是时间点恢复
借助数据库日志备份,可恢复到指定时刻,适合处理误删误改等场景。
恢复演练多久做一次
建议每季度至少一次,实际恢复到测试环境并记录耗时与问题。
备份文件本身也要保护。放在可被业务服务器访问的目录里,一旦机器被入侵,备份会一起被删。建议备份写到独立的存储账号,业务服务器只有写权限没有删除权限。
总结:数据库备份要能回到任意时间点。全量加日志、策略按业务定以及定期演练,才靠得住。