zhy2_rehat6_mysql04 - MHA_故障演示与切换.txt
export LANG=en_US
环境:------------------------------------------
机器 VPN ip linux 账号/密码
manager1 172.28.20.130 10.1.1.10
mysql1-z(主) 172.28.20.132 10.1.1.12
mysql1-c(从) 172.28.20.134 10.1.1.14
mysql1-b(备) 172.28.20.136 10.1.1.16
================================================
>>>>1. 在 10.1.1.12 上, 杀掉主库mysql进程,模拟主库发生故障,进行自动failover操作。
[root@10.1.1.12 ~]# pkill -9 mysqld
查看MHA切换日志,了解整个切换过程,在10.1.1.10上查看日志:
[root@192.168.0.20 ~]# cat /var/log/masterha/app1/manager.log
>>>>2.在 10.1.1.14 上:从信息显示为空了。
[root@DB-mysql1-c ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:50:56:b7:2e:ce brd ff:ff:ff:ff:ff:ff
inet 10.1.1.14/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.20/24 brd 10.1.1.255 scope global secondary eth0:1
mysql> show slave status\G
Empty set (0.00 sec)
在 10.1.1.16 上:从信息显示为
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.1.1.14
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql_bin.000003
Read_Master_Log_Pos: 3549
Relay_Log_File: DB-mysql1-b-relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql_bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
===============================================================================
>>>>3.cd /var/log/masterha/app1 目录下清除app1.failover.complete 这个文件
[root@DB-manger1 app1]# cd /var/log/masterha/app1
/var/log/masterha/app1
[root@DB-manger1 app1]# rm -rf app1.failover.complete
>>>>4.备主节点需要配置
mysql> show variables like '%read_only%';
mysql>set global read_only=on;
[root@DB-manger1 app1]# vi /etc/masterha/app1.cnf
会发现少一个,添加主1:
[server1]
hostname=10.1.1.12
candidate_master=1
port=3306
在 10.1.1.12 上:---------------
[root@DB-mysql1-z ~]# service mysqld start
[root@DB-mysql1-z ~]# service mysqld status
netstat -nutlp | grep 3306
ps -ef |grep mysql
mysql -uroot -proot
两台slave服务器设置read_only(从库对外提供读服务,只所以没有写进配置文件,是因为随时slave会提升为master)
在 10.1.1.14 上:---------------
mysql> show master status\G
*************************** 1. row ***************************
File: mysql_bin.000003
Position: 3549
Binlog_Do_DB:
Binlog_Ignore_DB: information_schema,performance_schema,mysql,mysql
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> show variables like '%relay_log%';
mysql> set global read_only=1
mysql> show variables like '%read_only%';
在 10.1.1.12 上:---------------
四.修复宕机的Master
通常情况下自动切换以后,原master可能已经废弃掉,待原master主机修复后,如果数据完整的情况下,可能想把原来master重新作为新主库的slave,这时我们可以借助当时自动切换时刻的MHA日志来完成对原master的修复。下面是提取相关日志的命令:
然后再执行主从:
CHANGE MASTER TO
MASTER_HOST='10.1.1.12',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql_bin.000005',
MASTER_LOG_POS=1871;
CHANGE MASTER TO
MASTER_HOST='10.1.1.14',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql_bin.000004',
MASTER_LOG_POS=154,
MASTER_USER='repl',
MASTER_PASSWORD='123456';
开启slave(10.1.1.12)上的IO线程,追赶落后于master的binlog。
mysql> start salve; -----------期间丢失的数据就回来了。
mysql> show variables like '%relay_log%';
relay_log_purge | ON
此时10.1.1.12 ,设置定期清理relay脚本(slave服务器),请自行查看搭建手册txt
在 10.1.1.16 上:---------------
mysql> show variables like '%relay_log%';
mysql> set global relay_log_purge=1;
mysql> show variables like '%read_only%';
========================================================
>>>>5.检查SSH配置
检查MHA Manger到所有MHA Node的SSH连接状态:
[root@DB-manger1 app1]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
必须,看见各个节点ssh验证都是ok的~!!!
通过masterha_check_repl脚本查看整个集群的状态
# 开启slave(10.1.1.12)上的IO线程,追赶落后于master的binlog。
# mysql> start slave io_thread;
# mysql> reset slave all; --------------清楚主库的(从配置)
[root@DB-manger1 app1]# masterha_check_repl --conf=/etc/masterha/app1.cnf
通过master_check_status脚本查看Manager的状态:
[root@DB-manger1 app1]# masterha_check_status --conf=/etc/masterha/app1.cnf
开启MHA Manager监控(注意:是一行命令,全部复制,注意不要回车)!!
[root@DB-manger1 app1]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
关闭MHA Manage监控
[root@DB-manger1 app1]# masterha_stop --conf=/etc/masterha/app1.cnf
查看日志:
[root@DB-manger1 app1]# tail -f /var/log/messages
[root@DB-manger1 app1]# tail -n20 /var/log/masterha/app1/manager.log
查看VIP 切换脚本:
vi /usr/local/bin/master_ip_failover
-------------------------
测试:
在 10.1.1.14 上:---------------
mysql> create database bai2;
Query OK, 1 row affected (0.01 sec)
mysql> use bai2;
Database changed
mysql> create table t2(a int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t2 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> insert into t2 values(12);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t2 values(123);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t2;
+------+
| a |
+------+
| 1 |
| 12 |
| 123 |
+------+
3 rows in set (0.00 sec)
在 10.1.1.16 上:---------------
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bai2 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
mysql> use bai2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from t2;
+------+
| a |
+------+
| 1 |
| 12 |
| 123 |
+------+
3 rows in set (0.00 sec)
mysql>
zhy2_rehat6_mysql04 - MHA_故障演示与切换.txt的更多相关文章
- ProxySQL+MGR实现读写分离和主节点故障无感知切换 - 完整操作记录
前面的文章介绍了ProxySQL用法,这里说下ProxySQL中间件针对Mysql组复制模式实现读写分离以及主节点故障时能够自动切换到新的主节点,而应用对此过程无感知的功能.Mysql组复制(MGR) ...
- keepalived weight正负值问题(实现主服务器nginx故障后迅速切换到备服务器)
有两台负载均衡,lb01,lb02. lb02, priority值为100 编辑keepalived配置文件 vim /etc/keepalived/keepalived.conf ! Con ...
- 执行SQL查询导致磁盘耗尽故障演示
a fellow in IMG wechat group 2 met an error about running out of disk space when using MySQL ...
- redis主从切换的集群管理
集群配置最少需要三台机器,那么我就三台虚拟机,三台虚拟机分别安装同样的redis的环境ip分别:192.168.9.17 (redis sentinel 集群监控)192.168.9.18 (redi ...
- Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- redis 主从备份自动切换+java代码实现类
转载:http://blog.csdn.net/qq_23430789/article/details/52185706 目录(?)[-] redis-0sentinel实例之间的通讯端口 maste ...
- 云计算之路-阿里云上:针对 docker swarm 故障的部署调整以及应急措施
针对这周 docker swarm 集群的频繁故障(详见故障一 .故障二.故障三),我们今天对 docker swarm 集群的部署进行了如下调整. 将 docker engine 由 “17.12 ...
- c# txt文件的读取和写入
我们在工程实践中经常要处理传感器采集的数据,有时候要把这些数据记录下来,有时候也需要把记录下来的数据读取到项目中.接下来我们用C#演示如何对txt文件进行读写操作.我们要用到StreamReader ...
- sql server 高可用故障转移(5)
测试故障转移群集报告 在SQL-CL01(hsr 50)进行故障转移群集的创建,如图下图所示,在SQL-CL01和SQL-CL02的“服务器管理”中右键点击“功能”,选择“添加功能 勾选故障转移群集 ...
随机推荐
- cf448D Multiplication Table 二分
题目:http://codeforces.com/problemset/problem/448/D 题意:给出n,m,k,即在一个n*m的二维数组中找第k大的数,第i行第j列的数的值为i*j. 思路: ...
- 用C语言开发的19个经典项目,你会第几个?
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:实验楼 C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多 ...
- 基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头
基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头 CC1605双目相机评估板可以配合使用柴草电子绝大多数摄像头应用 如:OV5640.OV5642.MT9P03 ...
- 超简单!asp.net core前后端分离项目使用gitlab-ci持续集成到IIS
现在好多使用gitlab-ci的持续集成的教程,大部分都是发布到linux系统上的,但是目前还是有很大一部分企业使用的都是windows系统使用IIS在部署.NET应用程序.这里写一下如何使用gitl ...
- docker进阶之路-基础篇 | 一:环境搭建
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一.准备工作 查看内核 Docker 要求 CentOS ...
- UWP 使用SSL证书,保证数据安全
事情是这样的,我们后端的小伙伴升级了用户会员系统,使用了全新的GraphQL登录机制,并且采用SSL加密的方式来实现阻止陌生客户端请求的案例. GraphQL在UWP端的实现,以后有时间会单独写一篇文 ...
- CCF-CSP题解 201803-3 URL映射
题目要求写一个简易的URL规则和URL地址匹配的程序. 说说我的思路. 将URL规则和地址都截成片段用结构体\(<type, str[]>\)存储.对于URL规则,\(type\)为0代表 ...
- 《Java基础知识》Java异常处理详解
1. Java 中的异常 前言:Java 中的异常处理是处理程序运行错误时的强大机制之一,它可以保证应用程序的正常流程. 首先我们将了解java异常.异常的类型以及受查和非受查异常之间的区别. 1.1 ...
- MySql全文检索使用详解
实际项目中经常会有一个字段存储多个值用逗号分隔的场景,当分开查询的时候,使用模糊查询会非常影响效率.mysql提供了全文检索函数可以有效解决这一问题: 1.数据结构 ID CODE MSG 1 111 ...
- js获取当前时间的年月日时分秒以及时间的格式化
1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear( ...