基于尼古拉斯架构的MySQL高可用切换架构
环境:
?CentOS7 + MySQL 5.7 + GTID业务系统:讲
?node1: 192.168.1.109端口:3109
?node2: 192.168.1.110端口:3110
?贵宾:192.168.1.88
?经理:192.168.1.8
1。背景:
?除了galera集群(Mariadb集群、GroupReplication PXC)和keepalive之外,业界广泛使用的MySQL高可用就是尼古拉斯架构了。
?尼古拉斯作者在离开DeNA加入facebook后就极少更新了这个工具了。
2。安装:
?rpm包安装的方式最简单,但是作者在27天前增加了对从库上启用了super-read-only参数的优化,简而言之就是:当开启这个参数后,有可能会发生配置文件中的用户无法对差异事务进行应用的问题。于是增加了判断super-read-only参数是否开启的逻辑判断,若开启,则先关闭此参数,然后进行应用差异事务然后重新开启。
?所以这里我们采用编译Github上最新的代码的办法进行安装。地址为:
?https://github.com/yoshinorim/mha4mysql-manager
?https://github.com/yoshinorim/mha4mysql-node
在node1和node2上:
<代码类=" language-shell "> #创建工作文件夹 mkdir - p/数据/尼古拉斯/#下载源码包 wget https://codeload.github.com/yoshinorim/mha4mysql-node/zip/master - o/usr/local/src/mha-node.zip wget https://codeload.github.com/yoshinorim/mha4mysql-manager/zip/master - o/usr/local/src/mha-manager.zip #解压 解压缩/usr/local/src/mha-manager。zip - d/usr/local/src 解压缩/usr/local/src/mha-node.zip - d/usr/local/src #安装perl及其相关依赖 百胜是安装perl perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder perl-Parallel-ForkManager perl-Config-Tiny 百胜是安装的perl(公司::模块::安装) 百胜是安装perl(测试::没有:模块)” 百胜是安装perl(日志:调度)的 #编译管理端 cd/usr/local/src/mha4mysql-manager-master/perl Makefile。PL #提示时输入y 使,,使安装 #编译节点端 cd/usr/local/src/mha4mysql-node-master/perl makefile . pl 使,,使安装 #更改配置文件 cp/usr/#在数据库中创建用于尼古拉斯系统工作的管理员权限账号 # node1 mysql——登录路径=3109 - e '创建用户mha@ 192.168.1.8”被“sa123456” mysql——登录路径=3109 - e '>的所有特权授予#创建工作目录 mkdir - p/数据/尼古拉斯/讲 #下载源码包 wget https://codeload.github.com/yoshinorim/mha4mysql-node/zip/master - o/usr/local/src/mha-node.zip wget https://codeload.github.com/yoshinorim/mha4mysql-manager/zip/master - o/usr/local/src/mha-manager.zip #解压 解压缩/usr/local/src/mha-manager。zip - d/usr/local/src 解压缩/usr/local/src/mha-node.zip - d/usr/local/src #安装perl及其相关依赖 百胜是安装perl perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder perl-Parallel-ForkManager perl-Config-Tiny 百胜是安装的perl(公司::模块::安装) 百胜是安装perl(测试::没有:模块)” 百胜是安装perl(日志:调度)的 #编译管理端 cd/usr/local/src/mha4mysql-manager-master/perl Makefile。PL #提示时输入y 使,,使安装 #编译节点端 cd/usr/local/src/mha4mysql-node-master/perl makefile . pl 使,,使安装 #创建配置文件 cp/conf/*/etc/mha/usr/local/src/mha4mysql-manager-master/样品 mv/etc/mha/app1.cnf/etc/mha/mainBusiness.cnf 代码>
配置文件内容:
<代码类=" language-perl "> manager_workdir=/数据/尼古拉斯讲#设置尼古拉斯的工作目录 manager_log=/数据/尼古拉斯讲/经理。日志#尼古拉斯经理的日志输出 remote_workdir=/数据/尼古拉斯#预设尼古拉斯节点端的工作目录 master_binlog_dir=/数据/mysql/3109/日志/,/数据/mysql/3110/日志/#预设尼古拉斯节点端的binlog目录 # secondary_check_script=masterha_secondary_check - s - s 192.168.1.110 192.168.1.109 master_ip_failover_script=/etc/mha/master_ip_failover #故障时VIP更改 master_ip_online_change_script=/etc/mha/master_ip_online_change #在线切换时VIP更改 report_script=/etc/mha/send_report #报警脚本 ping_interval=1 #设置尼古拉斯经理的检测间隔(1秒) (server1) 主机名=192.168.1.109 端口=3109 ssh_user=根 ssh_port=22 candidate_master=1 #设置该节点是否可以提升为主,1为是,0否 check_repl_delay=0 #发生故障后是否检查本实例主从落后程度,0否,1是 (server2) 主机名=192.168.1.110 端口=3110 ssh_user=根 ssh_port=22 candidate_master=1 #设置该节点是否可以提升为主,1为是,0否 check_repl_delay=0 #发生故障后是否检查本实例主从落后程度,0否,1是【MySQL】【高可用】基于尼古拉斯架构的MySQL高可用故障自动切换架构