当前位置:   article > 正文

05-基于GTID技术搭建主从复制_搭建gtid主从复制 主库运行了一段时间 能否选择特定的某2个数据库

搭建gtid主从复制 主库运行了一段时间 能否选择特定的某2个数据库


GTID (Global Transaction ID),也就是全局事务ID, 其保证为每一个在master主上提交的事务在复制集群中可以生成一 个唯一的 ID。

基于GTID的复制是从MySQL5.6开始支持的一种新的复制方式,此方式与传统基于binlog日志的方式存在很大的差异,在原来的基于日志的复制中,slave从服务器连接到 master,主服务器并告诉主服务器要从哪个二进制日志的偏移量开始执行增量同步,这时我们如果指定的日志偏移量不对,这 与可能造成主从数据的不一致,而基于GTID的复制会避免。

在基于GTID的复制中,首先从服务器会告诉主服务器已经 在从服务器执行完了哪些事务的 GTID 值,然后主库会有把
所有没有在从库上执行的事务,发送到从库上进行执行,并 且使用 GTID 的复制可以保证同一个事务只在指定的从库上
执行一次,这样可以避免由于偏移量的问题造成数据不一致。

GTID格式=source_id:transaction_id
source_id就是执行事务的主库的server‐uuid值server‐uuid值是在mysql服务首次启动生成的保存在数据 库的数据目录中,在数据目录中有一个auto.conf文件

查看UUID:

mysql> show variables like '%uuid%';
  • 1

事务ID则是从1开始自增的序列,表示这个事务是在主库上执行的第几个事务。

配置步骤

主库配置

[root@mysql01 ~]# vi /etc/my.cnf
character_set_server=utf8
server-id=101
log-bin=mysql-bin
gtid_mode=on
enforce_gtid_consistency=on
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

创建同步用户

mysql> grant replication slave,replication client on *.* to 'gtid'@'%' identified by '000000';
mysql> flush privileges;
  • 1
  • 2

##查看主库状态

mysql> show master status;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000002 |      609 |              |                  | f1ec3e3f-51f3-11ea-9628-005056285bae:1-2 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

从库配置

开启gtid

[root@mysql02 /]# vi /etc/my.cnf
character_set_server=utf8
server-id=102
gtid_mode=on
enforce_gtid_consistency=on
  • 1
  • 2
  • 3
  • 4
  • 5

配置同步

CHANGE MASTER TO
  MASTER_HOST='192.168.17.131',
  MASTER_USER='gtid',
  MASTER_PASSWORD='000000',
  MASTER_AUTO_POSITION=1; # 自动同步不用关心日志的位置
  • 1
  • 2
  • 3
  • 4
  • 5

开启slave

mysql> start slave;
mysql> show slave status\G;
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/937284
推荐阅读
相关标签
  

闽ICP备14008679号