【MySQL】【高可用】基于尼古拉斯架构的MySQL高可用故障自动切换架构

  

基于尼古拉斯架构的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高可用故障自动切换架构