DBS 数据库备份实践:千里达票务系统订单库的备份与恢复演练
云数据库自带备份,但早期我们只开了自动备份,从没真试过恢复。直到有一次上线改错 SQL,删了一批订单,才发现备份恢复流程根本没跑通过。用阿里云 DBS(数据库备份)做了全量+增量备份,并定期做恢复演练,出问题才不慌。
一、备份策略
- 全量:每日凌晨 2 点一次;
- 增量:每 15 分钟一次 binlog;
- 保留:30 天内任意时间点可恢复(PITR);
- 异地冗余:备份文件自动复制到另一个地域,防机房级故障。
二、恢复演练
每季度做一次恢复演练:
- 在演练库把备份恢复到某时间点;
- 对比关键表行数是否对得上;
- 验证业务能否正常启动;
- 记录恢复耗时(目标 < 1 小时)。
三、关键配置
3.1 备份对象
- 订单主库;
- 库存库;
- 支付流水库(合规要求留存 5 年)。
3.2 加密
备份文件加密存储,密钥用 KMS 托管。
3.3 告警
备份失败、备份延迟超过 1 小时、备份文件大小异常波动,都接钉钉告警。
四、踩坑复盘
- 备份窗口和业务高峰冲突:早期全量备份在中午跑,影响线上。解决:改凌晨 2 点业务低谷;
- 没演练过恢复:真出事时才发现备份文件损坏。解决:每季度演练;
- 备份加密密码忘:早期自己加密备份,密码找不到。解决:用 KMS 托管,不自己管密码;
- 跨地域带宽费超预算:早期全量备份每天跨地域传。解决:全量本地留,增量才跨地域。
五、效果与总结
备份不是"开了就完事",恢复演练才能证明备份真的能用。对千里达票务系统这种交易型业务,DBS 是最后一道防线:平时看不见,出事时救命。