execution(**..iservice.*(..))报错_MHA架构MySQL迁移执行masterha_check_repl报错处理一则

朋友在MHA架构MySQL异机迁移过程中发现执行MHA的 masterha_check_repl 检测无法通过,报错服务不存在:

 [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln188] There is no alive server. We can't do failover。

详细的信息如下:

[mysql@mysqldb02 my3308]$ [mysql@mysqldb02 my3308]$ masterha_check_repl --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.confSat Sep 14 17:52:52 2019 - [info] Reading default configuration from /etc/masterha/masterha_default.conf..Sat Sep 14 17:52:52 2019 - [info] Reading application default configuration from /etc/masterha/app1.conf..Sat Sep 14 17:52:52 2019 - [info] Reading server configuration from /etc/masterha/app1.conf..Sat Sep 14 17:52:52 2019 - [info] MHA::MasterMonitor version 0.57.Sat Sep 14 17:52:54 2019 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln188] There is no alive server. We can't do failoverSat Sep 14 17:52:54 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. at /usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm line 329.Sat Sep 14 17:52:54 2019 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.Sat Sep 14 17:52:54 2019 - [info] Got exit code 1 (Not master dead).MySQL Replication Health is NOT OK![mysql@mysqldb02 my3308]$ [mysql@mysqldb02 my3308]$ 

上面报错信息中,第一个error中There is no alive server指的MySQL服务不存在,最终导致

检测结果为MySQL Replication Health is NOT OK!

事实上,通过查看发现该mysql主从节点均正常,那么MHA为什么还是报服务不存在呢?

经了解,本次MySQL迁移将原ip地址如xxx.xxx.xxx.10改成了新的ip地址xxx.xxx.xxx.100,并且在mha的配置文件中hostname写的是新IP地址xxx.xxx.xxx.100对应的主机名。

默认情况下,MHA会通过主配置文件中[server]指定的hostname探测对应的MySQL服务,如果配置文件中没有指定port,则会使用默认的3306端口。如果使用非默认的port端口,需要在mha配置文件中明确指定。

先看看MHA的配置文件:

[root@mysqldb02 masterha]# cat app1.conf [server default]manager_workdir = /var/log/masterha/app1manager_log = /var/log/masterha/app1/app1.logremote_workdir = /var/log/masterha/app1[server1]hostname=mysqldb01master_binlog_dir = /aken/dbdata/my3308/binlogcandidate_master = 1check_repl_delay = 0 [server2]hostname=mysqldb02master_binlog_dir=/aken/dbdata/my3308/binlogcandidate_master=1check_repl_delay=0[root@mysqldb02 masterha]# 

配置文件hostname中对应的ip为新的主机ip,且本次迁移的MySQL使用非默认端口port=3308,需要在需要在mha的配置文件中指定port。

[root@mysqldb02 masterha]# vi app1.conf --在每个server处加入port=3308.

此外,还需要在slave中检查指向的master是否依旧使用的是旧ip地址,如果是则需要重新执行change master改正:

mysql> select * from mysql.slave_master_infoG;*************************** 1. row *************************** Number_of_lines: 25 Master_log_name: mysql-bin.000016 Master_log_pos: 1284 Host: xxx.xxx.xxx.10 <<

#更正replication配置信息:

mysql> CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx.100', MASTER_USER='repl', MASTER_PASSWORD='xxxxxxx', MASTER_PORT=3308, MASTER_AUTO_POSITION=1;

重新执行masterha_check_repl 检测通过:

[root@mysqldb01 masterha]# masterha_check_repl --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.confSat Sep 14 18:17:53 2019 - [info] Reading default configuration from /etc/masterha/masterha_default.conf..Sat Sep 14 18:17:53 2019 - [info] Reading application default configuration from /etc/masterha/app1.conf..Sat Sep 14 18:17:53 2019 - [info] Reading server configuration from /etc/masterha/app1.conf..Sat Sep 14 18:17:53 2019 - [info] MHA::MasterMonitor version 0.57.Sat Sep 14 18:17:54 2019 - [info] GTID failover mode = 1Sat Sep 14 18:17:54 2019 - [info] Dead Servers:Sat Sep 14 18:17:54 2019 - [info] Alive Servers:Sat Sep 14 18:17:54 2019 - [info] mysqldb01(xxx.xxx.xxx.100:3308)Sat Sep 14 18:17:54 2019 - [info] mysqldb02(xxx.xxx.xxx.200:3308)Sat Sep 14 18:17:54 2019 - [info] Alive Slaves:Sat Sep 14 18:17:54 2019 - [info] mysqldb02(xxx.xxx.xxx.200:3308) Version=5.7.27-log (oldest major version between slaves) log-bin:enabledSat Sep 14 18:17:54 2019 - [info] GTID ONSat Sep 14 18:17:54 2019 - [info] Replicating from xxx.xxx.xxx.100(xxx.xxx.xxx.100:3308)Sat Sep 14 18:17:54 2019 - [info] Primary candidate for the new Master (candidate_master is set)Sat Sep 14 18:17:54 2019 - [info] Current Alive Master: mysqldb01(xxx.xxx.xxx.100:3308)Sat Sep 14 18:17:54 2019 - [info] Checking slave configurations..Sat Sep 14 18:17:54 2019 - [info] Checking replication filtering settings..Sat Sep 14 18:17:54 2019 - [info] binlog_do_db= , binlog_ignore_db= Sat Sep 14 18:17:54 2019 - [info] Replication filtering check ok.Sat Sep 14 18:17:54 2019 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.Sat Sep 14 18:17:54 2019 - [info] Checking SSH publickey authentication settings on the current master..Sat Sep 14 18:17:55 2019 - [info] HealthCheck: SSH to mysqldb01 is reachable.Sat Sep 14 18:17:55 2019 - [info] mysqldb01(xxx.xxx.xxx.100:3308) (current master) +--mysqldb02(192.168.216.200:3308)Sat Sep 14 18:17:55 2019 - [info] Checking replication health on mysqldb02..Sat Sep 14 18:17:55 2019 - [info] ok.Sat Sep 14 18:17:55 2019 - [info] Checking master_ip_failover_script status:Sat Sep 14 18:17:55 2019 - [info] /etc/masterha/master_ip_failover --command=status --ssh_user=root --orig_master_host=mysqldb01 --orig_master_ip=xxx.xxx.xxx.100 --orig_master_port=3308 Sat Sep 14 18:17:55 2019 - [info] OK.Sat Sep 14 18:17:55 2019 - [warning] shutdown_script is not defined.Sat Sep 14 18:17:55 2019 - [info] Got exit code 0 (Not master dead).MySQL Replication Health is OK.[root@mysqldb01 masterha]# 

---本文完---

欢迎关注本头条号查看更多文章:

bcf7901e36911589a0eba9a992b2351d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值