数据库出问题没备份,那基本等于业务裸奔。云数据库RDS自带备份功能,但很多团队只会用默认配置,出了事才发现备份策略根本不对。摩尔狮教育在云计算培训中反复强调:备份策略不是配好了就完事,得定期演练恢复流程。今天我们把RDS的3种备份方式和5步恢复流程完整拆开。
先说3种备份策略。
第一种,自动备份。RDS默认每天自动做一次全量备份,保留周期7到30天可配。这个备份是物理备份,恢复速度快,但粒度只到天。如果你对数据安全性要求高,建议把保留周期设到30天上限,存储成本增加不多,但容灾能力大幅提升。
第二种,日志备份。开启Binlog日志备份后,RDS会持续记录所有写操作,配合全量备份可以把数据恢复到任意时间点,RPO能做到秒级。生产环境必须开这个功能,不开的话出了误删数据的情况就只能恢复到昨天,损失一整天的数据。在PolarDB和RDS选型那篇文章里提过,RDS和PolarDB在日志备份机制上有些差异,选型时要注意。
第三种,手动备份。做重大变更前手动打一个快照,比如大表结构变更、数据迁移、版本升级之前。手动备份不占用自动备份的保留额度,可以长期保留。养成变更前先备份的习惯,能省掉很多翻车后的麻烦。更多数据库运维实战经验可以看这篇云数据库DBA运维的技能拆解。
接下来说5步恢复流程。
第一步,确认恢复目标。先搞清楚你要恢复什么:是整库恢复还是单表恢复?要恢复到哪个时间点?误删数据的话,精确到分钟级的恢复需要Binlog支持。这一步定错了后面全白干。
第二步,选择恢复方式。阿里云RDS提供两种恢复路径:一是通过备份集恢复,直接从某个全量备份创建新实例;二是通过时间点恢复,指定一个精确时间,系统自动组合全量备份和Binlog做恢复。日常误操作用时间点恢复居多。
第三步,创建恢复实例。RDS的恢复不是原地覆盖,而是创建一个新实例。这点很重要,不会影响线上正在运行的实例。恢复过程根据数据量大小,从几分钟到几小时不等。在阿里云认证机构的实操课程中有完整的演练流程。
第四步,验证恢复数据。新实例创建完成后,先连上去检查数据完整性。重点核对丢失时间段前后的数据,确认恢复的时间点是否准确。别急着切流量,先做数据校验。
第五步,数据同步与切换。验证没问题后,把恢复实例的数据同步到生产库。可以用DTS做数据迁移,也可以手动导出导入。切换建议在低峰期操作,做好回滚预案。
最后说两个常见坑。第一个坑:备份窗口设置不当。自动备份默认在凌晨执行,如果你的业务在凌晨有批处理任务,备份和业务争抢资源会导致性能下降。建议把备份窗口调到业务真正空闲的时段。第二个坑:Binlog空间不足。日志备份占用的空间算在实例存储里,Binlog积压太多会导致磁盘满。设置合理的Binlog本地保留时长,别让日志把存储吃光。
数据库备份恢复看着简单,但真正落地有大量细节要抠。定期做恢复演练,把流程跑顺了,真出事的时候才不慌。
更多阿里云认证资讯,请关注公众号:摩尔狮云证通