首页 > 数据库技术 > 详细

Mysql的主从复制和主主复制

时间:2021-08-02 23:32:55      阅读:21      评论:0      收藏:0      [点我收藏+]

一、概述

Mysql数据库在单机工作时候存在单点故障,并且数据也存在损坏的可能,此时就需要做双机实时冗余,那就会用到常用的架构主从和主主。本次实践使用mariadb来实现冗余。

二、内容实践

1、主从复制的实现(本次实现主从均是新建系统)

在主节点和从节点上都要安装同一版本的mariadb数据库

 yum install -y mariadb-server

当前仓库中的版本是mariadb 10.3.28。

进入/etc/my.cnf.d目录,修改mariadb-server.cnf

技术分享图片

设置开启自启动和立即启动服务

systemctl enable --now mariadb.service

查看当前数据库列表

技术分享图片
查看当前日志位置
技术分享图片

配置远程服务账号和密码

grant replication slave on *.* to ‘repuser‘@‘192.168.22.%‘ identified by ‘test‘;

技术分享图片

#查看主从复制的帮助内容
help change master to;
****
CHANGE MASTER TO
  MASTER_HOST=‘master2.mycompany.com‘,
  MASTER_USER=‘replication‘,
  MASTER_PASSWORD=‘bigs3cret‘,
  MASTER_PORT=3306,
  MASTER_LOG_FILE=‘master2-bin.001‘,
  MASTER_LOG_POS=4,
  MASTER_CONNECT_RETRY=10;
****

将日志信息填写的change master to模板中

CHANGE MASTER TO
  MASTER_HOST=‘192.168.22.28‘,
  MASTER_USER=‘repuser‘,
  MASTER_PASSWORD=‘test‘,
  MASTER_PORT=3306,
  MASTER_LOG_FILE=‘testbin.000002‘,
  MASTER_LOG_POS=540,

在从节点上配置server-id、log-bin和read-only(建议)选项

技术分享图片
启动服务
技术分享图片
配置主从模板到从服务器上
技术分享图片
启动slave线程
技术分享图片

验证,在主服务器创建数据库db1,在从服务器查看结果

主:
技术分享图片

技术分享图片
到此主从已经可以正常同步和使用。

2、主主模式的实现

主主模式如果在同时写入时,会存在主键冲突的问题,为了解决这个可以修改自动步进和初始值,同时要确定两台服务器均开启了二进制日志

主服务器:
技术分享图片
第二主服务器:
技术分享图片

配置第二主服务器,并开启slave进程。

CHANGE MASTER TO
  MASTER_HOST=‘192.168.22.28‘,
  MASTER_USER=‘repuser‘,
  MASTER_PASSWORD=‘test‘,
  MASTER_PORT=3306,
  MASTER_LOG_FILE=‘testbin.000002‘,
  MASTER_LOG_POS=540,

配置主服务器访问第二主服务器

CHANGE MASTER TO
  MASTER_HOST=‘192.168.22.38‘,
  MASTER_USER=‘repuser‘,
  MASTER_PASSWORD=‘test‘,
  MASTER_PORT=3306,
  MASTER_LOG_FILE=‘mariadb-bin.000003‘,
  MASTER_LOG_POS=344

技术分享图片
技术分享图片

验证测试

在主节点创建表插入3行数据

create table test(id int auto_increment primary key,user char(10));
insert test(user) values(‘user11‘),(‘user12‘),(‘user13‘);

技术分享图片
在第二主节点向表中插入数据

insert test (user) values(‘user21‘),(‘user22‘),(‘user23‘);

技术分享图片
可以看出已经避开了冲突的键值

三、总结

主主复制是通过互为从节点来实现同步,通过增值的规避解决主键冲突,但是如果两个节点同时写入时,仍然会有两个节点同时修改数据的情况,所以此种主主模式一般仅用于快速切换主备,不用来直接同时提供双写入。

Mysql的主从复制和主主复制

原文:https://blog.51cto.com/u_15131458/3251596

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!