备份恢复是数据库运维中"最重要但最不被重视"的工作。说它重要,因为数据是企业的命根子,丢了就是灾难。说它不被重视,因为备份在正常情况下用不上,谁也不希望用上,所以很容易被忽略。很多团队的备份策略就是每天一个全量备份加日志归档,恢复流程写在文档里但从来没演练过。真到了要恢复的时候,才发现备份文件损坏了、恢复步骤对不上、数据丢了几个小时。这篇文章详细介绍TeleDB的备份恢复体系,看完之后会发现它比想象中要完善得多。
备份方式
TeleDB的备份体系包含三种备份方式:全量备份、增量备份和日志归档。三种方式组合使用,可以实现任意时间点的数据恢复。
全量备份是对整个数据库或指定表空间的数据做完整拷贝。TeleDB的全量备份采用了物理备份方式,直接拷贝数据文件,比逻辑备份(导出SQL语句)速度快很多。全量备份支持在线执行,不需要停机。备份过程中数据库照常提供读写服务,通过一致性快照技术保证备份数据的一致性。实测中,100GB数据的全量备份约需15分钟,备份速度主要受限于磁盘IO和网络带宽。
增量备份只备份上次备份以来发生变化的数据块。TeleDB的增量备份是块级别的,通过跟踪数据块的变化标记,只拷贝有变化的块,效率远高于文件级别的增量备份。增量备份的执行时间取决于数据变化量,通常只有全量备份的几分之一。
日志归档是持续记录数据库所有变更操作的日志。TeleDB的归档日志包含了所有事务的变更记录,可以用于精确到事务级别的时间点恢复。归档日志按顺序写入,支持压缩存储以节省空间。日志归档是自动进行的,只要开启了归档模式,数据库就会持续生成归档日志。
恢复方式
备份的目的是恢复,恢复能力才是真正考验备份体系的地方。TeleDB支持两种恢复模式:备份集恢复和时间点恢复。
备份集恢复是从指定的全量或增量备份集中恢复数据。恢复过程是:选择备份集、校验备份完整性、恢复数据文件、应用增量备份(如果使用增量恢复)、打开数据库。整个过程通过管理工具引导完成,操作步骤清晰。实测中,100GB数据的恢复约需20分钟,略长于备份时间,因为恢复时需要做数据校验和日志回放。
时间点恢复更加灵活,可以恢复到任意指定时间点。恢复过程是:先从最近的全量备份恢复基础数据,然后依次应用增量备份,最后应用归档日志到指定的目标时间点。这种恢复方式可以应对误操作场景——比如有人误删了一张表,可以恢复到删除操作之前的时间点。
时间点恢复的精度取决于归档日志的完整性。只要归档日志没有缺失,理论上可以恢复到任意一条事务的提交点。实测中,从全量备份加归档日志恢复到指定时间点,整个过程约30分钟(100GB数据加两天的归档日志)。
备份策略设计
好的备份策略需要在数据安全、存储成本和恢复时间之间找到平衡。TeleDB官方推荐的备份策略是"全量+增量+归档"的组合。
典型配置是:每周一次全量备份,每天一次增量备份,归档日志持续生成。备份保留策略为:全量备份保留4周,增量备份保留2周,归档日志保留30天。这样可以在大多数恢复场景下满足需求,同时控制备份存储成本。
对于关键业务系统,可以增加备份频率。比如每天一次全量备份、每4小时一次增量备份。这样恢复时需要应用的增量备份和日志更少,恢复时间更短。代价是备份存储空间更大、备份过程中的资源消耗更多。
备份存储位置也有讲究。本地备份恢复速度快但存在与生产系统同时损坏的风险。异地备份安全性高但恢复时需要先传输数据。合理的做法是同时保留本地备份和异地备份,本地备份用于快速恢复,异地备份用于灾难恢复。TeleDB支持备份文件自动上传到对象存储,实现异地备份的自动化。
实际演练
备份恢复体系光有方案不够,必须通过实际演练来验证。以下是一次恢复演练的记录。
演练场景:模拟误删除了一张重要业务表,需要恢复到删除操作之前。
第一步,确认误操作时间。通过审计日志查到删除操作发生在下午2点15分。恢复目标时间点设定为下午2点14分。
第二步,准备恢复环境。在生产集群之外搭建了一个恢复用的临时集群,规格与生产集群相同。不在生产集群上直接恢复,避免影响正常业务。
第三步,执行恢复。从最近的全量备份(前一天晚上执行)恢复基础数据,然后应用当天的增量备份(当天凌晨执行),最后应用归档日志到下午2点14分。整个恢复过程约45分钟。
第四步,数据验证。在恢复后的临时集群上验证被删除的表是否存在、数据是否完整。验证通过后,将这张表的数据导出,再导入到生产集群。
第五步,清理恢复环境。演练完成后删除临时集群,释放资源。
整个演练从开始到结束约一个半小时。恢复过程顺利,数据完整。通过演练验证了备份恢复体系的有效性,也让大家对恢复流程有了实际操作经验。
备份恢复的注意事项
几个容易踩坑的点需要注意。第一,定期验证备份文件的完整性。备份成功不等于备份可用,如果备份文件损坏了但没人知道,等需要恢复时才发现就晚了。建议定期做备份恢复测试。第二,归档日志的连续性必须保证。如果归档日志有缺失,时间点恢复就做不了。要监控归档日志的生成情况,发现异常及时处理。第三,恢复环境的准备要提前规划。恢复需要一个与生产环境兼容的集群环境,临时搭建可能来不及。第四,恢复操作的权限要严格控制。能执行恢复操作的人越少越好,恢复操作本身也是高风险操作,误恢复可能导致数据被覆盖。
TeleDB的备份恢复体系在功能完整性、操作便利性和可靠性上都达到了不错的水平。但再完善的工具也需要人来正确使用,建立规范的备份策略和定期演练机制,才是数据安全的真正保障。