mysql-mha

主从搭建

需要进行主从搭建,请参考主从搭建

数据备份

  • 主库备份
# 数据导出
mysqldump  --master-data=2 --single-transaction -R --triggers -A -p > all.sql
# 复制到从库
scp all.sql root@192.168.3.103:/root
  • 从库同步
# 数据导入
mysql -p < all.sql
  • 主从同步
# 停止
stop slave
# 指定
change 
# 开启
start slave;

基本连通

  • 秘钥生成
# 生成秘钥,一直enter即可
ssh-keygen -t rsa
  • 秘钥透传
# 将密钥传送到目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@IP

当前机器配置以后,就可以免密登录指定机器。

对于mhamaster节点,需要能够登录到其他的节点机器,需要全部进行配置。

环境安装

  • yum源更换
yum install -y epel-release

顺便注释/etc/yum.repos.d/epel.repo下的mirrorlist或者metalink,将baseurl的注释放开。

如果不采用epelyum源,也可以如去http://rpm.pbone.net/慢慢搜索。

但是版本兼容问题和依赖引申更多问题,我就是死在这的。

  • 资源下载
roleresource
masterhttps://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
slavehttps://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm
  • 安装依赖
yum install yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y
  • 安装管理包
 # master
 rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
 # slave
 rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
  • 脚本安装

这里给一个安装脚本,方便快捷

#!/bin/bash

yum install wget -y

wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm

yum install epel-release -y

sed -i "s/#baseurl=/baseurl=/g" /etc/yum.repos.d/epel.repo
sed -i "s/metalink=/#metalink=/g" /etc/yum.repos.d/epel.repo

yum install yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

rm -rf mha4mysql-*          

可以修改一下以符合自己的需求

mha配置

  • 默认配置
# /etc/masterha_default.cnf
[server default]
#用户名
user=root
#密码
password=godme
#ssh登录账号
ssh_user=root
#主从复制账号
repl_user=root
#主从复制密码
repl_password=godme
#ping次数
ping_interval=1
#二次检查的主机
secondary_check_script=masterha_secondary_check -s 192.168.3.101 -s 192.168.3.102 -s 192.168.3.103
  • 管理配置
#  /etc/mha/app1.cnf
[server default]
#MHA监控实例根目录
manager_workdir=/var/log/mha/app1
#MHA监控实例日志文件
manager_log=/var/log/mha/app1/manager.log
#[serverx] 服务器编号
#hostname 主机名
#candidate_master 可以做主库
#master_binlog_dir binlog日志文件目录
[server1]
hostname=192.168.3.101
candidate_master=1
master_binlog_dir="/var/lib/mysq"
[server2]
hostname=192.168.3.102
candidate_master=1
master_binlog_dir="/var/lib/mysql"
[server3]
hostname=192.168.3.103
candidate_master=1
master_binlog_dir="/var/lib/mysql"                                 

mha管理

  • 环境监测
# 连通性测试
masterha_check_ssh --conf=/etc/mha/app1.cnf
# 指定配置文件
masterha_check_repl --conf=/etc/mha/app1.cnf
  • 管理启动
nohup masterha_manager --conf=/etc/mha/app1.cnf \
--remove_dead_master_conf \
--ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
  • 状态查看
masterha_check_status --conf=/etc/mha/app1.cnf
  • 日志记录
tail -f /var/log/mha/app1/manager.log

故障模拟

  • 主库停机
systemctl stop mysqld
  • 主库重启
systemctl start mysqld
  • 重新挂载
change master to
master_host='192.168.3.101',
master_port=3306,master_user='root',
master_password='godme',
master_log_file='mysql-bin',
master_log_pos=1154;
start slave;
  • 配置添加

如果启动时添加了--remove_dead_master_conf配置,当master宕机的时候,会自动从配置当中删除dead_master的配置信息,需要重新添加。

  • 切换主库
masterha_master_switch --conf=/etc/mha/app1.cnf \
--master_state=alive \
--new_master_host=192.168.3.101 \
--new_master_port=3306 \
--orig_master_is_new_slave \
--running_updates_limit=10000

疑问

  • 数据丢失

如果为集群添加新节点,需要先对当前集群的master进行数据同步操作,否则会丢失添加前的更新。

如果old_master重新挂载,也需要进行该操作,否则,在old_master宕机恢复期间新增的数据会丢失。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值