MySQL用GTID方式恢复数据

MySQL用GTID方式恢复数据

1、先登录MySQL系统查看当前的binlog日志
# 找到binlog文件路径
mysql> show master status;
# 查看gtid号,每个gtid号都在执行语句之前生成(切记)
mysql> show binlog events in 'mysql-bin.000004'  
2、开始导出数据
[root@test ~]# mysqlbinlog  --skip-gtids --include-gtids='b09afa63-11d5-11eb-89c4-000c29f7a041:1:1-3' /opt/app/mysql/data/mysql-bin.000004 >/tmp/restore.sql

# SET @@SESSION.GTID_NEXT= 'b09afa63-11d5-11eb-89c4-000c29f7a041:1'/*!*/; gtid
# --skip-gtids  表示导出忽略原因的gtid号,恢复时生成新的gtid号。不然导入的时候报错,幂等性问题
# b09afa63-11d5-11eb-89c4-000c29f7a041:1:1-3   b09afa63-11d5-11eb-89c4-000c29f7a041:1是uuid号,1-3是uuid后面的数字,表示哪个段开始导出到结束。
3、开始恢复数据
mysql> set sql_log_bin=0;  # 本次恢复不记录日志
mysql> source /tmp/restore.sql;
mysql> set sql_log_bin=1;  # 开启记录,切记需要打开
其他知识点一
mysqlbinlog  --skip-gtids --include-gtids='xxxx-xxx-xxx-xxx--xxx:1-3' --exclude-gtids='b09afa63-11d5-11eb-89c4-000c29f7a046:6','b09afa63-11d5-11eb-89c4-000c29f7a047:7'   /databases/mysql-3306/binlog/mysql-bin.000004 >/tmp/restore.sql

#  --exclude-gtids='','' 排除不导出的数据,多个的话逗号隔开
其他知识点二
1、gtid组成(server_uudi:tid,server__uuid?)
2、tid是一个自动增长的数据,从1开始(每个binlog会自动从1开始)
3、gtid幂等性:如果有gtid的日志恢复时,检查当前系统中是否有相同的gtid号,如果有相同则自动跳过,会影响主从复制
开启gtid
# 找到MySQL的配置文件my.cnf,添加如下两行
vim /opt/app/mysql-3306/etc/my.cnf
gtid-mode = on  # 开启gtid模式
enforce-gtid-consistency = true  # 强制gtid一致性
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值