基于GTID的主从复制

一.GTID介绍

mysql从5.6版本开始支持的新特性,

GTID  Global Transaction Tdentified

全局事务ID      

GTID构成:

server_uuid  +   事务ID【构成的一串随机数】

  从服务器连接主服务器,需要知道主服务器的二进制日志文件名,以及事件pos位置。

二.基于GTID的主从复制

环境描述:

192.168.183.10  master服务器

192.168.183.11 slave服务器

export LANG=en_US.UTF-8:这行命令定义了一个名为 LANG 的环境变量,并将其值设置为 en_US.UTF-8。在Linux系统中,LANG 环境变量用于指定系统的语言和字符编码。这里的 en_US.UTF-8 表示使用美国英语(English United States)的语言环境,并且字符编码采用 UTF-8 格式。UTF-8 是一种广泛使用的字符编码方式,能够支持全球大多数语言的文字表示。

1.在服务器中安装MySQL5.7

如上图所示,因为GTID是从MySQL5.7版本才开始支持的,所以我们去编写一个ftp类型的repo源,随后我们将这个repo源复制给另一个机器,

如上图所示,随后我们去安装这个MySQL软件。

随后我们去修改这个数据库的配置文件中的内容,即文件/etc/my.cnf文件中的内容。

2.在master服务器上编辑配置文件,启用gtid特性。

如上图所示,服务器的server_id需要我们做一个配置,随后是启用二进制日志,随后是启用数据库软件的gtid配置,当在数据库软件中启用gtid之后,后续数据库在二进制日志中记录事件的时候,每一个事件都会有一个唯一的ID,

如上图所示,这是对这个数据库进行初始化密码的基本操作。

3.导入教务数据库

如上图所示,这是导入教务数据库的操作,

为了更好的减少时间延迟,我们把数据进行完全备份,随后将完全备份的数据,拿到从服务器上进行恢复。

4.在主服务器上进行完全备份,并且创建允许从服务器远程连接的用户。

如上图所示,当数据库软件启用这个gtid的功能之后,我们在进行完全备份的时候,就需要将这个gtid=OFF,否则会出现警告信息,

如上图所示,此时在主服务器上创建允许从服务器进行远程连接的用户,随后刷新权限表。

5.在slave服务器上编辑配置文件,启用gtid特性,

如上图所示,这是在从服务器上通过编辑配置文件,来启用gtid的特性,

在从服务器上恢复主服务器数据。实现数据同步,减少时间延迟。

6.slave服务器上恢复主服务器数据

如上图所示,这是在slave服务器上恢复主服务器数据。

7.使得slave服务器连接master主服务器

如上图所示,这是在从服务器上使用远程连接用户repluser连接主服务器的操作,

随后使用命令start slave;在从服务器上启用复制线程的操作。

8.查看复制线程的状态

如上图所示,此时我们在从服务器上使用show slave  status \G 来查看复制线程的状态的时候,发现复制线程中的IO线程的状态是未启动的。说明从服务器连接主服务器是有问题的。

如上图所示,因为从服务器在使用repluser用户去连接主服务器的时候,密码信息出现错误,此时需要我们去修改连接信息,我们就把之前启动的复制线程停止,随后重新输入连接信息,新的信息会把旧的信息覆盖掉,此时我们再次重启复制线程。

如上图所示,此时我们再次使用show slave status\G 来查看从服务器上复制线程的状态时,发现复制线程状态正常。

如上图所示,此时发现IO线程正常说明从服务器连接主服务器是没有问题的,但是SQL线程确实出现问题,这说明,从服务器在从中继日志中读取事件在从服务器上执行有问题的,

如上图所示,究其原因就是从服务器和主服务器的数据不一致造成的。

如上图所示,先把复制线程停掉,随后拿之前的完全备份文件,source  sql文件,使得主服务器与从服务器完全同步一下数据,

随后敲start slave;重新启动一下这个复制线程。

但是我们发现通过show slave status\G 看到sql线程还是同样的错误。

如上图所示,此时我们将这个主键信息删除,

如上图所示,我们停止复制线程,随后我们启用复制线程。我们可以发现IO线程和SQL线程都正常工作了。

如上图所示,主服务器发送过来的25个操作,从服务器执行了25个操作。

从服务器在本地的中继日志里面记录了309个信息。

9.验证主从复制

如上图所示,这是表明主服务器发送过来了26个操作,从服务器执行了26个操作,表明主从复制配置成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值