对集群进行备份时,会对集群配置文件(cluster_dynamic_config)、CN、DN、GTS进行备份,支持全量备份和增量备份两种备份类型,支持备份集群至磁盘和NBU。
集群备份中,备份分为三个阶段:
- 备份控制文件
- 备份数据文件
- 备份日志文件
- 同一用户在同一集群上,同一时间只能进行一次备份操作。
增量备份
全量备份会将源数据完整备份,而增量备份仅将上次备份后所做的更改进行备份,这里的上次备份可以是全量备份,也可以是全量备份后的增量备份。数据文件中,每个页面记有一个序列号,当页面内容发生改变时,序列号会更新为当前时间对应的值。上一次备份后发生改变的页面,其序列号一定大于上次备份时刻的序列号(记为基线序列号),增量备份就是仅仅备份这些序列号大于基线序列号的页面,其他页面不做备份,从而减少磁盘空间占用,提高备份效率。
- 增量备份和全量备份的差异点在于,执行增量备份命令时需要指定--prior-backup-key,即上次备份的backup key。通过该backup key,系统可以获取到上次备份信息,以判断继上次备份之后所更改的数据,用于执行本次的增量备份。
- 增量备份(也包括全量备份)结果目录按时间戳命名,这个时间戳就是备份的backup key。时间戳信息可用于基于时间的数据恢复功能,该功能可将集群恢复到特定时间(全量备份点或增量备份点)的数据状态。
- 累积增量备份:如果一次全量备份之后的多次增量备份中,指定的--prior-backup-key参数值始终为全量备份的backup key,那么增量备份就是累积增量备份,累积增量备份均是基于近一次全量备份,如图1所示。
- 2018年2月8日6:00执行了全量备份,全量备份将备份整个集群的所有数据。
- 2018年2月8日7:00执行了增量备份,--prior-backup-key参数为6:00执行的全量备份的backup key,本次增量备份将自6:00全量备份之后所做的更改进行备份。
- 2018年2月8日8:00执行了增量备份,--prior-backup-key参数为6:00执行的全量备份的backup key,本次增量备份将自6:00全量备份之后所做的更改进行备份。
- 2018年2月8日9:00执行了增量备份,--prior-backup-key参数为6:00执行的全量备份的backup key,本次增量备份将自6:00全量备份之后所做的更改进行备份。
- 2018年2月8日10:00执行了增量备份,--prior-backup-key参数为6:00执行的全量备份的backup key,本次增量备份将自6:00全量备份之后所做的更改进行备份。
- 差分增量备份:如果一次全量备份之后的多次增量备份中,指定的--prior-backup-key参数值均为上次备份(可能是全量备份也可能是增量备份)的backup key,那么增量备份就是差分增量备份,差分增量备份均是基于近一次备份,如图2所示。
- 2018年2月8日6:00执行了全量备份,全量备份将备份整个集群的所有数据。
- 2018年2月8日7:00执行了增量备份,--prior-backup-key参数为6:00执行的全量备份的backup key,本次增量备份将自6:00全量备份之后所做的更改进行备份。
- 2018年2月8日8:00执行了增量备份,--prior-backup-key参数为7:00执行的增量备份的backup key,本次增量备份将自7:00增量备份之后所做的更改进行备份。
- 2018年2月8日9:00执行了增量备份,--prior-backup-key参数为8:00执行的增量备份的backup key,本次增量备份将自8:00增量备份之后所做的更改进行备份。
- 2018年2月8日10:00执行了增量备份,--prior-backup-key参数为9:00执行的增量备份的backup key,本次增量备份将自9:00增量备份之后所做的更改进行备份。
建议控制全量备份间增量备份的次数,当增量备份的次数太多时,数据恢复时需要恢复的增量备份次数太多,会导致系统性能下降。
由于增量备份需要了解先前的备份信息,因此增量备份的可靠性也取决于之前备份的可靠性。可以使用--validate-prior-backups参数在创建新的增量备份之前检查和验证先前的备份。
用户必须确保系统时间在执行全量备份后到增量备份前未曾更改。如果更改了时间,增量备份和恢复操作无法正常执行。
基于一次全量备份的多次增量备份,其备份命令的--metadata-destination参数指定的目录要相同。