1、MHA 高可用 **** 准备三台Mysql服务器,配置好主从 dba02----master----192.168.189.133 server_id=8 dba03----slave-----192.168.189.134 server_id=9 dba04----slave-----192.168.189.135 server_id=10 上传MHA软件包,到/root 并解压 wget http://106.12.88.74/softdown/centos7/08_mha/MHA-2019-6.28.zip 1.1、搭建体验 (1)、配置关键程序软连接(3台mysql上都要操作) ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog ln -s /application/mysql/bin/mysql /usr/bin/mysql (2)、配置互信 dba02上面操作: rm -rf /root/.ssh ssh-keygen cd /root/.ssh mv id_rsq.pub authorized_keys scp -r /root/.ssh 192.168.189.134:/root scp -r /root/.ssh 192.168.189.135:/root 各节点验证:命令逐条执行 db02、dba03、dba04 3台服务器都操作 ssh 192.168.189.133 date ssh 192.168.189.134 date ssh 192.168.189.135 date (3)、安装软件包:(所有节点上操作) yum install perl-DBD-MySQL -y rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm (4)、在dba02 主库上创建 mha需要的用户 grant all privileges on *.* to mha@'192.168.%' identified by 'mha789'; (5)、Manager安装(管理节点安装在dba04,) yum install -y perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm (6)、准备MHA管理节点的配置文件和目录(dba04) mkdir -p /etc/mha ##配置文件目录 mkdir -p /var/log/mha/app1 ### 日志目录 编辑mha配置文件 cat >/etc/mha/app1.cnf <<EOF [server default] manager_log=/var/log/mha/app1/manager manager_workdir=/var/log/mha/app1 master_binlog_dir=/data/binlog user=mha password=mha789 ping_interval=2 repl_password=repl520 repl_user=repl ssh_user=root [server1] hostname=192.168.189.133 port=3306 [server2] hostname=192.168.189.134 port=3306 [server3] hostname=192.168.189.135 port=3306 EOF (7)、进行状态检查(dba04---192.168.189.135 MHA_manager) 互信检查 masterha_check_ssh --conf=/etc/mha/app1.cnf同步数据检查: masterha_check_repl --conf=/etc/mha/app1.cnf
(8)、开启MHA (dba04---192.168.189.135 MHA_manager) nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null> /var/log/mha/app1/manager.log 2>&1 & 停止MHA:masterha_stop --conf=/etc/mha/app1.cnf (9) 查看MHA状态(dba04---192.168.189.135 MHA_manager) masterha_check_status --conf=/etc/mha/app1.cnf
+++++++++++++++++++++++++++++ 2.1 节点规划 数据库节点,必须至少是1主2从,独立数据库实例 MHA 管理节点,最好是独立一台机器 也可以放在其中一个节点上,本实例是manager端: dba04 node端: dba02,dba03,dba04 2.2 MHA软件的构成(perl语言开发) Manager工具包主要包括以下几个工具: mha4mysql-manager-0.56-0.el6.noarch.rpm ##只安装在管理节点上,可以单独一台 安装了perl的支持库就会有下面这些命令:
masterha_manger 启动MHA masterha_check_ssh 检查MHA的SSH配置状况 masterha_check_repl 检查MySQL复制状况 masterha_master_monitor 检测master是否宕机 masterha_check_status 检测当前MHA运行状态 masterha_master_switch 控制故障转移(自动或者手动) masterha_conf_host 添加或删除配置的server信息 Node工具包主要包括以下几个工具: mha4mysql-node-0.56-0.el6.noarch.rpm ##需要安装在所有节点上 这些工具通常由MHA Manager的脚本触发,无需人为操作 save_binary_logs 保存和复制master的二进制日志 apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的 purge_relay_logs 清除中继日志(不会阻塞SQL线程) 3. MHA 配置过程细节说明 3.1 软连接,必须要做。 ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog ln -s /application/mysql/bin/mysql /usr/bin/mysql MHA去调用这两个命令的时候,直接去找的/usr/bin/ 下面 3.2 互信 dba02:192.168.189.133 rm -rf /root/.ssh ssh-keygen cd /root/.ssh mv id_rsa.pub authorized_keys scp -r /root/.ssh 192.168.189.134:/root scp -r /root/.ssh 192.168.189.135:/root 各节点验证的目地,把第一次输入yes 给过滤掉。 db02、dba03、dba04 3台服务器都操作 ssh 192.168.189.133 date ssh 192.168.189.134 date ssh 192.168.189.135 date 3.3 安装软件包(所有节点) yum install perl-DBD-MySQL -y rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 3.4 在dba02主库中创建mha需要的用户 grant all privileges on *.* to mha@'192.168.%' identified by 'mha789'; 3.5 Manager软件安装(dba04_192.168.189.135),尽量装在最后一个节点。也可以单独一台服务器 yum install -y perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm 3.6 配置文件准备(dba04_192.168.189.135) -- 创建配置文件目录 mkdir -p /etc/mha -- 创建日志目录 mkdir -p /var/log/mha/app1 -- 编辑mha配置文件 cat > /etc/mha/app1.cnf <<EOF ##配置文件名,可以自定义 [server default] manager_log=/var/log/mha/app1/manager manager_workdir=/var/log/mha/app1 master_binlog_dir=/data/binlog ##所有主从节点的二进制日志都必须要打开,二进制日志目录名最好一样。 user=mha password=mha789 ping_interval=2 ##探测心跳的一个间隔时间,默认3次,3次都不能和主库通信的话,就会切换。 repl_password=repl520 repl_user=repl ssh_user=root [server1] hostname=192.168.189.133 port=3306 [server2] hostname=192.168.189.134 port=3306 [server3] hostname=192.168.189.135 port=3306 EOF 3.7 状态检查(dba04_192.168.189.135) masterha_check_ssh --conf=/etc/mha/app1.cnf masterha_check_repl --conf=/etc/mha/app1.cnf 3.8 开启MHA(dba04_192.168.189.135): nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null> /var/log/mha/app1/manager.log 2>&1 & --remove_dead_master_conf :自动 把故障节点,从配置文件中去掉。 --ignore_last_failover : 忽略最后一次切换,master 有一个保护机制,两次切换时间不能超过多少小时