金点分享 | 数据库系列之GoldenDB备份恢复
GoldenDB备份恢复是基于xtrabackup实现的,本文简要介绍GoldenDB备份恢复流程和实现原理。
1、备份恢复原理
1.1 xtrbackup备份恢复原理
记录xtrabackup_log。 拷贝所有表的*. ibd数据文件和ibdata1文件到指定备份目录。 执行命令:FLUSH TABLE WITH READ LOCK 拷贝.frm、.MYD、.MYI、misc files。 获取binlog日志的position 执行命令UNLOCK TABLES 结束xtrabackup备份任务,拷贝xtrabackup_log
Xtrabackup全量备份语句
xtrabackup --backup --target-dir=/mnt/data/all/ --user=root --password=123456 --socket=/tmp/mysqld.sock
Xtrabackup增量备份语句
xtrabackup --backup --target-dir=/mnt/data/v1/ --incremental-basedir=/mnt/data/all/ --user=root --password=123456 --socket=/tmp/mysqld.sock
恢复语句
xtrabackup --copy-back --target-dir=/mnt/data/all/
1.2 备份恢复架构图
1.3 备份文件类型
1.3.1 data数据文件备份
1.3.2 binlog日志备份
1.3.3 活跃事务列表备份
1.3.4 集群元数据备份
1.4 备份恢复策略
定时备份:根据定时备份策略定时发起,备份模式包括不备份、全量备份和增量备份 实时备份:在运维平台手动发起,满足特定场景下的实时备份和恢复需求
每个DB节点定时备份binlog日志,默认备份间隔2小时 DBagent参数binlog_backup_interval设置
每隔30 s向GTM查询当前活跃事务列表信息和向DBagent查询当前binlog位置信息,并将查询结果信息保存在.current 文件中 每隔60 s查看.current文件是达到1 M,如果达到1 M,将.current文件归档到backup_root_directory配置路径下的子目录“Active_TX_Archive”下 由clustermanager.ini中参数active_tx_timing_query控制,1表示打开
全量备份:由CM通知,将整个集群元数据信息全部备份 增量备份:在DDL操作时,将相关数据字典信息和索引信息备份下来
1.5 备份恢复影响
磁盘IO:从本地磁盘读数据,占用磁盘读IO 网络IO:从本地上传到NFS共享目录,影响DB服务器的网络IO 表加锁:备份过程中会有短暂的flush table with read lock锁
磁盘IO:数据文件拷贝到待恢复数据磁盘上,占用磁盘写IO 网络IO:从备份设备恢复数据到DB服务器上,影响DB服务器的网络IO 恢复过程中DB会有启停操作
MDS将备份任务入库,对应的表是mds.timing_backup_task_info MDS接收到备份结果后入库,相应的表是:gdb_cluster_backup_history_detail和goldendb_omm.gdb_cluster_backup_history 备份文件保存在$HOME/backup_root 备份可以指定主节点备份或者备节点备份
2.2 binlog日志备份流程
binlog日志通过DBagent定时任务备份,默认备份间隔为2小时 备份文件默认保存在备份路径的BINLOG_BACKUP 目录下 当前备份记录会保存在etc/dbagent_info/binlogbackup.info,作为下一个备份开始位置 参数binlog_backup_interval控制是否备份binlog
2.3 活跃事务列表备份流程
CM每隔30 s向GTM查询当前活跃事务列表信息和向DBagent查询当前binlog位置信息,并将查询结果信息保存在备份路径的.current 文件中 CM每隔60 s查看.current文件是达到1 M,如果达到1 M,将.current文件归档到backup_root_directory配置路径下的子目录“Active_TX_Archive”下
2.4 集群元数据备份
CM向MDS发送元数据备份,全量备份该集群下数据字典、密码信息和索引信息 DDL操作时,MDS会增量备份数据字典和索引信息
3、恢复流程
3.1 单个DB恢复流程
获取恢复所需要的文件 通过全量备份文件(及增量文件)恢复DB 应用binlog 文件 回滚恢复时刻的活跃事务 3.2 集群恢复流程
集群恢复也分为全量恢复和增量恢复,集群恢复流程如下: 对集群的元数据进行恢复。 恢复集群中每个Group的DB 获取恢复所需要的文件。 通过全量备份文件(及增量文件)恢复主机DB 对主机DB应用binlog 文件 对主机DB回滚恢复时刻的活跃事务 对主机DB打tar包 将主机生成的tar包解压到每个备机DB 设定GTM的大GTID值。
来源 https://mp.weixin.qq.com/s/o3GzcUlvwVCERtppE18Ang
相关文章