为什么建设银行的网站打不开,锦州做网站的个人,用c 可以做网站吗,徐州专业网站seo目录 MHA原理
MHA工具包
MHA实现mysql高可用实战 MHA原理 ①MHA利用 SELECT 1 As Value 指令判断master服务器的健康性,一旦master 宕机,MHA 从宕机崩溃的master保存二进制日志事件#xff08;binlog events#xff09;
②识别含有最新更新的slave
③应用差异的中继日志binlog events
②识别含有最新更新的slave
③应用差异的中继日志relay log到其他的slave
④应用从master保存的二进制日志事件binlog events
⑤提升一个slave为新的master
⑥使其他的slave连接新的master进行复制
MHA工具包
MHA软件由两部分组成Manager工具包和Node工具包
①Manager工具包主要包括以下几个工具
masterha_check_ssh 检查MHA的SSH配置状况 masterha_check_repl 检查MySQL复制状况 masterha_manger 启动MHA masterha_check_status 检测当前MHA运行状态 masterha_master_monitor 检测master是否宕机 masterha_master_switch 故障转移自动或手动 masterha_conf_host 添加或删除配置的server信息 masterha_stop --confapp1.cnf 停止MHA masterha_secondary_check 两个或多个网络线路检查MySQL主服务器的可用
②Node工具包这些工具通常由MHA Manager的脚本触发无需人为操作主要包括以下几个工具
save_binary_logs #保存和复制master的二进制日志 apply_diff_relay_logs #识别差异的中继日志事件并将其差异的事件应用于其他的slave filter_mysqlbinlog #去除不必要的ROLLBACK事件MHA已不再使用此工具 purge_relay_logs #清除中继日志不会阻塞SQL线程
③MHA配置文件
global配置为各application提供默认配置默认文件路径 /etc/masterha_default.cnf application配置为每个主从复制集群
MHA实现mysql高可用实战
①实验环境
MHA服务器192.168.30.14 master 192.168.30.11 slave1 192.168.30.12 slave2 192.168.30.13
②首先将MHA客户端安装包(node包)、服务器安装包(manger包)及master_ip_failover脚本上传到主MHA服务器master和slave服务器只需要上传客户端安装包(node包)上传到root用户家目录下。本人博客资源中(MHA高可用实战部署包)
③安装MHA
MHA:
yum install epel-release.noarch -y
#有依赖性用yum安装需要先安装epel源
yum -y install mha4mysql-*.rpm
#安装MHA
Master和2个slave:
yum install mha4mysql-node-0.58-0.el7.centos.noarch.rpm -y
#安装MHA
④MHA配置免密登录建立mha 文件夹 和配置文件
ssh-keygen
#生成秘钥4个回车
ssh-copy-id 127.0.0.1
#自己和自己实现免密钥登录
rsync -a .ssh 192.168.30.11:/root/
rsync -a .ssh 192.168.30.12:/root/
rsync -a .ssh 192.168.30.13:/root/
#将秘钥传给所有服务器-a表示保留权限rsync可以理解为scp
mkdir /etc/mastermha
#创建mha文件夹
vim /etc/mastermha/app1.cnf
#配置app1.cnf文件内容全部删除复制以下内容
[server default]
usermhauser
passwordAdmin123
manager_workdir/data/mastermha/app1/
manager_log/data/mastermha/app1/manager.log
remote_workdir/data/mastermha/app1/
ssh_userroot
repl_usertest
repl_passwordAdmin123
ping_interval1
master_ip_failover_script/usr/local/bin/master_ip_failover
#report_script/usr/local/bin/sendmail.sh 可以不加
check_repl_delay0
master_binlog_dir/data/mysql/
[server1]
hostname192.168.30.11
candidate_master1
[server2]
hostname192.168.30.12
candidate_master1
[server3]
hostname192.168.30.13
#注意将3个server改为自己的地址1为主2位备用主3为从。保存退出
vim master_ip_failover
#修改mha脚本只需要将拷贝的脚本此2行修改即可其他无须操作
my $vip 192.168.30.188/24;
#设置自己网段的Virtual IP
my $gateway 192.168.30.2;
#自己网段的网关Gateway IP 保存退出
mv master_ip_failover /usr/local/bin/
chmod x /usr/local/bin/master_ip_failover
#脚本文件文件剪切到/usr/local/bin/目录下并添加可执行权限使其可以执行
ifconfig ens33:1 192.168.91.188/24
#MHA配置虚拟ip主挂掉后虚拟ip到备主上
⑤准备主从复制环境
Master执行:
vim /etc/my.cnf
#[mysqld]此行下添加内容开启主从复制和二进制日志
server_id100
log-bin/data/mysql/mysql-bin
skip_name_resolve1
general_log
#添加完毕保存退出
mkdir /data/mysql/ -p
chown mysql.mysql /data/ -R
systemctl restart mysqld
#创建二进制日志保存路径文件修改文件夹权限并重启mysql服务
mysql -uroot -pAdmin123
#登录数据库注意将数据库密码设置为Admin123,否则实验可能有问题如何设置查看前面章节
show master status;
#查看记录二进制日志位置一会从配置使用
grant replication slave on *.* to test192.168.30.% identified by Admin123;
#建立复制用户
grant all on *.* to mhauser192.168.30.% identified by Admin123;
#建立mha管理账户2个slave执行:
vim /etc/my.cnf
#[mysqld]此行下添加内容开启主从复制和二进制日志
server_id102
log-bin/data/mysql/mysql-bin
relay-logrelay-log-bin
relay-log-indexslave-relay-bin.index
skip_name_resolve1
general_log
mkdir /data/mysql/ -p
chown mysql.mysql /data/ -R
systemctl restart mysqld
#创建二进制日志保存路径文件修改文件夹权限并重启mysql服务
mysql -uroot -pAdmin123
#登录数据库注意将数据库密码设置为Admin123,否则实验可能有问题如何设置查看前面章节
CHANGE MASTER TOMASTER_HOST192.168.30.11,MASTER_USERtest,MASTER_PASSWORDAdmin123,MASTER_PORT3306,MASTER_LOG_FILEmysql-bin.000001,MASTER_LOG_POS154;
#配置master信息
start slave
#开启主从复制
show slave status;
#查看配置是否成功
⑥MHA服务器上检查 mha 环境并启动mha
masterha_check_ssh --conf/etc/mastermha/app1.cnf
#检查mha的ssh免密登录环境All SSH connection tests passed successfully
#结尾行出现此信息表示无问题
masterha_check_repl --conf/etc/mastermha/app1.cnf
#检查mha主从环境
MySQL Replication Health is OK.
#结尾行出现此信息表示无问题
masterha_check_status --conf/etc/mastermha/app1.cnf
#查看mha状态默认是停止状态stop
masterha_manager --conf/etc/mastermha/app1.cnf
#开启mha需要等待较长时间启动成功
masterha_check_status --conf/etc/mastermha/app1.cnf
#重新查看状态是running
⑦关闭master的mysql查看是否备1成为主且备2的slave信息变为备2的且备1的slave信息为空
master:
systemctl stop mysqld
#主关闭mysql
slave1:
mysql -uroot -pAdmin123
#登录数据库
show slave status;
#slave信息为空
slave2:
mysql -uroot -pAdmin123
#登录数据库
show slave status;
#slave信息中Master_Host:变为slave1的ip地址##注意就算重新开启master的数据库也不会成为主需要手动添加为slave。