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)