演练包括被动切换和主动切换两部分。被动切换是主库宕机,主动切换是人工手动触发。
 
演练步骤大致如下:
 
    1 先停掉主库,模拟主库宕机
    2 mha将vip切到备库,备库变成主库,应用可以正常读写数据库
    3 重新启动宕机的原主库
    4 在原主库上建立同步关系(根据宕机时,日志记录的binlog的文件名和偏移量,恢复从这里开始)
    5 mha手动切换主库,还原到最初状态,应用可以正常读写数据库
    6 演练结束
 
 
演练过程问题总结:
 
1 mha每次自动切换之后都会结束自身进程,并在日志目录如/app/mha/xxx/下生成成功或失败标记(sys.failover.complete/error),下一次要启动mha之前要把这些标记文件删除,否则mha无法正常启动,因为有了这些标记文件,mha认为已经切换结束
 
2 数据库主机切换严谨做法是这个时候要把master设置为只读,然后设置MASTER_LOG_FILE和MASTER_LOG_POS,最后启动复制
 
3 mha手动切换要指定端口,否则只用ip会被mha认为没有存活
 
4 数据库主从库要配置/etc/sudoers
Default requiretty 要注释掉(解决"抱歉,您必须拥有一个终端来执行 sudo"的警告)
 
5  Error happened on monitoring servers
 
这个问题是没找到mysql映射,添加软连接即可
 
 
常用的MHA指令:
 
1 检查mha的ssh免密登录状态

masterha_check_ssh --conf=/etc/mha/sys/sys.cnf

2 检查mha的运行状态

masterha_check_status --conf=/etc/mha/sys/sys.cnf

3 检查主备库的复制情况

masterha_check_repl --conf=/etc/mha/sys/sys.cnf

4 停止mha

masterha_stop --conf=/etc/mha/sys/sys.cnf

5 启动mha

nohup masterha_manager --conf=/etc/mha/sys/sys.cnf > sys.log 2>&1 &

6 mha手动切换主库

masterha_master_switch --conf=/etc/mha/sys/sys.cnf --master_state=alive --new_master_host=10.138.16.133 --new_master_port=3104 --orig_master_is_new_slave

7 mha重新绑定数据库实例

sudo /etc/mha/sys/master_ip_failover --command=status --ssh_user=xxxadmin --orig_master_host=10.138.16.133 --orig_master_ip=10.138.16.133 --orig_master_port=3104

MySQL主备库切换(MHA)演练与总结的更多相关文章

  1. 物理DG主备库切换时遇到ORA-16139: media recovery required错误

    在物理DG主备库切换时遇到ORA-16139: media recovery required错误 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRI ...

  2. 云计算之路-阿里云上:RDS数据库连接数过万引发故障,主备库切换后恢复正常

    非常抱歉!今天 12:03-12:52 ,由于数据库连接数异常突增超过1万,达到了阿里云RDS的最大连接数限制,影响了全站的正常访问.由此给您带来麻烦,请您谅解. 在发现数据库连接数突增的问题后,我们 ...

  3. [terry笔记]11gR2_dataguard_主备库切换

    主备库切换  Switchover  一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GU ...

  4. Spring Boot中自定义注解+AOP实现主备库切换

    摘要: 本篇文章的场景是做调度中心和监控中心时的需求,后端使用TDDL实现分表分库,需求:实现关键业务的查询监控,当用Mybatis查询数据时需要从主库切换到备库或者直接连到备库上查询,从而减小主库的 ...

  5. DG之主库、备库切换(物理备库)

    DG之主库.备库切换 一.开库与关库顺序 开库顺序 先启备库,再启主库(启动监听.打开告警日志) 关库顺序 先关主库,再关备库 二.主备库切换 1.操作过程一览 步骤1:启动备库.监听.告警: 步骤2 ...

  6. mysql主备切换canal出现的问题解析

    通过配置VIP,在进行主备切换时,出现的报错信息: 1.当主备节点当前binlog文件名称相同时,原主节点的position小于主备切换后的position,出现如下报错: 2020-07-02 15 ...

  7. mysql主备切换[高可用]

    到这一步的时候, 是主备部署已经处理好, 请关注:mysql主备部署[高可用] 这次使用的是keepalived-1.2.22.tar.gz版, 官网地址:keeplived官网 笼统知识请自行查询百 ...

  8. KingbaseES R3 集群删除test库导致主备无法切换问题

    案例说明: 在KingbaseES R3集群中,kingbasecluster进程会通过test库访问,连接后台数据库服务测试:如果删除test数据库,导致后台数据库服务访问失败,在集群主备切换时,无 ...

  9. LVS+MYCAT+读写分离+MYSQL主备同步部署手册

    LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1  ...

随机推荐

  1. MyEclipse------快速写入内容到指定目录下的文件(字节输出流)

    other.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  2. Win7下JDK环境变量的设置

    JDK并不像Microsoft阵营vs那样智能,安装好后所有的东西都给你配置好了,我们还没需要手动配置很多东西 首先说为什么要配置JDK的环境变量在任何路径下识别java命令和java类 配置分为2个 ...

  3. Linux里如何查找文件内容 (转)

    Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...

  4. ASP.NET MVC 站点设置.html 为起始页

    1.  删除 controller="XX" 2. 确保你的工程根目录下的*.htm或*.html文件名在IIS默认文档中存在 搞定

  5. Mongodb For C# "Query" 对象常用的方法

    Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.In("name", & ...

  6. C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

    1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局 ...

  7. 网站程序版本号信息也可能造成bd快照严重滞后

    在a5上看到一篇“破解阿里云论坛的快照时间迷局 或涉足所有phpwind论坛”的文章,里面说到pw的一个版本信息导致了快照滞后的问题,这再次验证了之前那篇文章“时间戳造成快照滞后”的准确性. 如下图所 ...

  8. (7)基本工作流(使用AndroidStudio编辑Cocos项目)

    接下来详细介绍一下如何使用Android Studio打开以及编辑cocos2d-x 3.10项目: 一.新建项目:   新建源代码项目,预编译库项目不支持使用Android Stduio打开,见图1 ...

  9. java的一段对象数据类型映射的代码

    try { List<GateMetaPO> listGateInfoPO = majorGateReaderService.queryForAggregateBy( chapter); ...

  10. [Effective JavaScript 笔记]第40条:避免继承标准类

    ECMAScript标准库里配备了许多重要的类,如Array,function,以及Date等.扩展这些类生成子类可以方便完成很多工作,但它们的定义具有很多特殊的行为,所以很难写出行为正确的类. Ar ...