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的“服务器管理”中右键点击“功能”,选择“添加功能 勾选故障转移群集 ...
随机推荐
- ARTS-S pytorch用c++实现推理
训练的代码,以cifar为例 # -*- coding: utf-8 -*- import torch import torchvision import torchvision.transforms ...
- 【VMware】The VMX process exited permaturely
问题现象: 开启虚拟机时出现如图问题:虚拟机退出过早 解决方法: 以管理员身份运行cmd,输入netsh winsock reset ,回车然后重启
- 业级PPTP服务器搭建企
搭建企业级PPTP服务器 分类: Linux服务篇 undefined 本文收录在企业项目实战系列 一.VPN 介绍 1.介绍 虚拟私人网络(英语:Virtual Private Network, ...
- 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1.什么是 Redis?. 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcache 与 Re ...
- 手把手教你DIY尼康ML-L3红外遥控器
项目介绍 ML-L3是用于尼康部分型号相机的无线红外遥控器,可以通过红外方式来控制快门的释放,支持B门拍摄.官方售价100RMB左右,山寨版售价10RMB左右.虽然也能实现基本的遥控功能,但是功能还是 ...
- 1.Python 简单输入输出
1 读取:input() 1.1 简单打印内容 In [1]: input('你好,请输入你的名字:') 你好,请输入你的名字:小明 1.2 保存输入内容 In [2]: CN_Name = inpu ...
- vue.config.js的常用配置
const path = require('path') const glob = require('glob') const resolve = (dir) => path.join(__di ...
- 智能家居手势识别,只需百度AI即可搞定
上次我尝试做了一个给眼镜加特效,针对的是静态图像,具体文章参考 https://ai.baidu.com/forum/topic/show/942890 . 这次我尝试在视频中加眼镜特效,并且加上手势 ...
- windows10远程桌面 删除IP记录
注册表位置: HKEY_CURRENT_USER/ Software/ Microsoft/ Terminal Server client/ servers/ 删除不需要的IP地址即可.
- VS2019 开发Django(六)------Admin中图片上传
导航:VS2019开发Django系列 该篇继续完善在Django的管理界面上传图片,因为LazyOrders小程序中菜单需要展示图片,而不是一个文本路径,所以我们还需要继续改造一下. 1)安装pil ...