MySQL高可用主从复制新增slave
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html
作者:木二
目录
- 一 基础环境
- 二 新增slave2方案
- 2.1 方案1:-复制主库
- 2.2 方案2:复制从库
- 2.3 方案对比
- 二 新增slave2
- 2.1 部署主从
- 2.2 slave-02安装MySQL
- 2.2 初始化MySQL
- 三 方案1形式
- 3.1 锁定主库
- 3.2 备份主库
- 3.3 解锁主库
- 3.4 传递备份文件至slave02
- 3.5 主库继续新建数据库
- 3.6 备库slave02开启主从复制
- 3.7 备库slave02恢复mysqltest
- 3.8 备库slave02开启主从复制
- 3.9 验证数据
- 四 方案2形式
- 4.1 停止slave01主从复制
- 4.2 备份slave01数据库
- 4.3 传递备份文件至slave02
- 4.4 主库继续新建数据库
- 4.5 备库slave02开启主从复制
- 4.6 备库slave02恢复mysqltest
- 4.7 备库slave02开启主从复制
- 4.9 验证数据
一 基础环境
|
主机名
|
系统版本
|
MySQL版本
|
主机IP
|
|
master
|
CentOS 6.8
|
MySQL 5.6
|
172.24.8.10
|
|
slave01
|
CentOS 6.8
|
MySQL 5.6
|
172.24.8.11
|
|
slave02
|
CentOS 6.8
|
MySQL 5.6
|
172.24.8.20
|
二 新增slave2方案
2.1 方案1:-复制主库
- 将内存中的数据同步到表中;
- 锁定表,不让出现新数据;
- 备份;
- 解锁;
- 将备份传送到slave02,在slave02上同步数据;
- slave2上设置相应的master_log_file和master-log_pos。
2.2 方案2:复制从库
- 停止从库slave01:mysql> stop slave;
- 看当前从库的状态,mysql> show slave status;记下 Relay_Master_Log_file 和 Exec_Master_Log_Pos;
- 备份从库数据
- 将备份传送到slave02,在slave2上同步数据;
- slave02上设置相应的master_log_file和master-log_pos。
2.3 方案对比
二 新增slave2
2.1 部署主从
2.2 slave-02安装MySQL

1 [root@Slave02 ~]# yum list installed | grep mysql #查看是否存在其他MySQL组件
2 [root@Slave02 ~]# yum -y remove mysql-libs.x86_64 #为避免冲突引发报错,卸载已存在的组件
3 [root@Slave02 ~]# wget http://mirrors.ustc.edu.cn/mysql-repo/mysql-community-release-el6-5.noarch.rpm
4 [root@Slave02 ~]# rpm -ivh mysql-community-release-el6-5.noarch.rpm
5 [root@Slave02 ~]# yum install mysql-community-server -y
6 [root@Slave02 ~]# chkconfig --list | grep mysqld #查看MySQL是否加入启动项
7 [root@Slave02 ~]# chkconfig mysqld on

2.2 初始化MySQL
1 [root@Master ~]# service mysqld start
2 [root@Master ~]# mysql_secure_installation
3 [root@Master ~]# service iptables stop
4 [root@Master ~]# chkconfig iptables off
三 方案1形式
3.1 锁定主库
1 [root@Master ~]# mysql -uroot -px120952576
2 mysql> flush tables with read lock; #锁定主库的表
3 mysql> show master status\G

3.2 备份主库
1 [root@Master ~]# mysqldump -R -u root -p mysqltest >/tmp/mysqltest.sql
2 Enter password:
3.3 解锁主库
1 [root@Master ~]# mysql -uroot -px120952576
2 mysql> unlock tables;
3.4 传递备份文件至slave02
1 [root@Master ~]# scp /tmp/mysqltest.sql root@172.24.8.20:/tmp
3.5 主库继续新建数据库

1 [root@Master ~]# mysql -uroot -p
2 Enter password:
3 mysql> create database mysqltest02;
4 mysql> use mysqltest02;
5 mysql> create table user02(id int(5),name char(10));
6 mysql> insert into user02 values (00002,'lisi');
7 mysql> grant replication slave on *.* to 'repl_user'@'172.24.8.%' identified by 'x12345678';

3.6 备库slave02开启主从复制

1 [root@Slave02 ~]# vi /etc/my.cnf
2 [mysqld]
3 server-id=3
4 log-bin=mysql-bin
5 relay_log=mysql-relay-bin
6 log_slave_updates=1
7 read_only=1
8 [root@Slave02 ~]# service mysqld restart

3.7 备库slave02恢复mysqltest

1 [root@Slave02 ~]# mysql -uroot -px120952576
2 mysql> create database mysqltest;
3 mysql> use mysqltest;
4 mysql> source /tmp/mysqltest.sql;
5 mysql> select * from mysqltest.user; #查看验证


3.8 备库slave02开启主从复制

1 [root@Slave02 ~]# mysql -uroot -px120952576
2 mysql> change master to master_host='172.24.8.10',
3 master_user='repl_user',
4 master_password='x12345678',
5 master_log_file='mysql-bin.000003',
6 master_log_pos=120;
7 mysql> start slave;


3.9 验证数据
1 [root@Slave ~]# mysql -uroot -px120952576
2 [root@Slave02 ~]# mysql -uroot -px120952576
3 mysql> select * from mysqltest02.user02;
4 #两台slave上均验证master第二次创建的测试库是否正常复制过来。

四 方案2形式
4.1 停止slave01主从复制
1 [root@Slave ~]# mysql -uroot -px120952576
2 mysql> stop slave;
3 mysql> show slave status\G
4.2 备份slave01数据库
1 [root@Slave01 ~]# mysqldump -R -u root -p mysqltest >/tmp/mysqltest.sql
2 Enter password:
4.3 传递备份文件至slave02
1 [root@Slave01 ~]# scp /tmp/mysqltest.sql root@172.24.8.20:/tmp
4.4 主库继续新建数据库

1 [root@Master ~]# mysql -uroot -p
2 Enter password:
3 mysql> create database mysqltest02;
4 mysql> use mysqltest02;
5 mysql> create table user02(id int(5),name char(10));
6 mysql> insert into user02 values (00002,'lisi');
7 mysql> grant replication slave on *.* to 'repl_user'@'172.24.8.%' identified by 'x12345678';

4.5 备库slave02开启主从复制
4.6 备库slave02恢复mysqltest
4.7 备库slave02开启主从复制

1 [root@Slave02 ~]# mysql -uroot -px120952576
2 mysql> change master to master_host='172.24.8.10',
3 master_user='repl_user',
4 master_password='x12345678',
5 master_log_file='mysql-bin.000003',
6 master_log_pos=932;
7 mysql> start slave;

4.9 验证数据
MySQL高可用主从复制新增slave的更多相关文章
- 003.MySQL高可用主从复制新增slave
一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 17 ...
- 002.MySQL高可用主从复制部署
一 基础环境 主机名 系统版本 MySQL版本 主机IP master CentOS 6.8 MySQL 5.6 172.24.8.10 slave01 CentOS 6.8 MySQL 5.6 17 ...
- 001.MySQL高可用主从复制简介
一 简介 1.1 概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布在多个系统之上,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves ...
- MySQL高可用主从复制部署
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 基础环境 二 实际部署 2.1 安装MySQL 2.2 初始化MySQL 2. ...
- MySQL高可用主从复制简介
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 简介 1.1 概述 二 技术原理 2.1 支持的复制类型 2.2 技术特点 2 ...
- MySQL高可用方案MHA的部署和原理
MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一 ...
- 33.MySQL高可用架构
33.高可用架构33.1 MMM架构MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序(Perl).主要用来 ...
- MySQL高可用架构之MHA
简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是 ...
- [转载] MySQL高可用方案选型参考
原文: http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml?hmsr=toutiao.io&utm_medium=toutiao. ...
随机推荐
- 自动化测试(1)selenium+python+chrome 连接测试
环境准备: python版本:3.8.4 开发工具:pycharm 使用chrome和对应的webdriver http://npm.taobao.org/mirrors/chromedriver/ ...
- 深入刨析tomcat 之---第4篇 tomcat4.0连接池 实现原理
writedby 张艳涛
- 关于maven打包与jdk版本的一些关系
最近让不同JAVA版本的容器maven打包折腾的不行,终于理出了一点头绪.在这里记录下备忘. 1. Maven与jdk版本的关系 先明确一个概念,关高版本JDK运行maven,是可以打出低版本的JAV ...
- 大数据学习(06)——Ozone介绍
前面几篇文章把Hadoop常用的模块都学习了,剩下一个新模块Ozone,截止到今天最新版本是0.5.0Beta,还没出正式版.好在官方网站有文档,还是中文版的,但是中文版资料没有翻译完整,我试着把它都 ...
- 从小白角度探索Android事件分发机制
今早来上班时看到郭神这边文章超赞,剧情很好引人入胜,特此备份! https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650244386 ...
- 使用ffmpeg给视频添加跑马灯效果(滚动字幕)
直接上命令 从左往右滚 ffmpeg -i input.mp4 -vf "drawtext=text=string1 string2 string3 string4 string5 stri ...
- SpringBoot开发六-发送邮件
需求介绍-发送邮件 首先要进行邮箱设置,要启用客户端SMTP服务. 而且SpringBoot也给了JavaMailSender发送邮件. 代码实现 首先你需要设置好邮箱,步骤百度一大堆,记住要配置一个 ...
- Java中的形式参数和实际参数
一.概念 1.形式参数: 就是在定义函数或过程的时候命名的参数. 通俗讲就是一个记号. 2.实际参数: 就是在执行时,调用函数或过程时,传递给函数或过程的参数. 通俗讲就是实际值. 3.参数: 就是一 ...
- Java之Cookie与Session
Cookie.Session Cookie:服务端生成Cookie发给客户端用于认证 Session:服务端进行进行登记,每人有不同的Session session与cookie的区别 Cookie: ...
- noip20
T1 首先,这个插球,就是森林中连点,考虑dp,我们设 \(dp_{i,j}\) 表示有i个点的森林,有j个点在第一颗树中的概率,转移时考虑第i个点是否在第一颗子树里,转移方程: \[dp_{i,j} ...