MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
mysql_random_data_load 数据生成
表的导出导入
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表明成功运行
分享到: