MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
表的导出导入
MySQLdump逻辑备份
XtraBackup全备
XtraBackup增备
XtraBackup原表数据恢复
安装MySQL
ProxySQL中间件
Atlas中间件
keepalived安装
MHA安装
MHA恢复
mha复制检查报错及解决过程
集群Cluster安装
维护Cluster
开启审计功能
本文档使用MrDoc发布
返回首页
-
+
MHA安装
2019年11月17日 10:21
admin
##MHA工作原理 >1.从宕机崩溃的master保存二进制日志事件(binlog events)。 >2.识别含有最新更新的slave。 >3.应用差异的中继日志(relay log)到其它slave。 >4.应用从master保存的二进制日志事件(binlog events)。 >5.提升一个slave为新master。 >6.使其它的slave连接新的master进行复制。 ##MHA工具包 ###mha-manager工具 >masterha_check_ssh : 检查MHA的SSH配置。 masterha_check_repl : 检查MySQL复制。 masterha_manager : 启动MHA。 masterha_check_status : 检测当前MHA运行状态。 masterha_master_monitor : 监测master是否宕机。 masterha_master_switch : 控制故障转移(自动或手动)。 masterha_conf_host : 添加或删除配置的server信息。 ###mha-node工具 >save_binary_logs : 保存和复制master的二进制日志。 apply_diff_relay_logs : 识别差异的中继日志事件并应用于其它slave。 filter_mysqlbinlog : 去除不必要的ROLLBACK事件(MHA已不再使用这个工具)。 purge_relay_logs : 清除中继日志(不会阻塞SQL线程)。 ##安装perl环境 yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-Embed cpan ##manager安装: # 先安装node tar xf mha4mysql-node-0.56.tar.gz cd mha4mysql-node-0.56 perl Makefile.PL make && make install # 再安装manager tar xf mha4mysql-manager-0.56.tar.gz cd mha4mysql-manager-0.56 perl Makefile.PL make && make install ###创建配置文件: mkdir /etc/mha mkdir -p /data/logs/mha/app1 vim /etc/mha/app1.cnf >[server default] manager_log=/var/log/masterha/app1/manager.log manager_workdir=/var/log/masterha/app1 master_binlog_dir=/var/lib/mysql master_ip_failover_script=/usr/local/bin/master_ip_failover master_ip_online_change_script=/usr/local/bin/master_ip_online_change password=361way.com ping_interval=1 remote_workdir=/tmp repl_password=361way.com repl_user=sync report_script=/usr/local/send_report shutdown_script="" ssh_user=root user=sync >[server1] candidate_master=1 check_repl_delay=0 hostname=192.168.31.146 >[server2] candidate_master=1 check_repl_delay=0 hostname=192.168.31.38 >[server3] hostname=192.168.31.192 ##node安装: tar xf mha4mysql-node-0.56.tar.gz cd mha4mysql-node-0.56 perl Makefile.PL make && make install ###各节点相互生成密钥添加互信包括本机自身: 生成密钥:ssh-keygen 互相添加互信:ssh-copy-id -i 公钥文件 ip 添加完成后用master_chekc_ssh -conf=/etc/mha/app1.cnf进行测试 配置文件更改,从节点也开启二进制日志,server_id不能相同 vim /etc/my.cnf >[mysql] server_id = 1 # 设置优先级最高 log_bin = binlog # 开启二进制日志 log_bin = binlog.index read_only = 1 # 设置只读权限 relay_log_purge = 0 # 关闭自动清除执行完毕后的中级日志 ###检查 masterha_check_repl --conf=/etc/mha/app1.cnf 输出:MySQL Replication Health is OK. ###启动mha-manager nohup /usr/local/bin/masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /data/logs/mha/app1/manager.log 2>&1 & ###查看运行状态 masterha_check_status --conf=/etc/mha/app1.cnf 输出:app1 (pid:11809) is running(0:PING_OK), master:192.168.100.52表明成功运行
分享到: