网友通过本文主要向大家介绍了mysql mha,mysql mha配置,mysql mha视频,mysql mha下载,mysql mha keepalived等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
MySQL高可用组件MHA参数详解
MHA目前在 MySQL高可用方面是一个相对成熟的解决方案,它由日本人开发,是一套优秀的作为 MySQL高可用性环境下故障切换和主从提升的高可用软件。MHA提供了一系列配置参数,深入理解每个参数的具体含义,对优化配置、合理使用MHA非常重要,很多高可用性也都是通过合理配置一些参数而实现的。下面我们来详细介绍一些在使用MHA过程中可能用到的一些参数~Local :指每一个配置块内部。 Local功能的参数需要放置在[server_xxx] 块下面
App :参数作用于master/slave, 这些参数需要配置在[server_default]块的下面
Global :作用于master/slave, Global级别的参数用于管理多组master/slave结构,可以统一化管理一些参数。
hostname:配置MySQL服务器的机器名或是IP地址,这个配置项是必须的,而且只能配置在[server_xxx]这个块下面。
如:参数名 是否必须 作用域 默认值 例子及说明
hostname Yes Local Only – hostname=mysql_server1, hostname=192.168.0.1, etc
ip:MySQL服务器的ip地址。 默认从gethostname($hostname)中获得。 默认不用配置这个参数,MHA可以通过hostname自动获取,MHA通过IP地址连接MySQL服务器及SSH连接。
如:
参数名 是否必须 作用域 默认值 例子及说明
ip No Local Only 通过gethostbyname($hostname)获得 ip=192.168.1.3
port:MySQL运行的端口号。 默认是3306. MHA使用IP和端口号连接MySQL
如:
参数名 是否必须 作用域 默认值 例子及说明
port No Local/App/Glbal 3306 port=3306
ssh_host:MHA要ssh上MySQL目标服务器使用hostname或是ip地址。这个参数主要用于在使用多个VLAN的环境中。为了安全原因ssh默认不允许。默认这个参数和hostname相同。
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_host No Local Only 和hostname相同 ssh_host=mysql_server1, ssh_host=192.168.0.1, etc
ssh_ip:(从MHA 0.53后开始支持) 和ssh_host作用相同。 默认是gethostname($ssh_host)获得。
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_ip No Local Only gethostbyname($ssh_host) ssh_ip=192.168.1.3
ssh_port:(从MHA 0.53后开始支持) SSH使用的端口号,默认是22.
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_port No Local/App/Global 22 ssh_port=22
ssh_connection_timeout:(从MHA 0.54后支持)默认是5秒。在没添加这个参数之前ssh超时时间是写死的。
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_connection_timeout No Local/App/Global 5 ssh_connect_timeout=5
ssh_options:(从MHA 0.53后支持)添加ssh命令行的支持参数,例如加上特别文件名的key的支持等。
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_options No Local/App/Global “” 空的 ssh_options=”-i /root/.ssh/id_dsa2″
candidate_master:你可能对于同一组slave中有着不同的规划,有的其望在Master故障时,提升为新的Master(如: Raid1的slave比Raid0的slave更适合做Master)
这个参数的作用是当设计candidate_master = 1时,这个服务器有较高的优先级提升为新的master(还要具备: 开启binlog, 复制没有延迟)。 所以当设置了candidate_master = 1的机器在master故障时必然成为新的master. 但这是很有用的设置优先级的一个参数。
如果设置了多台机器的caddidate_master = 1 , 优先策略依赖于块名字([server_xxx]). [server_1] 优衔权高于[server_2].
如:
参数名 是否必须 作用域 默认值 例子及说明
candidate_master No Local Only 0 candidate_mast=1
no_master
当设置了no_master = 1的服务器,这个服务器永远不会提升为新的master. 这个参数据对于永远不期望成为master的机器很有用。 如: 你可能需要在使用raid0的机器上设置no_master = 1 或是你希望在远程的idc里运行一个slave. 注意: 当没有可以成为新master的机器是MHA就直接退出来了同时停止监控和master故障切换。
如:
参数名 是否必须 作用域 默认值 例子及说明
no_master No Local Only 0 no_master=1
ignore_fail:在默认情况下,MHA manager不会在slave存在故障的情况下(已经不能通过SSH/MySQL进行连接,或是SQL Thread已经停止出错,其它原因)的情况下进行Master的故障切换(当不存在slave时MHA manager也会退出)。 但有些情况下你期望在slave存在问题的情况下,也进行故障切换。 所以当设置了ignore_fail = 1时,MHA会在所有的机器有问题的时间也会进行故障切换。 默认是0.
如:
参数名 是否必须 作用域 默认值 例子及说明
ignore_fail No Local Only 0 ignore_fail=1
skip_init_ssh_check:在MHA manager启动时跳过ssh检查。
如:
参数名 是否必须 作用域 默认值 例子及说明
skip_init_ssh_check No Local Only 0 skip_init_ssh_check=1
skip_reset_slave::(从MHA 0.56开始支持) Master故障切换后新的master上执行RESET SLAVE(ALL).
如:
参数名 是否必须 作用域 默认值 例子及说明
skip_reset_slave No Local/App/Global 0 skip_reset_slave=1
user:用于管理MySQL的用户名。这个最好使用root用户,因为它需要执行:stop slave; change master to , reset slave. 默认: root
如:
参数名 是否必须 作用域 默认值 例子及说明
user No Local/App/Global root user=mysql_root
password:MySQL的管理用户的密码。 默认是空的
如:
参数名 是否必须 作用域 默认值 例子及说明
password No Local/App/Global 空的 password=rootpass
repl_user:MySQL用于复制的用户,也是用于生成CHANGE MASTER TO 每个slave使用的用户。 这个用户必须有REPLICATION SLAVE权限在新的Master上。默认情况下 repl_user会在将来成为master的机器上运行show slave status获取到。
如:
参数名 是否必须 作用域 默认值 例子及说明
repl_user No Local/App/Global 从show slave status repl_user=repl
repl_password:MySQL中repl_user用户的密码。 默认是当前复制用的密码。 当你使用online_master_switch时,当使用–orig_master_is_new_slave(原来的Master成为新Master的一个slave)时,如果没有repl_password 开启同步就会失败了。因为当前master上用于复制的用户名和密码都是空的(MHA在原来的Master上执行change master to 时没有带复制的密码,虽然其它slave上设置了复制的密码)
如:
参数名 是否必须 作用域 默认值 例子及说明
repl_password No Local/App/Global 当前复制用的密码 repl_password=replpas
disable_log_bin:当设置了这个参数,在slave应用差异的relay log时不会产生二进制日志。内部实现通过mysqlbinlog的disable-log-bin实现。
如:
参数名 是否必须 作用域 默认值 例子及说明
disable_log_bin No Local/App/Global 0 disable_log_bin=1
master_pid_file:指定MySQL的pid文件。这个参数在一台服务器上运行多个MySQL服务进程时非常有用。
如:
参数名 是否必须 作用域 默认值 例子及说明
master_pid_file No Local/App/Global – master_pid_file=/var/lib/mysql/master1.pid
ssh_user:MHA Mananger, MHA node系统上的用户。 这个帐号需要在远程机器上有执行权限(Manager->MySQL),在slave成员之间复制差异的relay-log(MySQL->MySQL)
这个用户必须有读取MySQL的binary/relay日志和relay_log.info的权限,还需要对远程MySQL上remote_workdir目录的写权限。
这个用户还必须可以直接ssh到远程机顺上, 推荐使用ssh pbulic key . 一般使用的ssh_user也是运行manager那个那个用户。
如:
参数名 是否必须 作用域 默认值 例子及说明
ssh_user No Local/App/Global 当前使用的系统用户 ssh_user=root
remote_workdir:MHA node上工作目录的全路径名。如果不存在,MHA node会自动创建,如果不允许创建,MHA Node自动异常退出。 需要注意MHA manager 或是MHA node上需要检查空间是否可用,所以需要注意检查这个。 一般默认, remote_workdir是的”/var/tmp”
如:
参数名 是否必须 作用域 默认值 例子及说明
remote_workdir No Local/App/Global /var/tmp remote_workdir=/var/log/masterha/app1
master_binlog_dir:master上用于存储binary日志的全路径。这个参数用于当master上mysql死掉后,通过ssh连到mysql服务器上,找到需要binary日志事件。这个参数可以帮助用于无法找到master进程死掉后binary日志存储位置。
一般: master_binlog_dir是”/var/lib/mysql/, /var/log/mysql”. “/var/lib/mysql/”是大多数系统发行版本的存放位置,”/var/log/mysql”是ubuntu发行版本的存放位置。 你也可以设置多个存放位置用逗号隔开。
如:
参数名 是否必须 作用域 默认值 例子及说明
master_binlog_dir No Local/App/Gobal /var/lib/mysql master_binlog_dir=/data/mysql1,/data/mysql2
log_level:设置MHA manager记录LOG的级别。 默认是info级别而且大多数情况也是比较适合。 同样可以设置为: debug/info/warning/error.
如:
参数名 是否必须 作用域 默认值 例子及说明
log_level No App/Global info log_level=debug
manager_workdir:用于指定mha manager产生相关状态文件全路径。 如果没设置 默认是/var/tmp
如: