快照库基本原理
快照库,即在生产库上隔离出来一个最小的快照。
快照库创建包括:
- DB的每个分片抽取一个备库停止复制
- 管理节点上rdb的元数据的备份
- GTM的备份。
快速恢复到快照库:
- DB节点:停止复制的备机进行升主(中间还有高低水位的修改)
- 元数据及GTM:采用备份恢复的方案。
快照库失效:
- DB接回主机
- 元数据及GTM备份文件清理
与集群备份恢复的差异:
快照库在DB节点上,不做备份,直接将选中的1个备机停止复制(进程依然在运行,只是将复制关系断开)
创建分类
GoldenDB快照库创建包括:
- 元数据备份
- Sequence备份
- 分片选择一个备库停止IO
元数据备份
备份集群相关的元数据,主要包括有数据字典,用户密码,索引信息。
DBPasswdInfos.dat、DictionaryInfos.dat、DictionaryInfos.idx、LoadserverPermission.dat、TableIndexInfos.dat、TableIndexInfos.idx
Sequence信息备份
备份集群相关的Sequence数据,主要包括有自增列所在表的库名,表名,起始值,步长,最小值,最大值,当前值等属性。
sequence_info
备库操作
校验分片是否有符合选择策略的备机,且状态正常。根据设置的等待备机回放时间,选择回放最快的一致性副本,对其进行停止复制操作。
创建流程
校验水位信息
CM向MDS发送获取水位信息请求,校验快照分片的水位是否位于高水位。
校验一致性
一致性快照选择是,创建快照会先停服用于保证租户集群数据一致性,会影响业务运行,适用可停服的业务升级场景。选否,不保证数据一致,适用于24小时不停服业务升级,数据一致性需要业务保证。
集群元数据备份
- 备份说明
CM向MDS发送元数据备份时,会全量备份该集群下数据字典、密码信息和索引信息。
- 备份保存路径
配置:元数据存放路径为metadataserver.ini中metadata_backup_dir配置值路径。
default path:$HOME/.metadata_backup_root |
会自动生成子目录“DBCluster_集群ID/SNAPSHOT_BACKUP/“SNAPSHOTID”目录/MetaData/”,备份的全量数据文件都存放在这个子目录下。
集群Sequence备份
- 备份说明
CM向GTM发送Sequence备份请求时,会全量备份该集群下Sequence信息。
- 备份保存路径
配置:Sequence备份信息存放路径对应gtm.ini中seq_backup_dir配置值路径。
default path:$HOME/seq_backup_root |
会自动生成子目录“DBCluster_集群ID/SNAPSHOT_BACKUP/“SNAPSHOTID”目录/Sequence/”,备份的全量数据文件存放在这个子目录下。
DN快照
- 获取主DB的binlog位置,指定全局一致性时刻
- 根据策略选择回放最快的备机
快照恢复流程
恢复流程说明如下:
- 对集群的元数据进行恢复。
- 对集群的Sequence进行恢复。
- 通知MDS降水位(1:1)
- 重置快照DN状态
- 快照DN升主
- 快照DN开启监控线程。
- 清理元数据备份。
- 清理Sequence备份。
- 恢复Group中其余的DN。
快照库失效流程
失效流程说明如下:
- 清理元数据备份。
- 清理Sequence备份。
- 停止复制的DN启用复制。
对系统的影响
- 创建和恢复快照过程需要CN停服,影响业务运行。
- 创建、恢复快照与备份恢复、导入导出操作互斥。
- 快照生命周期(新增快照成功-恢复/失效快照成功),不允许对快照DB进行一键恢复,分片恢复跳过该DB,不进行集群恢复。
综合以上影响,建议创建恢复操作与批业务操作放在不同的时间段执行。




