【0】实验环境

操作系统:CentOS linux 7.5

数据库版本:5.7.24

数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制。

主库IP:192.168.1.201  端口:3306

从库IP:192.168.1.202  端口:3306

【1】主从切换

主从配置文件参数

(1)主库要把自 #slave replication 行下面的所有配置注释掉(其实主库也可以全部开启)

(2)从库可以把所有参数都开启

#replication_new
log_bin=/mysql/log//binlog/mysql-bin #开启binlog
log_bin_index=/mysql/log//mysql-bin.index
binlog_format=row
binlog_rows_query_log_events=on
max_binlog_size= bind-address=0.0.0.0
server_id= #注意,这里从库的server_id和主库一定不能一样
expire_logs_days= #超过7天的binlog清理
innodb_support_xa=
binlog_cache_size=1M
log_bin_trust_function_creators= #同步存储过程、函数、触发器
innodb_flush_log_at_trx_commit=
sync_binlog=
transaction-isolation=read-committed
#增加的GTID参数
gtid_mode=on
enforce_gtid_consistency=1 #on:当发现语句/事务不支持GTID时,返回错误信息
log-slave-updates=1
binlog_gtid_simple-recovery=1 #5.7.6以下默认为off,5.7.6以上默认为on
#slave replication  ----从这行起,下面的所有行,在主库注释掉
relay_log=/mysql/log//relaylog/mysql-relay.log
log-slave-updates=
#read_only=1 --主库要注释掉,从库最好放开
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers= master_info_repository=table #master_info 会记录到 mysql.slave_master_info
relay_log_info_repository=table #relay_log 会记录到,mysql.slave_relay_log_info
relay_log_recovery=
slave_skip_errors=ddl_exist_errors
slave_preserve_commit_order=

操作设置

【1.1】主从都需要开二进制日志,切换的时候,确认从库的数据时最新的
-- 主库:192.168.1.201
set global read_only=1; -- 主库设置全局只读模式。
flush logs;        -- 刷新日志(binlog)
show master status;   -- 查看binlog状态,记录日志文件名和位置点pos 【1.2】确认从库202应用完了所有的中继日志
-- 从库:192.168.1.202
show slave status\G -- 或者也可以show processlist;查看
-- or select master_pos_wait(file,post); -- 用主库的文件在备库上查询,差距为0即为同步
stop slave;
reset master;
reset slave; -- 删除从数据库的中继日志文件,并且启用新的中继日志文件以及 重置change master信息
        -- 不清理掉,下次重启服务还会开启从线程,把自己当从库做。
show master status; -- 记录binlog状态,记录日志文件名和位置点pos 【1.3】如果从库202上没有复制账户,需要创建 【1.4】主库201上,也需要清理相关的master和slave信息
reset master;
reset slave;
show master status; 【1.5】主从库的配置相关参数要改变启用
主库:201
cp /mysql/data/3306/my.cnf /mysql/data/3306/my.cnf.master
vi /mysql/data/3306/mysql.cnf 从库:202
cp /mysql/data/3306/my.cnf /mysql/data/3306/my.cnf.slave
vi /mysql/data/3306/mysql.cnf
service mysql restart

【1.6】new_slave 201 连接 new master 202
new从库:201
mysql -uroot -p123456 change master to
master_host='192.168.1.202',
master_port=3306,
master_user='rpl',
master_password='123456'
master_auto_position=1; start slave; 【1.7】数据测试
new 主库:202
create database test;
use test;
create table test1;
insert into test1 values(1);
commit; -- 然后new从库201核验

参考:

  Mysql复制的日常维护管理:https://www.cnblogs.com/gered/p/11388986.html

(5.9)mysql高可用系列——正常主从切换测试的更多相关文章

  1. (5.8)mysql高可用系列——MySQL中的GTID复制(实践篇)

    一.基于GTID的异步复制(一主一从)无数据/少数据搭建 二.基于GTID的无损半同步复制(一主一从)(mysql5.7)基于大数据量的初始化 正文: [0]概念 [0.5]GTID 复制(mysql ...

  2. (5.15)mysql高可用系列——MHA实践

    关键词:MHA,mysql mha [1]需求 采用mysql技术,实现MHA高可用主从环境,预计未来数据量几百G MHA概念参考:MYSQL高可用技术概述 [2]环境技术架构 [2.1]MHA简介 ...

  3. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

  4. MySQL高可用系列之MHA(二)

    一.參数说明 MHA提供了一系列配置參数.深入理解每一个參数的详细含义,对优化配置.合理使用MHA非常重要.非常多高可用性也都是通过合理配置一些參数而实现的. MHA包含例如以下配置參数,分别说明例如 ...

  5. MySQL高可用方案MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  6. Mysql高可用架构(主从同步)

    做高可用的优势 1.成本低 2.解决单点故障 3.不容易遇到性能瓶颈 一 .Mysql主从同步架构搭建案例 优点如下:·在业务繁忙阶段,在从服务器上可以执行查询工作(即我们常说的读写分离),降低主服务 ...

  7. mysql高可用研究(一) 主从+MHA架构 (转)

    最近在研究mysql的高可用架构,自己想总结下常用的高可用方案都有哪些.有哪些优缺点以及应用的场景?搞得是头昏脑涨,天昏地暗,看了诸多资料,每次都觉得公说公有理婆说婆有理.其实嘛,大家说的都有一定的道 ...

  8. mysql高可用研究(二) 主从+MHA+Atlas

    关于Atlas的详细介绍请访问:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md 为什么要使用Atlas?应用程序直连数据库不好吗? ...

  9. mysql高可用研究(一) 主从+MHA架构

    最近在研究mysql的高可用架构,自己想总结下常用的高可用方案都有哪些.有哪些优缺点以及应用的场景?搞得是头昏脑涨,天昏地暗,看了诸多资料,每次都觉得公说公有理婆说婆有理.其实嘛,大家说的都有一定的道 ...

随机推荐

  1. Codevs 1200 同余方程 2012年NOIP全国联赛提高组

    1200 同余方程 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 求关于 x 同余方程 a ...

  2. Reborn & Recover

    高考总算是结束了 而我们的旅程却还在继续 现在姑且是个ACMer(暂定) 而我已经将近一年没写代码了 接下来是全新的开始 全新的学校 全新的未来 总之从现在开始 试着努力看看吧!

  3. mysql8.0.11安装

    1.下载mysql-->下载 2.解压 3.添加my.ini配置文件 [mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\wnmp\mysql ...

  4. Java中的多线程技术全面详解

    本文主要从整体上介绍Java中的多线程技术,对于一些重要的基础概念会进行相对详细的介绍,若有叙述不清晰或是不正确的地方,希望大家指出,谢谢大家:) 为什么使用多线程 并发与并行 我们知道,在单核机器上 ...

  5. SpringBoot的文件上传&下载

    前言:不多BB直接上代码 文件上传 pom依赖添加commons-io <!-- 上传/下载jar https://mvnrepository.com/artifact/commons-io/c ...

  6. TCP层accept系统调用的实现分析

    inet_csk_accept函数实现了tcp协议accept操作,其主要完成的功能是,从已经完成三次握手的队列中取控制块,如果没有已经完成的连接,则需要根据阻塞标记来来区分对待,若非阻塞则直接返回, ...

  7. koa 基础(五)动态路由的传值

    1.动态路由的传值 app.js /** * 动态路由的传值 */ // 引入模块 const Koa = require('koa'); const router = require('koa-ro ...

  8. 哨兵模式java实例

    /** * 测试Redis哨兵模式 * @author liu */ public class TestSentinels { @SuppressWarnings("resource&quo ...

  9. c# httphelper (苏飞老师)

    /// <summary> /// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 重要提 ...

  10. Xman冬令营writeup

    做题一时爽,期末火葬场,一晚上水了三题,跪求期末不挂,老老实实去复习.祝各位表哥冬令营玩的开心. 中二的成长之路 很容易发现图片本身就是个压缩包,里面还有个图片,但是加密了所以需要我们求出压缩包的密码 ...