一、 PolarDB的备份与恢复
1. PolarDB备份
1) PolarDB备份概述
• PolarDB是为业务变化快,数据量激增,高并发场景而设计的数据库。为了数据的安全,PolarDB采用物理备份(快照备份),每天自动备份一次,也可以手动发起备份。
• 自动备份和手动备份都不会影响集群的运行,备份文件保留的时间为7天。
• 手动备份最多可以有3个,备份文件可删除;自动备份每天默认1个,备份文件不可删除。
2) 手动备份与自动备份
a) 自动备份
• 自动备份默认开启,PolarDB会按照设置的备份策略自动备份数据,以达到定时定期备份的效果,保证数据的安全性。
• 集群创建之初,PolarDB即会按照每日备份一次的频率,自动进行数据备份。
b) 手动备份
• 即主动备份,可以根据业务需求随时进行手动备份,达到即时备份的效果,确保数据可靠性。
c) 常规备份与增强备份
针对自动备份的频率,PolarDB支持两种频率:常规备份和增强备份。
• 常规备份
常规备份频率下,一天只能自动执行1次备份。
出于安全考虑,常规备份的频率为每周至少2次。
• 增强备份
增强备份频率下,24小时内可以自动执行多次备份,用户可以根据业务选择开启每2、3或4小时进行一次增强备份。
最近24小时增强保护功能开启后,备份完成时间在24小时内的备份会全部保留。超过24小时的,系统将仅保留每日00:00点后完成的第一个备份,其他均被删除。
d) 数据备份与Redo备份
PolarDB支持数据备份和Redo日志备份。用户可设置数据备份和Redo日志备份的备份策略,如数据自动备份的频率,数据备份文件保存时长、存储位置,日志备份文件保存时长等。
• 数据备份
数据备份即将某个时间点上集群的全量数据生成一个备份集(快照)。
• Redo备份
Redo日志备份即记录生成备份集后的增量数据。
2. PolarDB恢复
1) PolarDB恢复概述
• PolarDB在发生数据更新错误、或系统出现故障导致数据出现问题时,采用恢复数据方式,可以快速解决数据问题。
• 恢复数据可采用按时间点恢复或按备份集(快照)。
• 恢复数据时,集群可以恢复到过去7天内的任意时间点,是基于Redo日志的,与Binlog无关。
• 数据恢复是基于“全量快照备份+Redo日志”,Redo日志量大小与数据库的写负载有关,写入/更新频繁的数据库会产生较多的Redo日志。
2) PolarDB恢复操作
PolarDB可执行全量数据恢复操作和库表级数据恢复操作。
• 全量恢复
是指将PolarDB全量历史数据恢复至一个新的集群,验证新集群数据后,可以再将恢复后的数据迁移至原集群。
• 库表恢复
是指仅恢复指定的部分库或部分表到原集群。例如游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。
PolarDB恢复操作可以基于备份集恢复和基于时间点恢复。
• 备份集恢复(全量/库表)
√ 库表恢复方式中的从备份集恢复,只支持从一级备份的备份集里恢复,不支持从二级备份恢复。
√ 库表恢复只会恢复指定的表,操作时请确认已选中所有需要恢复的表。
√ 集群内的表低于50000张才可以使用库表恢复功能,超过50000张表时无法使用。
√ 库表恢复功能不支持恢复触发器(Trigger),若原表设置了Trigger,该Trigger不会被恢复。
√ 库表恢复功能不支持恢复外键(ForeignKey),若原表设置了ForeignKey,该ForeignKey不会被恢复。
• 时间点恢复(全量/库表)
时间点恢复对于库表恢复的约束,和备份集恢复的约束相同。