这篇文章主要介绍了MySQL中GTID主备不一致怎么修复,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
方案一:重建副本
MySQL 5.6及以上版在复制中引入了新的全局事务ID (GTID)支持。在启用了GTID模式的情况下执行MySQL和MySQL 5.7的备份时,Percona XtraBackup会自动将GTID值存储在xtrabackup_binlog_info中。该信息可用于创建新的(或修复损坏的)基于GTID的副本。
前提条件
MySQL机器上需要安装Percona XtraBackup
优点
比较安全,操作简单
缺点
- <李>
数据量较大的时候备份所需的时间比较久
李> <李>当数据库有做读写分离的时候,奴隶承担的读请求需要转移到主
操作步骤
主
在总体上使用XtraBackup工具对当前的数据库进行备份,执行该命令的用户需要有读取MySQL数据目录的权限
innobackupex ——默认文件=/etc/my.cnf ——用户=root -H 127.0.0.1 ——密码=(密码),/tmp
将该备份文件拷贝到奴隶机器上
奴隶
在奴隶机器上执行该命令,准备备份文件
innobackupex ——默认文件=/etc/my.cnf ——用户=root -H 127.0.0.1 ——密码=(密码),——apply-log /tmp/(时间戳)
备份并删除奴隶数据目录
systemctl stop mysqld mv /数据/mysql {,。贝克}
将备份拷贝到目标目录,并赋予相应的权限,然后重启奴隶
innobackupex ——默认文件=/etc/my.cnf ——用户=root -H 127.0.0.1 ——密码=(密码),——copy-back /tmp/(时间戳) chmod 750/数据/mysql chown mysql.mysql  -R /数据/mysql systemctl start  mysqld
查看当前备份已经执行过的最后一个的GTID,如下示例
,美元cat /tmp//xtrabackup_binlog_info时间戳 mysql-bin.000002 , 1232,,,, c777888a b6df - 11 - e2 a604 - 080027635 - ef5:1 - 4
这个GTID也会在innobackupex备份完成后打印出来
innobackupex:, MySQL binlog 位置:,filename & # 39; mysql-bin.000002& # 39;,, position 1232年,GTID of 从而last change & # 39; c777888a b6df - 11 - e2 a604 - 080027635 - ef5:1 - 4 - & # 39;
使用根登录MySQL,进行如下配置
NewSlave 祝辞,RESET 主; NewSlave 祝辞,SET GLOBAL  gtid_purged=& # 39; c777888a b6df - 11 - e2 a604 - 080027635 - ef5:1 - 4 - & # 39;; NewSlave 祝辞CHANGE MASTER ,,,,,,MASTER_HOST=癿asterip"美元, ,,,,,,MASTER_USER=皉epl", ,,,,,,MASTER_PASSWORD=皊lavepass"美元, ,,,,,,MASTER_AUTO_POSITION =, 1; NewSlave 祝辞,START 奴隶;
查看奴隶的复制状态是否正常
NewSlave 祝辞SHOW SLAVE 状态\ G ,,,,[…] ,,,,Slave_IO_Running:是的 ,,,,Slave_SQL_Running:是的 ,,,,[…] ,,,,Retrieved_Gtid_Set:, c777888a b6df - 11 - e2 a604 ef5:5——080027635 ,,,,Executed_Gtid_Set:, c777888a b6df - 11 - e2 a604 - 080027635 - ef5:1 - 5
我们可以看到副本已检索到编号为5的新事务,因此从1到5的事务已在此副本上了。这样我们就完成了一个新副本的搭建。
方案二:使用percona-toolkit进行数据修复
PT工具包中包含pt-table-checksum和pt-table-sync两个工具,主要用于检测主从是否一致以及修复数据不一致情况。
前提条件
MySQL机器上需要安装percona-toolkit工具
优点
修复速度快,不需要停止从库
缺点
操作复杂,操作前最后先备份数据库
待修复的表需要具有唯一约束
操作步骤
背景示例
IP关系对应
|, IP | Role | | | - - - - -祝福、快乐- - - - - | | |,192.168.100.132 Master | | |,192.168.100.131 Slave |
假设待恢复的表结构如下所示
mysql>, show create table test.t; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |,Table Create Table ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |,t ,, |, CREATE TABLE “t”, ( ,“id”int (11), NOT 空, ,“内容”varchar (20), DEFAULT 空, ,PRIMARY KEY (id) ),引擎=InnoDB DEFAULT CHARSET=latin1 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MySQL中GTID主备不一致怎么修复