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的“服务器管理”中右键点击“功能”,选择“添加功能 勾选故障转移群集 ...
随机推荐
- 捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?
摸不了鱼了 2019 年 11 月 26 日,本来应该是无比平静的一天,开开会,改改bug,摸摸鱼之后等着下班.刷着新闻的间隙,手机的消息提示音响了起来,收到了一条邮件,平时收到邮件我都会选择稍后处理 ...
- 【ES5 ES6】使用学习
[ES5 ES6]使用学习 转载: ============================================================= 1.Promise 2.下划线转驼峰,驼 ...
- 【NodeJS】nvm
[NodeJS]nvm node多版本管理 NVM_HOME=C:\env\nvm NVM_SYMLINK=C:\env\nodejs 查看版本 nvm v 查看当前使用的node版本 nvm cur ...
- SSM非springboot配置swagger2
前提:maven,ssm,不是springboot项目 1.在maven中添加依赖 <!-- Swagger2 Begin --> <!--springfox的核心jar包--> ...
- gitbook 入门教程之网站域名备案 icp 插件
欢迎访问 gitbook-plugin-icp 官网
- java基础-数据类型之殇
一 前言 Java的数据类型分为2种,分别是基本数据类型和引用数据类型:java的数据类型是强数据类型,意味着每声明一个变量,其必定有与之对应的数据类型:面试常问的java8大基本数据类型其实是基本数 ...
- 《Java基础知识》一维,二维数组的申明和使用
为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理. -------- 数组也是一个变量,是存储一组相同类型的变量 声明一个变量就是在内存中划出一块合适的空间 声明一个数 ...
- 第二次作业-titanic数据集练习
一.读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗. titanic数据集包含11个特征,分别是: Survived:0代表死亡,1代表存活Pclass:乘客所持票类,有三种值(1, ...
- 在WPF中开启摄像头扫描二维码(Media+Zxing)
近两天项目中需要添加一个功能,是根据摄像头来读取二维码信息,然后根据读出来的信息来和数据库中进行对比显示数据. 选择技术Zxing.WPFMediaKit.基本的原理就是让WPFmediaKit来对摄 ...
- 【CV现状-1】磨染的初心——计算机视觉的现状:缘起
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...