网站排名优化手机,新闻宣传wordpress主题,网络公司的手机网站,二 加强门户网站建设快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解#xff08;如有不正确的地方欢迎各位小伙伴在评论区提意见#xff0c;博主会及时修改#xff09;
MySQL MHA高可用架构搭建 MHA#xff08;Master HA#xff09;是一款开源的 MySQL 的高可用程序#xf…快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解如有不正确的地方欢迎各位小伙伴在评论区提意见博主会及时修改
MySQL MHA高可用架构搭建 MHAMaster HA是一款开源的 MySQL 的高可用程序它为 MySQL主从复制架构提供了 automating master failover 自动化主故障转移功能。MHA 在监控到 master 节点故障时会提升其中拥有最新数据的 slave 节点成为新的master 节点在此期间MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能即按需切换 master/slave 节点。 在 MySQL 故障切换过程中MHA 能够做到 0~30 秒内自动完成数据库的故障切换操作并且在进行故障切换的过程中MHA 能最大成都上保证数据库的一致性以达到真正意义上的高可用 所需工具 MHA Manager管理节点管理所有主从复制数据库通常单独部署在一台机器上 MHA Node数据节点运行在每个mysql所在的机器上以及管理节点所在机器上MHA Manager会定时探测集群中的master节点当master出现故障时它自动将最新数据的slave提升为master然后将其它所有的slave指向新的master。 步骤 准备一个已经基于GTID搭建好的mysql主从复制集群以及一台新的linux用于部署管理节点 设置所有机器可以免密登录 #所有机器生成ssh密钥 [rootlocalhost ~]# ssh-keygen -t rsa #所有机器发送免密登录请求到所有机器(包括自己) [rootlocalhost ~]# ssh-copy-id 192.168.157.111 [rootlocalhost ~]# ssh-copy-id 192.168.157.112 [rootlocalhost ~]# ssh-copy-id 192.168.157.113 [rootlocalhost ~]# ssh-copy-id 192.168.157.114 所有节点安装mha运行环境 [rootlocalhost mysql]# yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN 所有机器安装mha的数据节点软件(包括将来的管理节点) 将数据节点下载到所有机器 #通过rpm命令安装 [rootlocalhost ~]# rpm -ivh /tmp/mha4mysql-node-0.57-0.el7.noarch.rpm 检查mysql环境 #mha在运行时会调用一些mysql的命令需要提前检查命令是否在Linux默认环境中 [rootlocalhost ~]# which mysql /usr/bin/mysql #检查mysql命令此为正常 [rootlocalhost ~]# which mysqlbinlog /usr/bin/which: no mysqlbinlog in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) #检查mysqlbinlog命令此为不正常需要将此命令在/usr/bin下简历软连接 [rootlocalhost ~]# ln -s /opt/liuyh/mysql/bin/mysqlbinlog /usr/bin/ [rootlocalhost ~]# which mysqlbinlog /usr/bin/mysqlbinlog # 正常 所有数据库创建mha管理用户并赋予权限 mysql grant all on . to ‘mha’‘%’ identified by ‘111111’; #注意此前已经完成了主从复制只需在主库创建从库自动同步 管理节点配置–安装管理节点运行环境 [rootlocalhost ~]# yum install -y perl-Config-Tiny epel-release perl-Parallel-ForkManager perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes 管理节点配置-安装管理节点 #下载管理节点 #使用rpm安装 [rootlocalhost ~]# rpm -ivh /tmp/mha4mysql-manager-0.57-0.el7.noarch.rpm 管理节点配置-创建mha目录 [rootlocalhost ~]# mkdir -p /etc/mha [rootlocalhost ~]# mkdir -p /var/log/mha/app1 管理节点配置-创建配置文件并修改 [rootlocalhost ~]# vi /var/log/mha/app1.cnf 配置文件内容 [server default] manager_log/var/log/mha/log/manager.log manager_workdir/var/log/mha/app.log master_binlog_dir/opt/liuyh/log usermha password123456 ping_interval2 repl_usertestslave repl_password123456 ssh_userroot [server1] candidate_master1 check_repl_delay0 hostname192.168.240.134 port3306 [server2] check_repl_delay0 hostname192.168.240.135 port3306 [server3] check_repl_delay0 hostname192.168.240.136 port3306 # 关键字作用以及编写实例参考
[server default]
manager_workdir/var/log/masterha/app1.log #设置manager的工作目录
manager_log/var/log/masterha/app1/manager.log #设置manager的日志
master_binlog_dir/data/mysql #设置master 保存binlog的位置以便MHA可以找到master的日志我这里的也就是mysql的数据目录
master_ip_failover_script /usr/local/bin/master_ip_failover #设置自动failover时候的切换脚本
master_ip_online_change_script /usr/local/bin/master_ip_online_change #设置手动切换时候的切换脚本
password123456 #设置mysql中root用户的密码这个密码是前文中创建监控用户的那个密码
userroot #设置监控用户root
ping_interval1 #设置监控主库发送ping包的时间间隔默认是3秒尝试三次没有回应的时候自动进行failover
remote_workdir/tmp #设置远端mysql在发生切换时binlog的保存位置
repl_password123456 #设置复制用户的密码
repl_userrepl #设置复制环境中的复制用户名
report_script/usr/local/send_report #设置发生切换后发送的报警的脚本
secondary_check_script /usr/local/bin/masterha_secondary_check -s server03 -s server02 # 一旦MHA到server02的监控之间出现问题MHA Manager将会尝试从server03登录到server02
shutdown_script #设置故障发生后关闭故障主机脚本该脚本的主要作用是关闭主机放在发生脑裂,这里没有使用
ssh_userroot #设置ssh的登录用户名
[server1]
hostname10.0.0.201 #数据库的ip
port3306 #数据库的端口
[server2]
hostname10.0.0.204
port3306
candidate_master1 #设置为候选master如果设置该参数以后发生主从切换以后将会将此从库提升为主库即使这个主库不是集群中事件最新的
slave_check_repl_delay0 #默认情况下如果一个slave落后master 100M的relay logs的话MHA将不会选择该slave作为一个新的master因为对于这个slave的恢复需要花费很长时间通过设置check_repl_delay0,MHA触发切换在选择一个新的master的时候将会忽略复制延时这个参数对于设置了candidate_master1的主机非常有用因为这个候选主在切换 的过程中一定是新的master
[server3]
hostname10.0.0.202
port3306管理节点配置-检查mha的ssh连接情况 [rootlocalhost ~]# masterha_check_ssh --conf/var/log/mha/app1.cnf 管理节点配置-检查主从复制状态 启动mha [rootlocalhost mha]# nohup masterha_manager --conf/var/log/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover /var/log/mha/log/manager.log 21 /var/log/mha/log/manager.log 设置该文件为日志文件保证该文件目录存在 手动关闭主库模拟主库宕机 再次查看主从复制情况 [rootlocalhost ~]# masterha_check_repl --conf/var/log/mha/app1.cnf