Mariadb基于GTID的双主复制配置

作者: 刘小白DOER | 来源:发表于2020-09-25 17:28 被阅读0次

      在笔者完成前两篇文章Mariadb基于GTID复制实验mysql(mariadb)数据库主备同步 后,一直没有开展双主复制配置。今天在小孩睡觉期间,得闲来把最后的搞定。人至践者无敌,每次捣鼓实验记录下来,最后都可以把两个树莓派上面的数据库双主配置和keepalived高可用都配置好。简书是个好平台,让成长有迹可循!

实验平台:

树莓派maria:192.168.31.76

树莓派LAMP:192.168.31.82

一、修改配置文件

        在前两次的实验的基础上,完成了大部分工作,主备完成了基于GTID复制,这一次就需要在备机上配置生成二进制文件,和主机上一致。但需要增加的是,自动增长id的区别,防止同时写入时自增ID冲突。修改树莓派maria的/etc/mysql/my.cnf配置文件,在添加使用奇数的ID。修改树莓派LAMP的/etc/mysql/my.cnf配置文件,添加下面的配置,除了server-id外,其他和树莓派maria都一致,同时还要添加使用偶数的ID.。

server-id=2主机id,要唯一

log_bin=mysql-bin  二进制日志文件名称

log_error=mysql-bin.err  错误日志名称

binlog_do_db=masterslave  只复制数据库masterslave

自增ID配置:

      1、  定义一个节点使用奇数ID:

        auto_increment_offset=1起始节点

        auto_increment_increment=2每次偏移节点,即往上累加数

    2、 另一个节点使用偶数ID:

        auto_increment_offset=2

        auto_increment_increment=2

二、创建同步账号并重启

        在树莓派LAMP上,创建同步账号sync,密码sync,老生常谈了。

grant replication slave on *.* to 'sync'@'192.168.31.82' identified by 'sync';

flush privileges;

因为两个服务器都修改了配置文件,就需要service mysqld restart重启数据库,让新配置文件失效。

三、树莓派maria定向到树莓派LAMP,完成双主功能

          在树莓派maria数据库命令行,执行下面两条命令,完成maria作为从机向树莓派LAMP复制,复制方式为gtid。

CHANGE MASTER TO master_host='192.168.31.33', master_port=3306,master_user='sync',master_password='sync',master_use_gtid=current_pos;

START SLAVE;

命令show slave status \G;查作为从机的状态,两个进程状态、Slave_IO_Running、Slave_SQL_Running,GTID状态。



四、功能测试

        在树莓派maria上插入记录,自增ID奇数:

        insert into test(THING,ADDRESS) value ('主主复制','主主复制');

        在树莓派LAMP上插入另一条记录,自增ID偶数:

        insert into test(THING,ADDRESS) value ('双主复制','双主复制');

        查看两个数据库中test表中数据是否一致。ID为13是树莓派maria插入的,ID为14是树莓派LAMP插入的,即使同一时间在两个树莓派数据库插入数据库,因为自增ID不一样,所以也不会冲突。

        在实际运用中,笔者是配置了keepalived。参考我的文章-Keepalived让树莓派也可以VIP漂移。树莓派maria抢占VIP(Virtual IP Address),通过IP地址192.168.31.100对外提供服务。

      在树莓派maria上 执行/etc/init.d/keepalived stop,停止keepalived 进程,查看树莓派LAMP上面的keepalived日志;树莓派maria上 执行/etc/init.d/keepalived start,启动keepalived 进程,查看树莓派LAMP上面的keepalived日志。可以看到16:53:06到17:02:15分之间,树莓派LAMP从master变为backup。

      在数据库方面,笔者使用Navicat ,通过VIP来连接数据库,测试成功。

Navicat通过VIP连接数据库

    使用phpmyadmin连接数据库,测试成功,可以看到100的主机里面对应的master是82机子,那么100的IP是漂移在76这台树莓派上面的。

phpmyadmin通过VIP连接数据库

      两个树莓派打造了高可用的数据库服务器,那么在运用程序端就可以用100的IP来完成数据库读写功能了。在运用中,这种方案的备机是热备状态,不能负载均衡,只是作为灾备功能。而且不建议两个数据库同时有写入操作,因为存在数据一致性问题。在笔者见过的数据库服务器中,为了实现服务器高可用配置,需要有一台备用数据库随时接管服务。还有就是有两个服务器,应用服务器和数据库服务器,数据库服务器故障时,应用服务器同时完成应用服务和数据库服务。

相关文章

网友评论

    本文标题:Mariadb基于GTID的双主复制配置

    本文链接:https://www.haomeiwen.com/subject/xtyfuktx.html