MHA官方文档翻译(八)

2015-02-03 03:55:14 · 作者: · 浏览: 87
ql永远无法成为master,通常在RAID0或者远程数据中心设置该mysql的no_master为1,或者manager和slave复用的主机上也这么设置。

ignore_fail

默认情况下,manager在slave出现故障的时候不会自动故障转移,比如SSH连接或者SQL线程有问题等。如果设置为1则该slave出现故障时会自动切换

skip_init_ssh_check

跳过初始化过程中的ssh检查

skip_reset_slave

0.56版本后支持当master崩溃,跳过执行resetslave

user

mysql管理账户,最好是root账户,默认也就是root账户

password

user对应的mysql账户密码

repl_user

复制账户,通常不用设置

repl_password

复制账户对应的密码,通常不用设置

disable_log_bin

如果这个选项被设置,那么当将不同的relay log应用到各个slave的过程中,slave不产生binlog

master_pid_file

设置master的pid文件,通常不用设置

ssh_user

默认是当前登陆manager的OS的用户,需要拥有读取mysql binlog和relay log的权限

remote_workdir

每一个MHA node节点产生log文件的目录,如果不存在MHA会自动创建,需要给出相应目录的权限,默认在/var/tmp,最好自己指定

master_binlog_dir

master产生binlog文件的目录,最好自己指定,因为当master崩溃后,如果master还能连通SSH,就会复制其binlog,默认路径为/var/lib/mysql.

log_level

通常不用设置,表示日志级别

manager_workdir

manager产生自身状态的文件的目录,默认/var/tmp

client_bindir

If MySQL command line utilities are installed under a non-standarddirectory, use this option to set the directory.

client_libdir

If MySQL libraries are installed under a non-standard directory,use this option to set the directory.

manager_log

Manager日志的全路径名称,若未设置,默认输出到STDOUT/STDERR;

如果手动故障切换时,MHA则忽略参数设置,而直接输出到STDOUT/STDERR。

Full path file name that MHA Manager generates logs. If not set,MHA Manager prints to STDOUT/STDERR. When executing manual failover(interactive failover), MHA Manager ignores manager_log setting and alwaysprints to STDOUT/STDERR.

check_repl_delay

默认情况下,如果某个slave的复制延迟超过100MB,MHA则不会使其成为新的master,因为这需要很长的时间来恢复。如果设为0,MHA在选举新的master时会忽略复制延迟

若设置该参数为0,MHA在选择新的Master时,会忽略复制延迟。当某个mysql设置candidate_master=1时,再将check_repl_delay设置为0就很有必要,确保它能成为新的master

check_repl_filter

检查复制过滤,默认情况下如果master和slave拥有不同的过滤规则就会报错,通过设置为0可以忽略复制过滤检查,当然你得特别小心,确保没有问题。

latest_priority

默认情况下MHA在master崩溃后,选举复制延迟最低的slave为新的master,但允许你自己控制每个slave成为主节点的优先级和顺序,通过设置该参数为0,并由写入candidate_master=1的mysql服务器顺序决定。

multi_tier_slave

从0.52版本开始,MHA支持多级复制配置。默认情况下,不允许设置三层以上的复制结构,比如h2从h1复制,而h3又从h2复制,MHA将会报错。通过设置multi_tier_slave参数,则h1崩溃后,h2被选举为新的master,而h3依旧从h2复制

ping_interval

这个参数指定了MHA manager应该多长时间执行ping SQL一次去连接master,当超过三次连接不上master,manager将判定master已经死亡。默认3秒ping一次,所以,总的检测时间大概就是12秒。如果由于连接错误或者连接数过多而导致的错误不会计入master死亡统计。

ping_type

0.53版本默认连接到master并执行select 1,即ping_type=SELECT。但是在某些场合,更好地方式是通过创建连接后又断开连接的方式,因为这个更加严格,并且能更快地发现tcp连接问题,即ping_type=CONNECT。从5.6版本以后还支持ping_type=INSERT

secondary_check_script

通常情况下,我们建议使用两个或以上的网络路由来检测master是否存活。但默认情况下,manager仅通过单个路由来检查,即from Manager节点to Master节点。MHA实际上可以支持多个路由检测,只要通过调用额外的脚本masterha_check_script即可,下面是范例。

  secondary_check_script = masterha_secondary_check -s remote_host1 -s remote_host2

masterha_secondary_check脚本在manager节点上,通常情况下能够运行良好。

在这个范例中,MHA通过Manager-(A)->remote_host1-(B)->master_host

和Manager-(A)->remote_host2-(B)->master_host来检测master状态。如果在上述两步中都是A连接成功而B连接不成功,则MHA能够判断是master确实已经死亡并返回0,进行故障切换。如果A连接不成功,该脚本会返回2,MHA认为可能是自身的网络问题而不进行故障转移。如果此时B连接成功,则实际上master是存活的。通俗地说,remote_host1和remote_host2应该被设置在不同的网段上。

该脚本在通用场合中都适用,当然你也可以自己写脚本来实现更多的功能。下面是该脚本的参数列表。

--user=(SSH username of the remote hosts. ssh_user parameter value will be passed)--master_host=(master's hostname) --master_ip=(master's ip address) --master_port=(master's port number)