这时候检查manager的log日志,看看host2是否成功成为新的master,并且host3从host2中复制。
当完成一次正常的故障转移后,manager进程将会终止。如果你需要将manager进程运行在后台,可运行如下指令,或者通过安装daemontools来实现(这里略)
manager_host$ nohup masterha_manager --conf=/etc/app1.cnf < /dev/null > /var/log/masterha/app1/app1.log 2>&1 &
?
Writing an application configuration file
为了MHA正常运行,你需要创建一个配置文件并设置参数,参数主要包括每个mysql进程所在的服务器的用户名和密码,mysql服务的用户名和密码,工作目录等等。整个参数列表设置详细请见Parameters 页。
下面是一个配置文件的设置范例
manager_host$ cat /etc/app1.cnf [server default] # mysql user and password user=root password=mysqlpass # working directory on the manager manager_workdir=/var/log/masterha/app1 # manager log file manager_log=/var/log/masterha/app1/app1.log # working directory on MySQL servers remote_workdir=/var/log/masterha/app1 [server1] hostname=host1 [server2] hostname=host2 [server3] hostname=host3 所有的参数设置必须是"param=value"格式,打个比方,以下设置时错误的。 [server1] hostname=host1 # incorrect: must be"no_master=1" no_master
Application-scope参数必须写在[server default]块下,而在 [serverN]块下,你需要设置的是local-scope参数,比如hostname是一个local-scope参数,所以必须写在这个块下面。块名称必须是字母”server”开头。
?
Writing a global configuration file
如果你计划只用一台manager管理两个或以上的master-slave对,那么建议你创建一个全局配置文件,这样你就不需要为每一个复制都配置相同的参数。如果你创建了一个文件/etc/masterha_default.cnf,那么它默认就是全局配置文件。
你可以在全局配置文件中设置application scope参数,例如,如果所有的mysql服务器的管理账户和密码都是一样的,你就可以在这里设置user和password
以下是全局配置文件范例
Global configuration file (/etc/masterha_default.cnf) [serverdefault] user=root password=rootpass ssh_user=root master_binlog_dir= /var/lib/mysql remote_workdir=/data/log/masterha secondary_check_script= masterha_secondary_check-s remote_host1 -s remote_host2 ping_interval=3 master_ip_failover_script=/script/masterha/master_ip_failover shutdown_script= /script/masterha/power_manager report_script= /script/masterha/send_master_failover_mail
以上这些参数可适用于所有的applications。
Application配置文件应该被单独配置,以下是app1(host1-4)和app2(host11-14)的范例
app1: manager_host$ cat /etc/app1.cnf [server default] manager_workdir=/var/log/masterha/app1 manager_log=/var/log/masterha/app1/app1.log [server1] hostname=host1 candidate_master=1 [server2] hostname=host2 candidate_master=1 [server3] hostname=host3 [server4] hostname=host4 no_master=1 app2: manager_host$ cat /etc/app2.cnf [server default] manager_workdir=/var/log/masterha/app2 manager_log=/var/log/masterha/app2/app2.log [server1] hostname=host11 candidate_master=1 [server2] hostname=host12 candidate_master=1 [server3] hostname=host13 [server4] hostname=host14 no_master=1
Requirements and Limitations
1 这一部分做简要翻译,安装MHA的依赖和限制
2 SSH public key认证
3 仅支持Liunx操作系统
4 只有一台master能被设置成readonly=0,其他设置为只读
5如果是Master1 -> Master2-> Slave3这样的三级复制框架,在配置文件中只需要设置master1和master2这样的二级复制结构,并设置multi_tier_slave=1来支持三级复制结构。
6 MHA仅支持mysql 5.0及以后的版本
7 mysqlbinlog必须是3.3及以上版本
8 log-bin必须在每一个可称为master的mysql服务器上设置
9 所有mysql服务器的复制过滤规则必须一致
10 必须在能成为master的服务器上设置复制账户
11所有Mysql服务器上必须设置re