mysql双主双从技术
一、准备环境
[root@localhost ~]# vim /etc/hosts
192.168.40.154 master1 192.168.40.129 master2
192.168.40.138 slave1 192.168.40.128 slave2
注:四台虚拟机配置都相同,且防火墙关闭
二、双主设置
master1(其数据库中提前准备点库)
1、[root@localhost ~]# vim /etc/my.cnf
log_bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
2、[root@localhost ~]# systemctl restart mysqld
3、授权:mysql>grant replication slave,replication client on *.* to 'rep'@'192.168.40.%' identified by 'Zjz@5740';
4、mysql> flush privileges;(刷新)
5、备份:mysqldump -p'Zjz@5740' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql
6、#scp -r 2017-1-1-mysql-all.sql master2:/tmp
7、观察二进制日志分割点
CHANGE MASTER TO MASTER_LOG_FILE='localhost-bin.000002', MASTER_LOG_POS=154;
master2
1、[root@localhost ~]#vim /etc/my.cnf( 启动二进制日志,服务器ID,GTID)
log_bin
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1
2、[root@localhost ~]# systemctl restart mysqld
还恢复手动同步数据
mysql>set sql_log_bin=0;
mysql>source /tmp/2017-1-1-mysql-full.sql
mysql>select * from master1db.master1tab;
3、设置主服务器
mysql> change master to
master_host='master1',
master_user='rep',
master_password='Zjz@5740',
master_auto_position=1;
start slave;
show slave status\G;
master1认master2为主
master2授权:mysql>grant replication slave,replication client on *.* to 'rep'@'192.168.40.%' identified by 'Zjz@5740';
flush privileges;(刷新)
master1:设置主服务器
mysql> change master to
master_host='master2',
master_user='rep',
master_password='Zjz@5740',
master_auto_position=1;
start slave;
show slave status\G;
mysqldump -p'Zjz@5740' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql
scp -r 2017-8-9-mysql-all.sql slave1:/tmp
scp -r 2017-8-9-mysql-all.sql slave2:/tmp
三、双从设置
slave1 # mysql -p'Zjz@5740' < /tmp/2017-8-9-mysql-all.sql
slave2 #mysql -p'Zjz@5740' < /tmp/2017-8-9-mysql-all.sql
启动从服务器ID,gtid
slave1 slave2
#vim /etc/my.cnf # vim /etc/my.cnf
server-id=3 server-id=4
gtid_mode=ON gtid_mode=ON
enforce_gtid_consistency=1 enforce_gtid_consistency=1
master-info-repository=TABLE master-info-repository=TABLE
relay-log-info-repository=TABLE relay-log-info-repository=TABLE
#systemctl restart mysqld #systemctl restart mysqld
设置主服务器
slave1(认两个主服务器)
mysql> change master to mysql> change master to
master_host='master1', master_host='master2',
master_user='rep', master_user='rep',
master_password='Zjz@5740', master_password='Zjz@5740',
master_auto_position=1 for channel 'master1'; master_auto_position=1 for channel 'master1';
mysql>start slave;
mysql>show slave status\G;(双yes成功)
slave2同上操作
四、总结
1、出现connettion,重启电脑试试
2、有些步骤先停止slave再操作
3、[root@slave1 ~]# mysql -p'Zjz@5740' < /tmp/2019-08-29-mysql-all.sqlmysql:
[Warning] Using a password on the command line interface can be insecure.
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
解决办法:mysql> reset master;(进入slave1)
Query OK, 0 rows affected (0.10 sec)
mysql> \q
Bye
4、Slave_IO_Running: No
Slave_SQL_Running: Yes
报错:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'
解决:这个应该是由于你在主库上执行过purge binary logs,然后当从库change master的时候,却要执行那些事务。
你可以在主库上先查找哪些gtid被purge了。show global variables like 'gtid_purged';
然后拿着这个value,去从库上依次stop slave;set global gtid_purged = 'xxx'; # xxx是你主库上查到的value。start slave;
这样能跳过执行被主库已经purge的事务了。
mysql双主双从技术的更多相关文章
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- 高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)
既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 博客链接:http:// ...
- 多机MySQL一主双从详细安装主从复制
多机MySQL一主双从详细安装 一.复制的工作原理 要想实现AB复制,那么前提是master上必须要开启二进制日志 1.首先master将数据更新记录到二进制日志文件 2.从slave start开始 ...
- mysql搭建主从复制(一主一从,双主双从)
主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器 ...
- 在Docker下进行MyCAT管理双主双从MySQL集群
前言 在Docker下双主双从MySQL集群模拟 https://www.cnblogs.com/yumq/p/14259964.html 本文实验配置文件 Docker拉取MyCAT镜像 如果没启动 ...
- Mysql双主双从高可用集群的搭建且与MyCat进行整合
1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...
- MySQL双主双从配置
双主双从结构图 Master1配置 server-id=1 #开启binlog日志 log-bin=mysql-bin #忽略的库 binlog-ignore-db=mysql #复制的库 binlo ...
- Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)
1. 主从复制解释 将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...
- Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)
之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...
- RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...
随机推荐
- mysql连接类与ORM的封装
ORM: - ORM什么是? 类名 ---> 数据库表 对象 ---> 记录 对象.属性 ---> 字段 - ORM的优缺点: 优点: 可跨平台,可以通过对象.属性取值,对象.方法, ...
- POJ1185炮兵阵地(DP状态压缩)
问题描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P&quo ...
- LOJ-6282-数列分块入门6
链接: https://loj.ac/problem/6282 题意: 给出一个长为 的数列,以及 个操作,操作涉及单点插入,单点询问,数据随机生成. 思路: vector 维护每个区间, 当某个区间 ...
- python--Excel模块xlwings
安装:pip install xlwings 基本操作: xlwings的特色: xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 可以和matplotlib以及p ...
- 对abel 转译 class 过程的研究----------------------引用
作为当下最流行的 JavaScript 编译器,Babel 替我们转译 ECMAScript 语法,而我们不用再担心如何进行向后兼容. 零.前言 虽然在 JavaScript 中对象无处不在,但这门语 ...
- ueditor+实现word图片自动上传
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- Postman(二)、调试模式
postman提供了一个调试模式,很方便我们写脚本以及断言 在脚本中用console.log()打印,到控制台查看 比如写入如下脚本: 点击Send后,在控制台可以看到如下信息
- postfix -- 发件调试
按照教程(https://www.cnblogs.com/huandada/p/10554603.html)搭建好postfix之后,由于收件的邮件运营商的限制,部分邮件不能正常发送,需要更多其他配置 ...
- textarea 自动高度
textarea 自动撑开高度 var textAreaArr = document.querySelectorAll('.textarea'); for (var i = 0; i < tex ...
- 将Bean转换为Json形式的一个工具类
这边遇到一个问题: 1.做一个bean类,实现一个函数,能够把bean生成json字符串.按字段作为key,字段值作为value的方式生成,并且按key的ascii码的升序生成. 2.提示: ...