MySQL主主复制及相关的排坑
主主复制的本质就是2台MySQL服务器互为主从。
但如此配置极易产生问题,如数据不一致导致主键的冲突,以及一些其他的错误。
为了减少主键冲突的情况,可以考虑让两个节点的id分别使用技术和偶数,这就需要用到两个服务器选项来配置。
auto_increment_offset #设置id的开始点
auto_increment_increment #设置id的步进
主主复制工作中不推荐使用,如确实需要使用,也将其当为主从来使用。
主主复制的搭建
使用2台主机来配置主主复制
主机
ip
Master1
192.168.73.110
Master2
192.168.73.111
配置Master1
1.修改配置文件
2.启动MySQL服务
[root@Master1 ~]# systemctl start mariadb
3.查看二进制日志位置
4.创建一个用来复制数据的用户
[root@Master1 ~]# mysql -e "GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.73.%' IDENTIFIED BY 'centos';"
配置Master2为Master1的从节点
1.修改配置文件
2.设置CHANGE MASTER TO
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.73.110', MASTER_USER='repluser',MASTER_PASSWORD='centos',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=245;
Query OK, 0 rows affected (0.01 sec)
3.查看从节点状态,确认无误
4.启动线程
MariaDB [(none)]> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
5.再次查看从节点状态
6.查看二进制日志位置
查看二级制日志位置用于,给Master1作为从节点使用。由于Master2上无数据二进制日志为干净日志,所以可以直接供Master1使用。
配置Master1为Master2的从节点
1.输入CHANGE MASTER TO的信息
CHANGE MASTER TO MASTER_HOST='192.168.73.111', MASTER_USER='repluser',MASTER_PASSWORD='centos',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=245;
2.查看从状态,确认信息无误
3.启动线程
MariaDB [(none)]> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
4.再次查看slave status
主主复制搭建完毕
测试
测试一、查看Master1输入数据,Master2能否复制
1.从Master1上导入hellodb数据库
2.从节点上查看数据库
测试二、Master2插入数据查看Master1是否能复制
1.在Master2中插入条记录
2.在Master1上查看数据
测试三、两边同时创建一张相同的表
1.同时对两个主机做出创建表的操作
2.查看Master1的hellodb库
3.查看Master2的hellodb库
此处看上好像没问提
测试四、继续插入数据,从看看复制状况
1.在Master1上继续往hellodb.test表中插入数据
[root@Master1 ~]# mysql -e "INSERT hellodb.test VALUE(1,'Tang San');"
2.Master2上查看复制状况
[root@Master2 ~]# mysql
MariaDB [(none)]> SELECT * FROM hellodb.test;
Empty set (0.00 sec)
#没有复制到数据
查错
分别查看Master1和Master2主机上的SLAVE STATUS;
Master1状态
显示出来刚在在创建表时已经复制出错,由于两边同时创建了同一张表发生了冲突
排错
分别在主从节点上停止线程
MariaDB [(none)]> STOP SLAVE;
分别在主从节点上使用sql_slave_skip_counter忽略错误
MariaDB [(none)]> SET GLOBAL sql_slave_skip_counter=1;
分别在主从节点上再次启动线程
MariaDB [(none)]> START SLAVE;
再次在从节点上查test表
此时数据已经能正常复制过去
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/16534.html