mysql5.7 gtid复制_MySQL5.7启动gtid复制

gtid配置路线图803cec5399aaf5c709ea7c1d504e7562.png

查看gtid配置mysql> show variables like 'gtid%';

+----------------------------------+------------------------------------------+

| Variable_name | Value |

+----------------------------------+------------------------------------------+

| gtid_executed_compression_period | 1000 |

| gtid_mode | ON |

| gtid_next | AUTOMATIC |

| gtid_owned | |

| gtid_purged | 00015630-1111-1111-1111-111111111111:1-7 |

+----------------------------------+------------------------------------------+

5 rows in set (0.06 sec)

my.cnf配置log-bin=mysql-bin

binlog_format=row

gtid_mode=ON

enforce_gtid_consistency=ON

enforce_gtid_consistency强制gtid一致性,一些sql在执行的时候会被拆分成2个SQLinsert into table … selec,参见 不支持的语法SQL。这在GTID下是有问题的,开启enforce_gtid_consistency后,遇到此类SQL会报错。

在每台机器上顺序执行下面的命令mysql > set @@global.enforce_gtid_consistency=warn;

Query OK, 0 rows affected (0.00 sec)

mysql > set @@global.enforce_gtid_consistency=on;

Query OK, 0 rows affected (0.00 sec)

mysql > set @@global.gtid_mode=off_permissive;

Query OK, 0 rows affected (0.03 sec)

mysql > set @@global.gtid_mode=on_permissive;

Query OK, 0 rows affected (0.03 sec)

mysql > show status like 'ongoing_anonymous_transaction_count';

+-------------------------------------+-------+

| Variable_name | Value |

+-------------------------------------+-------+

| Ongoing_anonymous_transaction_count | 0 |

+-------------------------------------+-------+

1 row in set (0.00 sec)

mysql > set @@global.gtid_mode=on;

Query OK, 0 rows affected (0.03 sec)

在master上创建rep1用户create user 'repl'@'%';

grant replication slave on *.* to 'repl'@'%' identified by '123456';

在slaver上执行命令,配置masterCHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=15630, MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_AUTO_POSITION=1;

在slaver上启动复制start slave;

在master上查看binlogmysql> show master logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000001 | 4293 |

| mysql-bin.000002 | 201 |

| mysql-bin.000003 | 201 |

| mysql-bin.000004 | 1797 |

+------------------+-----------+

4 rows in set (0.00 sec)

查看binlog详情mysql> show binlog events in "mysql-bin.000004";

+------------------+------+----------------+-----------+-------------+-------------------------------------------------------------------------------------------------------------------------------------+

| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |

+------------------+------+----------------+-----------+-------------+-------------------------------------------------------------------------------------------------------------------------------------+

| mysql-bin.000004 | 4 | Format_desc | 101 | 123 | Server ver: 5.7.29-log, Binlog ver: 4 |

| mysql-bin.000004 | 123 | Previous_gtids | 101 | 154 | |

| mysql-bin.000004 | 154 | Gtid | 101 | 219 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:1' |

| mysql-bin.000004 | 219 | Query | 101 | 366 | CREATE USER 'supermarketgame_rw'@'%' IDENTIFIED WITH 'mysql_native_password' |

| mysql-bin.000004 | 366 | Gtid | 101 | 431 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:2' |

| mysql-bin.000004 | 431 | Query | 101 | 563 | CREATE USER 'rep'@'%' IDENTIFIED WITH 'mysql_native_password' |

| mysql-bin.000004 | 563 | Gtid | 101 | 628 | SET @@SESSION.GTID_NEXT='00015630-1111-1111-1111-111111111111:3' |

| mysql-bin.000004 | 628 | Query | 101 | 761 | CREATE USER 'rep1'@'%' IDENTIFIED WITH 'mysql_native_password' |

| mysql-bin.000004 | 761 | Gtid | 101 | 826 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:4' |

| mysql-bin.000004 | 826 | Query | 101 | 1044 | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |

| mysql-bin.000004 | 1044 | Gtid | 101 | 1109 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:5' |

| mysql-bin.000004 | 1109 | Query | 101 | 1257 | use `test`; create table office_dogs (id int(11), name varchar(255), primary key (id)) |

| mysql-bin.000004 | 1257 | Gtid | 101 | 1322 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:6' |

| mysql-bin.000004 | 1322 | Query | 101 | 1394 | BEGIN |

| mysql-bin.000004 | 1394 | Table_map | 101 | 1451 | table_id: 108 (test.office_dogs) |

| mysql-bin.000004 | 1451 | Write_rows | 101 | 1496 | table_id: 108 flags: STMT_END_F |

| mysql-bin.000004 | 1496 | Xid | 101 | 1527 | COMMIT /* xid=80 */ |

| mysql-bin.000004 | 1527 | Gtid | 101 | 1592 | SET @@SESSION.GTID_NEXT= '00015630-1111-1111-1111-111111111111:7' |

| mysql-bin.000004 | 1592 | Query | 101 | 1664 | BEGIN |

| mysql-bin.000004 | 1664 | Table_map | 101 | 1721 | table_id: 108 (test.office_dogs) |

| mysql-bin.000004 | 1721 | Write_rows | 101 | 1766 | table_id: 108 flags: STMT_END_F |

| mysql-bin.000004 | 1766 | Xid | 101 | 1797 | COMMIT /* xid=101 */ |

+------------------+------+----------------+-----------+-------------+-------------------------------------------------------------------------------------------------------------------------------------+

22 rows in set (0.00 sec)

使用mysqlbinlog命令,可以查看binlog的更详细信息mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000004

查看gitd_purgedshow variables like 'gtid_purged';

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值