暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Transwarp KunDB 物理+逻辑binlog备份和恢复教程

原创 明智健悟 2023-02-21
606

1 原理

备份原理

IMG_256

•KunDR:KunDB备份恢复工具,提供备份恢复入口,控制备份恢复流程。

•Xtrabackup:MySQL一致性热备份,并在备份结束后记录binlog一致性位点。用来为BinlogSync提供开始同步位置。

•BinlogSync: 增量备份服务器,备份期间定期向各个分片获取同步binlog数据,恢复期间对binlog数据进行裁剪。

恢复原理

IMG_257

优点

•在全量恢复的基础上,可以基于任意时间点进行增量恢复,且保证恢复后的数据是全局一致的。

•全量备份与增量备份数据采用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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论