注意事项:

从库提升为主库read_only要设置为OFF
原主库改为从库后,read_only要设置ON
read_only=ON并不能对root生效,确保root不会进行数据写入
从主库进行 flush tables with read lock 开始,到主从切换完毕,数据库不能对外提供写服务;一直对外提供读服务

建立主从
***************************************************
grant replication slave on *.* to 'repl_user'@'192.168.%' identified by 'rootroot';
show master status\G;

CHANGE MASTER TO
MASTER_HOST='192.168.56.103',
MASTER_USER='repl_user',
MASTER_PASSWORD='rootroot',
MASTER_PORT=3302,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154,
MASTER_CONNECT_RETRY=10;

start slave;

主库加锁,锁定数据使之不再变化
***********************************

mysql -uautomng -p -h192.168.56.103 -P3302
use vodb;
call p_addtest(1000000); #使用过程插入数据以模拟业务数据,此处如果是使用root用户执行的,那么后面变为从库,仅仅使用read_only=OFF是无法中止该过程的

mysql -uroot -p -S /data/mysql/log/eee/mysql_eee.sock
flush logs;
flush tables with read lock;

确定从库与主库一致
**************************************
mysql> show full processlist;
+----+-------------+-----------+------+---------+------+---------------------------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------+------+---------+------+---------------------------------------------+-----------------------+
| 2 | root | localhost | NULL | Sleep | 6017 | | NULL |
| 3 | root | localhost | vodb | Query | 0 | starting | show full processlist |
| 42 | system user | | NULL | Connect | 172 | Waiting for master to send event | NULL |
| 43 | system user | | NULL | Connect | 0 | Waiting for dependent transaction to commit | NULL |
| 44 | system user | | NULL | Connect | 114 | Waiting for an event from Coordinator | NULL |
| 45 | system user | | NULL | Connect | 114 | System lock | NULL |
| 46 | system user | | NULL | Connect | 173 | Waiting for an event from Coordinator

从库要出现 Slave has read all relay log;
mysql> show full processlist;
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+-----------------------+
| 2 | root | localhost | NULL | Sleep | 6058 | | NULL |
| 3 | root | localhost | vodb | Query | 0 | starting | show full processlist |
| 42 | system user | | NULL | Connect | 213 | Waiting for master to send event | NULL |
| 43 | system user | | NULL | Connect | 1 | Slave has read all relay log; waiting for more updates | NULL |
| 44 | system user | | NULL | Connect | 79 | Waiting for an event from Coordinator

从库提升为主
*************************************************
reset master;
stop slave;
reset slave all;
grant replication slave on *.* to 'repl_user'@'192.168.56.%' identified by 'rootroot';
flush privileges;
set global read_only=OFF;
show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 613

记下master status后,数据库就可以对外提供写服务了

原主库变成新从库
*************************************************
#如果root用户有业务,则直接关库,是防止一些未执行完的过程、触发器、JOB继续修改库,直接关闭一次,完全中断所有事务,包括root用户正在执行的事务;如果root没有业务使用,则不必关心此问题
#mysql> shutdown;
#mysqld_safe --defaults-file=/etc/my_eee.cnf --user=mysql &

set global read_only=ON;
reset master;

CHANGE MASTER TO
MASTER_HOST='192.168.56.102',
MASTER_USER='repl_user',
MASTER_PASSWORD='rootroot',
MASTER_PORT=3302,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=613,
MASTER_CONNECT_RETRY=10;

start slave;

my17_Mysql 主从切换的更多相关文章

  1. Redis集群(九):Redis Sharding集群Redis节点主从切换后客户端自动重新连接

    上文介绍了Redis Sharding集群的使用,点击阅读 本文介绍当某个Redis节点的Master节点发生问题,发生主从切换时,Jedis怎样自动重连新的Master节点 ​一.步骤如下: 1.配 ...

  2. redis主从配置及主从切换

    环境描述: 主redis:192.168.10.1 6379从redis:192.168.10.2 6380 一.主从配置 1.将主从redis配置文件redis.conf中的aemonize no ...

  3. mysql主从切换

    mysql 主从切换 主停,从做主步骤如下: 1 确认从服务器已经完成所有同步操作:stop slave io_thread show processlist 直到看到状态都为:xxx has rea ...

  4. Sentinel-Redis高可用方案(二):主从切换

    Redis 2.8版开始正式提供名为Sentinel的主从切换方案,Sentinel用于管理多个Redis服务器实例,主要负责三个方面的任务:     1. 监控(Monitoring): Senti ...

  5. redis的主从复制,读写分离,主从切换

    当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能. redis提供了一个master,多个s ...

  6. redis主从配置及主从切换 转

    redis主从配置及主从切换 转自 http://blog.sina.com.cn/s/blog_67196ddc0101h8v0.html (2014-04-28 17:48:47) 转载▼   分 ...

  7. mysql主从备份、主从切换的例子

    指定binlog(因为时通过binlog实现数据同步的) 配置完后重启数据库服务,用show master status可以看到Master信息. StepB: 在SerB的my.cnf中指定 [ht ...

  8. redis - 主从复制与主从切换

    redis2.8之前本身是不支持分布式管理的,一般建议使用redis3.0及以后版本 redis主从切换的方法 keepalive  或者 使用sentinel线程管理 说明如何使用sentinel实 ...

  9. master_pos_wait函数与MySQL主从切换

    背景 主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患).一般设置为双M(M1.M2),假设当前状态为写M1,而M2只读,切换的大致流程如下: 1.  停止应用写M1,将M1设置为 ...

随机推荐

  1. PythonNote03_HTML标签

    <!DOCTYPE> <html> <head> <meta charset = "utf-8" /> <meta name= ...

  2. .NET回归 HTML----表单元素(1)和一些常用的标记

    表单就是-----用于搜集不同类型的用户输入. 表单元素指的是不同类型的 input 元素.复选框.单选按钮.提交按钮等等. 首先将表单元素分为三个类型.文本类,按钮类,选择类. 表单可以嵌套在表中, ...

  3. Zbar算法流程介绍

    博客转载自:https://blog.csdn.net/sunflower_boy/article/details/50783179 zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部 ...

  4. php学习笔记-逻辑运算符

    $a and $b 只有当$a和$b都是true才返回true,否则false. $a or $b 只要$a或者$b至少有一个是true则返回true.意思是或者$a是true,或者是$b是true, ...

  5. java过滤器 Fliter

    定义:过滤器是一个服务器端组件,他可以截取用户端请求信息与响应信息,并对信息进行过滤 例:当进入csdn要进行文章编辑时,检测用户是否登录,若未登录,跳转到登录界面. 过滤器操作方法: init() ...

  6. Luogu 4310 绝世好题

    BZOJ 4300 先把这堆东西丢到博客里,以后再复习. 首先考虑暴力的$dp$,设$f_i$表示以$i$结尾的满足条件的序列的最长长度,有: $f_i = max(f_j) + 1$    $j & ...

  7. Luogu 3008 [USACO11JAN]道路和飞机Roads and Planes

    BZOJ2200 听说加上slf优化的spfa的卡过,真的不想写这些东西. 考虑使用堆优化的dij算法. 先加上所有双向边,然后dfs一下搜出所有由双向边构成的联通块,然后加上所有的单向边,一边对所有 ...

  8. 树莓派研究笔记(9)-- 树莓派SPI连接TFT屏幕

    HDMI连接和树莓派专用连接的接口的屏幕都太贵了,为了节约成本,现在国内大多数还是TFT屏幕. 树莓派可以激活SPI接口,通过代码驱动TFT屏幕的显示.这样利用树莓派zero 打造小型的游戏平台可以大 ...

  9. Dubbo项目入门

    Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 它的特性如下 面向接口代理的高性能RPC调用 智能 ...

  10. CefSharp49.0.1 SetZoomLevel

    SetZoomLevel(double zoomLevel)   -8<= zoomLevel <=9 Each zoom level increases the zoom by 20%. ...