MHA官方文档翻译(五)

2015-02-03 03:55:14 · 作者: · 浏览: 79
mysqld mysqld_safe

这时候检查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