MySQL双主(master-master)补充

环境:

主机名 主机IP 操作系统 MySQL版本
mysqlA 172.16.4.235
CentOS 6.5
2.6.32-431.el6.x86_64

mysql-community-server-5.7.5-0.6.m15.el6.x86_64
mysqlB 172.16.4.236
CentOS 6.5
2.6.32-431.el6.x86_64

mysql-community-server-5.7.5-0.6.m15.el6.x86_64


MySQL双主+半同步架构搭建参考上一篇博文:http://qicheng0211.blog.51cto.com/3958621/1596131

本文做一点补充:如果mysqlA已经运行了一段时间,要添加一台新的mysqlB,与mysqlA实现主主复制,就要先备份mysqlA上的数据导入到mysqlB,使数据保持一致;记录mysqlA上binlog的文件名和Position,在mysqlB上执行change mater;再记录mysqlB上binlog的文件名和Position,在mysqlA上执行change mater。

下面有两种实现方法:

    方法一、

1)对mysqlA数据库锁表操作,不让数据再进行写入动作

> flush tables with read lock;

不要退出连接,另开一个终端执行备份操作。

2)备份mysqlA的数据库

mysqldump -uroot -p --single-transaction --opt --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 > db.sql

--flush-logs:选项用以生成新的二进制日志文件。

--master-data:选项值等于2,备份后的sql文件里CHANGE MASTER语句被注释。

--single-transaction:InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。

3)看mysqlA数据库的状态,记录File和Position项的值后解锁。

> show master status;
> unlock tables;

上图所示二进制日志文件为mysql-bin.000002,位置为120。

4)在mysqlB上导入mysqlA的数据

mysql -uroot -p‘MNVq_YOg9‘ < db.sql

5)生成CHANGE MASTER语句,然后在mysqlB上执行

> STOP SLAVE; 
> CHANGE MASTER TO MASTER_HOST=‘172.16.4.235‘,MASTER_USER=‘repl_user‘,MASTER_PASSWORD=‘MNVq_YOg9‘,MASTER_LOG_FILE=‘mysql-bin.000002‘, MASTER_LOG_POS=120;
> START SLAVE;
> SHOW SLAVE STATUS\G

Slave_IO_Running和Slave_SQL_Running的状态,如果都为Yes,从库mysqlB配置成功。

6)记录mysqlB的File和Position项的值,生成CHANGE MASTER语句,然后在mysqlA上执行,启动mysqlA的slave

略。

    方法二、

1)备份A的数据库(不用锁表)

mysqldump -uroot -p --single-transaction --opt --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 > db.sql

2)使用grep命令查找二进制日志的名称以及位置

grep -i "change master" db.sql

上图所示二进制日志文件为mysql-bin.000002,位置为120。

然后执行方法一的4)、5)、6)即可。

时间: 2024-12-23 19:41:36

MySQL双主(master-master)补充的相关文章

mysql双主使用reset master清除日志要小心

假设a.b两台服务器做了mysql双主. 有一表是tab是这样的 create table tab(id int primary key auto_increment,name varchar(20)); 然后 如果是mysql主从的话,a是主,那么a机 reset master; 然后b机 stop slave; reset slave; start slave; 如果在a机reset master之后,b机stop slave之前,有新数据插入.删除等操作,当b机start slave后,b

MySQL双主(master-master)补充

环境:主机名 主机IP 操作系统 mysqlA 172.18.252.221 CentOS 6.5 2.6.32-431.el6.x86_64 mysqlB 172.18.252.222 MySQL版本 mysql-community-server-5.7.5-0.6.m15.el6.x86_64 MySQL双主+半同步架构搭建参考上一篇博文:http://blog.51cto.com/12947626/2125165 本文做一点补充说明:如果mysqlA已经运行了一段时间,要添加一台新的mys

&#8203;Keepalive实现mysql双主热备

Keepalive实现mysql双主热备 环境描述: OS: CentoOS6.6_X64 Node1:172.16.10.1 Node2:172.16.10.2 VIP:172.16.10.10 1.配置主机互信 Node1: [[email protected]~]# ifconfig eth0 eth0      Link encap:Ethernet  HWaddr 00:0C:29:11:21:56            inet addr:172.16.100.1  Bcast:17

MySQL双主(主主)架构方案

在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

HAproxy负载均衡MYSQL双主

OS IP 子网掩码 路由网关 Centos6.6 (DB:MYSQL) Eth0:192.168.26.211 255.255.252.0 192.168.25.3 Centos6.6 (DB:MYSQL) Eth0:192.168.26.212 255.255.252.0 192.168.25.3 Centos6.6 (HAproxy) Eth0:192.168.26.210 255.255.252.0 192.168.25.3 安装mysql:192.168.26.211 Yum inst

MySQL双主互备模式架构

MySql双主互备架构模式 操作系统 CentOS 6.3 MySql版本 mysql-5.0.56 keepalived keepalived-1.1.19.tar.gz Master DB1配置文件 修改MySql 配置文件  /etc/my.cnf 增加以下段落 [mysqld] server-id=1    节点标示 log-bin=mysql-bin   开启mysql的binlog日志功能 relay-log = mysql-relay-bin  用来定义日志文件命名格式 repli

MySQL双主配置

MySQL双主配置 准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.131.130,MySQL版本为5.6.26,为通用二进制包. 安装MySQL 1.主机A操作 # tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz # mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/m

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.