1 原理
全量备份:
- 拷贝redo日志
- 拷贝innodb数据文件
- 加表锁拷贝非innodb文件
增量备份:
基于上一次备份的LSN进行增量的redo日志备份
还原时:
- 将备份的redo日志应用到备份页上
- 拷贝处理完的备份文件到数据库目录中
优点
备份速度快,能较好的应对业务量较大的场景。
恢复时可以利用备份的数据文件,恢复完成后表内的数据是全局一致的。
2 备份步骤
# 物理全量备份 不开启实时binlog
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.yml -d -o"
# 物理增量备份 不开启实时binlog
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.yml -d -i your_base_backup_id -o"
配置文件xkunconf.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
# 新版本可用指定集群方式连接,ps -x | grep tso
# 找到对应进程中multi开头的参数
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配置的宿主机映射目录
# 如my.cnf中为/vdir/mnt/...,其在宿主机的映射路径为/mnt/...则应填/mnt/...
keyFile: /home/h/go/vtdataroot/master_key_100
# my.cnf 中指定的 keyring_file_data 路径, 表数据未加密则不填
# 不能与keyFile完全一样
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"
# 指定还原时间点进行还原
bash kunkun.sh -x -s "-c ../conf/sample/xkunconf.sample.yml -r -i your_base_backup_id -t yyyy-mm-dd-hh:MM:ss"
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




