双主配置

我在配置主从服务器时,使用了两台服务器:10.19.34.126和10.19.34.91。

1、首先需要在这两台上搭建单独的mysql服务masterA和masterB。

2、配置数据库masterA,要对每一个数据库服务配置唯一标示,参数名为server-id,也可以通过ip来指定。修改my.conf文件参数:

log-bin= mysql-bin #所有的数据操作写入二进制日志,便于将sql语句同步到中继日志

auto-increment-offset=1 #自增长字段从那个数开始,他的取值范围是1 .. 65535

auto-increment-increment=2 #自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

log_slave_updates=1 #该参数用来设置将中继日志中的操作传入二进制日志,以便于该从数据库作为其他实例的主库。

replay_log=mysql-replay-bin #用来存储中继日志

server-id=1

在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2。这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。

3、配置数据库masterA,要对每一个数据库服务配置唯一标示,参数名为server-id,也可以通过ip来指定。修改my.conf文件参数:

log-bin= mysql-bin #所有的数据操作写入二进制日志,便于将sql语句同步到中继日志

auto-increment-offset=2 #自增长字段从那个数开始,他的取值范围是1 .. 65535

auto-increment-increment=2 #自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

log_slave_updates=1 #该参数用来设置将中继日志中的操作传入二进制日志,以便于该从数据库作为其他实例的主库。

replay_log=mysql-replay-bin #用来存储中继日志

server-id=2

4、在masterA数据库上创建账号,通过这个账号进行同步主库的二进制日志到备库的中继日志。

MySQL>grant all on *.* to 'root'@'%' identified by '123456'

5、在masterB数据库上创建账号,通过这个账号进行同步主库的二进制日志到备库的中继日志。

MySQL>grant all on *.* to 'root'@'%' identified by '123456'

6、在masterA服务器上查看当前二进制日志名和偏移量值:

MySQL> show master status;

7、在masterB服务器上首先停止复制服务,然后设置从服务器的同步点,最后开启同步服务:

MySQL> stop slave;

MySQL> CHANGE MASTER TO MASTER_HOST="10.19.34.126",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE="mysql-bin.000003",MASTER_LOG_POS=393044781,MASTER_CONNECT_RETRY=10;

MySQL> start slave;

8、在masterB服务器上查看当前二进制日志名和偏移量值:

MySQL> show master status;

9、在masterA服务器上首先停止复制服务,然后设置从服务器的同步点,最后开启同步服务:

MySQL> stop slave;

MySQL> CHANGE MASTER TO MASTER_HOST="10.19.34.91",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE=" mysql-bin.000004",MASTER_LOG_POS=393044425 ,MASTER_CONNECT_RETRY=10;

MySQL> start slave;

双主的部分详解

在配置双主时,可能有人会想到在将主数据库A的数据操作同步到主数据库B的中继器,由于开启了log_slave_updates参数,主数据库B从主数据库A同步的语句从中继日志转储到二进制日志中。由于是双向复制是否会出现该语句又同步到了数据库A中,答案是不可能的,因为在二进制日志中会标示该条语句是来自哪个数据库实例,如果标示数据库A,则不会循环同步到数据库A。如果该数据库的搭建模式只是双主模式,没有改属猪模式的从数据库,可以将log_slave_updates参数关闭,所有的同步复制不会转储到二进制日志,也避免了循环复制。

应有备库的双主模式

1、对双主模式中的两个数据库配置文件中添加配置参数:log_slave_updates=1。

2、查看masterA和masterB的二进制日志的文件和同步点。

3、在masterA和masterB的两个备库上都要执行以下指令,实现数据同步:

MySQL> stop slave;

MySQL> CHANGE MASTER TO MASTER_HOST="10.19.34.91",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE=" mysql-bin.000004",MASTER_LOG_POS=393044425 ,MASTER_CONNECT_RETRY=10;

MySQL> start slave;

双主实现自动切换

mysql双主复制模式_mysql复制模式第二部分-----双主模式相关推荐

  1. mysql的几种模式_MYSQL复制的几种模式

    MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制. MYSQL复制的几种模式 MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制. 简言之,这种新 ...

  2. 以下关于mysql复制关系_MySQL 复制

    MySQL复制介绍 •MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况下复制是异步进行的,从库也不需要一直连接到主库来同步数据 • MySQL复制的数 ...

  3. mysql能否复制文字_MySQL 复制(一:概述) | 剑花烟雨江南

    MySQL内建的复制功能是构建基于MySQL的大规模.高性能应用的基础,这类应用使用所谓的"水平扩展"的架构.我们可以通过为服务器配置一个或者多个备库(从库)的方式来进行数据复制. ...

  4. mysql优化常见错误处理_MySQL复制性能优化和常见问题分析

    前言 先来说说影响MySQL复制性能的几个参数吧 二进制日志文件并不是每次写的时候都会同步到磁盘,当发生宕机的时候,可能会有最后一部分数据没有写入到binlog中,这给恢复和复制带来了问题.当sync ...

  5. mysql 主备及时_MySQL高可用(二)主备延时如何解决?

    从上篇文章我们知道主备同步是依赖于 binlog,主库负责生产 binlog,备库负责消费 binlog,从而实现主备同步. 今天我们来学习一下主备同步里的一个重点的问题:主备延时. 主备延时,简单来 ...

  6. mysql数据库怎么添加主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  7. 如何增加mysql主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  8. mysql 创建复制账号_MySQL 复制(二:配置) | 剑花烟雨江南

    为MySQL服务器配置复制非常简单.但由于场景不同,基本的步骤还是有所差异.最基本的场景是新安装的主库和备库,总的来说分为以下几步: 在每台服务器上创建复制账号 配置主库和备库. 通知备库连接到主库并 ...

  9. mysql 复制 错误_Mysql复制错误error

    尝试配置 mysql 复制的时候使用 show slave status\G 出现下面的错误: [ERROR] Slave I/O: Master commandCOM_REGISTER_SLAVE ...

最新文章

  1. 在LNMP下用nginx 1.4.7配置nagios监控
  2. oracle数据库res,ipcs、ipcrm、sysresv、kernel.shmmax
  3. 实验二:用机器指令和汇编指令编程
  4. 20150917html第二次课
  5. django创建一个管理员用户
  6. python 接收邮件服务器地址_Python 用IMAP接收邮件
  7. Linux(Centos7)下使用RPM方式安装MySQL5.7
  8. python-Python 3中字符串可以被改变吗?
  9. SVN Attempted to lock an already-locked dir异常解决方法
  10. figsize, dpi参数
  11. SQL 2005 带自增列 带外键约束 数据导入导出
  12. Atitit attilax擅长项目解析与大数据采集提取 词法分析 电话号码提取 package vcfvcardprj; import java.util.Collection; imp
  13. jedate日期插件使用
  14. 服务器防御DDOS的办法
  15. iphone邮箱收件服务器设置,iphone中使用国内邮箱设置方法
  16. Python算法教程第三章知识点:求和式、递归式、侏儒排序法和并归排序法
  17. 统计学离散型变量和连续型变量有什么区别?
  18. 设计师必备的导航网站
  19. 模板会有多层镜像_【保持最新版本】EVE-NG 新版模板,镜像。2020-12-27有更新
  20. 科技向善,腾讯“守护者智能反诈中枢”在行动

热门文章

  1. 如何在WPS中给一组字母上方添加一个横线
  2. android重新启动_如何重新启动Android智能手机或平板电脑
  3. 做短视频千万不要错过这5个视频素材网
  4. RenderMonkey基本使用方法【转】
  5. 一万字长文解读中国的消费经济
  6. 浅谈Unity中的文字显示
  7. [Unity 代码写法整理]嵌套判断问题(一)
  8. JavaScript弹性透明的图片放大代码
  9. Latex输入分段函数
  10. Java学习笔记-@RunWith(SpringRunner.class)