1 原理
备份原理
•KunDR:KunDB备份恢复工具,提供备份恢复入口,控制备份恢复流程。
•Xtrabackup:MySQL一致性热备份,并在备份结束后记录binlog一致性位点。用来为BinlogSync提供开始同步位置。
•BinlogSync: 增量备份服务器,备份期间定期向各个分片获取同步binlog数据,恢复期间对binlog数据进行裁剪。
恢复原理
优点
•在全量恢复的基础上,可以基于任意时间点进行增量恢复,且保证恢复后的数据是全局一致的。
•全量备份与增量备份数据采用binlog GTID position无缝衔接,保证数据的完整性。
•统一管理全量备份与增量备份数据,使用服务定期同步增量数据,恢复时自动恢复全量数据及并回放增量数据。
2 备份步骤
# binlogsync进程启动(用于实时binlog备份,能够还原到指定时间点)
bash kunkun.sh -b -s "-s -p8765"
# 物理全量备份
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -d"
# 物理增量备份
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -r -i your_base_backup_id"
配置文件xkunconf.sample.yml(下方列出一般情况需要修改的配置项)
# kungate主机地址及端口 指定一个可用 gate 就可以
gates:
- host: 192.168.124.129
port: 15307
#binlogsync相关配置
binlogsync:
#端口 必须与kundr位于同一节点上,指定任意可用端口即可,启动binlogsync时与配置端口对应
port: 8765
#binlog复制或裁剪时容许的延长时间,单位:秒; 建议使用Tso时为60s,否则为5s
extendedTime: 5
#tso连接信息
tso:
#是否使用基于TSO的备份恢复,若为false,则基于系统时间戳
useTso: false
# 旧版本只能用host&prot方式
# host: 192.168.124.129 #127.0.0.1
# port: 50000
# 新版本可用指定集群方式连接
multi: multi:///localhost:50000
# 需要指定完整的物理拓扑
keyspaces:
# name只是用于唯一标识
- name: kundb1
shards:
# name只是用于唯一标识
- shardName: shard1
# 通过 ssh 协议连接时的 hostname
host: 192.168.124.129
# 通过 mysql 协议连接时的 hostname, TDH 不需要指定, TDC 需要通过 kunctld 查看
dbHost:
port: 17100
# 指定到包含 my.cnf, data, innodb 的目录
shardDatadir: /home/h/go/vtdataroot/vt_0000000100
# mysql master key 路径, 表数据未加密则不填
# /home/h/go/vtdataroot/vt_0000000100/my.cnf文件中的值
keyFile: /home/h/go/vtdataroot/master_key_100
# my.cnf 中指定的 keyring_file_data 路径, 表数据未加密则不填
myKeyFile: /home/h/go/vtdataroot/master_key_100_my
# 同shards项
slaves:
- host: 172.18.128.18
dbHost:
port: 14111
shardDatadir: /mnt/disk1/kundb13/vt_0000000111
keyFile:
myKeyFile:
#登录认证相关
credential:
# 默认vt_app
gateUser: vt_app
# gate登录密码,自己设置
gatePassword: 123
# 默认root
shardSSHUser: root
# 默认vt_app
shardUser: vt_app
shardPassword: shardPassword
dump:
#备份后文件存放目录
dumpDir: /home/h/kundr/dump
restore:
# 指定 kunkun 物理恢复所用工作目录, 不需要是备份文件所在目录
restoreDir: /home/h/kundr/restore
# 物理恢复失败文件存放目录
errorDir: /home/h/kundr/restore/error
3 恢复步骤
# 物理全量还原 不开启实时binlog
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -r -i your_base_backup_id -o"
# 物理增量还原 不开启实时binlog (-j2表示还原到第二次增量)
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -r -i your_base_backup_id -j2 -o"
# 查询可还原时间段
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -q -i your_base_backup_id"
# 指定还原时间点进行还原
# 还原成功日志会打印一个语句用于重启kundb后裁剪备份的binlog
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -r -i your_base_backup_id -t yyyy-mm-dd-hh:MM:ss"
# 重启kundb
# 执行binlog裁剪
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




