MySQL尼古拉斯应用实践(方案实战)

  

1,环境与条件
已存在主从架构环境

           主机名   IP地址   主从角色   尼古拉斯角色               leo1   192.168.3.2   主   MHA-node         leo2   192.168.3.3   奴隶   MHA-node         leo3   192.168.3.4   奴隶   MHA-node, MHA-manager         贵宾   192.168.3.6                  

主从确保主从状态正常

  
 <代码> mysql>显示奴隶状态\ G;
  IO与SQL进程为是的 
  

参数更改

  
 <代码> relay_log_purge=0 #不自动删除中继日志以便于宕机修复数据
  log_bin=/数据/日志/leo-bin #从库开启binlog以便于宕机修复数据
  expire_logs_days=7
  log-slave-updates=1  
  

2,配置SSH
尼古拉斯在运行是会通过SSH服务连接到其他节点服务器进行检测或复制数据,因此需要集群内可免密码登陆。
在leo1-3内分别执行如下命令:

  
 <代码> ssh - keygen - t rsa
  ssh-copy-id -我~/. ssh/id_rsa。酒吧192.168.3.2
  ssh-copy-id -我~/. ssh/id_rsa。酒吧192.168.3.3
  ssh-copy-id -我~/. ssh/id_rsa。酒吧192.168.3.4  
  

3,安装尼古拉斯节点
对所有mysql节点安装尼古拉斯节点

  
 <代码> 1)安装perl语言
  yum安装perl-DBD-MySQL - y # # #因为尼古拉斯用perl开发
  2)安装尼古拉斯节点
  rpm -ivh mha4mysql el6.noarch.rpm——节点- 0.56 - 0.
  下载地址
  https://code.google.com/archive/p/mysql-master-ha/downloads
  3)创建命令软连接方便使用:
  ls - s/app/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlog
  ls - s/app/mysql/bin/mysql/usr/bin/mysql
  4)检查尼古拉斯账户
  所有特权授予
  (server1)
  主机名=192.168.3.2
  端口=3306
  (server2)
  主机名=192.168.3.4
  端口=3306
  candidate_master=1 # #设定此参数后server2会将优先升为主库
  check_repl_delay=0 # #尼古拉斯忽律主从复制延迟
  (server3)
  主机名=192.168.3.3
  端口=3306  
  

6,启动及测试

  
 <代码> 1)检测ssh免密登陆 
  
 <代码> master_check_ssh相依=/etc/尼古拉斯app1.cnf  
  
 <代码> 2)检测主从复制状态 
  
 <代码> master_check_repl相依=/etc/尼古拉斯app1.cnf  
  
 <代码> 3)启动尼古拉斯 
  
 <代码> nohup master_manager - conf=/etc/尼古拉斯/app1.cnf——remove_dead_master_conf——ignore_last_failver & lt;/dev/null祝辞/var/log/mha/app1/manager.日志2祝辞,1,
  # # remove_dead_master_conf在配置文件中删除主信息
  # # ignore_last_failver忽律上一次故障切换 
  

7日配置VIP漂移

  
 <代码> 1)利用keepalive
  2)在配置文件中填入以下参数
  master_ip_failover_script=/usr/地方/bin/master_ip_failover
  3)在脚本中加入以下参数
  我=$ vip=?92.168.3.6”;
  我的关键=0美元
  我美元ssh_start_vip="/sbin/ifconfig eth0:关键vip美元”;
  我美元ssh_stop_vip="/sbin/ifconfig eth0:美元关键”;
  
  chmod + x/etc/mha/master_ip_failover  

MySQL尼古拉斯应用实践(方案实战)