MySQL高可用尼古拉斯讲析

  

,,,,,,尼古拉斯(MySQL | Master 高可用性)是一种基于主从模型的相当成熟的一种解决方案,我们对于主做一个高可用,使得哪怕在主数据库云服务器宕机时,我们的奴隶可以及时顶上,直接变成主主机,保证服务可靠的运行;

,

由于mha4mysql不存在于镜像仓库和epel中,所以需要下载rpm包,我下载的是

mha4mysql-manager -.noarch.rpm

mha4mysql-node -.noarch.rpm

,  MySQL高可用尼古拉斯讲析

建议尼古拉斯服务器和主服务器分开,否则主物理宕机的话,尼古拉斯也会宕机;

,

,

,

尼古拉斯:,,CentOS 7.5 b 172.16.75.2

主:CentOS 7.5 d 172.16.75.4

奴隶:,,CentOS 7.5 c 172.16.75.3

,

三台主机都需要进行;

,

因为如果大师宕机,奴隶需要顶上,所以奴隶和主人都二进制日志和中继日志;

,

配置文件:

(mysqld)   datadir=/var/lib/mysql   套接字=/var/lib/mysql/mysql.sock   #,Disabling  symbolic-links  is  recommended 用prevent  assorted  security 风险   符号链接=0   #,Settings  user 以及group 断开连接;ignored  when  systemd  is 使用。   #,If 你;need 用run  mysqld  under  a  different  user 或是团体,   #,customize  your  systemd  unit  file  for  mariadb  according 用   #,instructions 拷贝;http://fedoraproject.org/wiki/Systemd   ,   innodb_file_per_table=对   skip_name_resolve=对   server_id=401   log_bin=/var/lib/mysql/binlog   sync_binlog=1   innodb_flush_log_at_trx_commit=1   relay_log_purge=0   relay_log=relay_log   ,   (mysqld_safe)   日志错误=/var/log/mariadb/mariadb.log   pid文件=/var/运行/mariadb/mariadb.pid   ,   #   #,include  all  files 得到,config 目录   #   ! includedir /etc/my.cnf.d

,

配置文件:

(mysqld)   datadir=/var/lib/mysql   套接字=/var/lib/mysql/mysql.sock   #,Disabling  symbolic-links  is  recommended 用prevent  assorted  security 风险   符号链接=0   #,Settings  user 以及group 断开连接;ignored  when  systemd  is 使用。   #,If 你;need 用run  mysqld  under  a  different  user 或是团体,   #,customize  your  systemd  unit  file  for  mariadb  according 用   #,instructions 拷贝;http://fedoraproject.org/wiki/Systemd   ,   innodb_file_per_table=对   skip_name_resolve=对   server_id=301   read_only=对   relay_log=slavelog   relay_log_purge=0   log_bin=binlog   ,   (mysqld_safe)   日志错误=/var/log/mariadb/mariadb.log   pid文件=/var/运行/mariadb/mariadb.pid   ,   #   #,include  all  files 得到,config 目录   #   ! includedir /etc/my.cnf.d

然后其他配置不变,搭建主从模型;

,

1。下载完尼古拉斯的rpm包后,分别在对应的节点安装对应的安装包,通过查看mha4mysql-manager配置文件,全是二进制执行脚本。所以尼古拉斯的;

,

[root@slave1  ~] #, rpm  -ql  mha4mysql-manager/usr/bin/masterha_check_repl/usr/bin/masterha_check_ssh/usr/bin/masterha_check_status/usr/bin/masterha_conf_host/usr/bin/masterha_manager/usr/bin/masterha_master_monitor/usr/bin/masterha_master_switch/usr/bin/masterha_secondary_check/usr/bin/masterha_stop/usr/share/man/man1/masterha_check_repl.1.gz/usr/share/man/man1/masterha_check_ssh.1.gz/usr/share/man/man1/masterha_check_status.1.gz/usr/share/man/man1/masterha_conf_host.1.gz/usr/share/man/man1/masterha_manager.1.gz/usr/share/man/man1/masterha_master_monitor.1.gz/usr/share/man/man1/masterha_master_switch.1.gz/usr/share/man/man1/masterha_secondary_check.1.gz/usr/share/man/man1/masterha_stop.1.gz/usr/share/perl5/vendor_perl/尼古拉斯/Config.pm/usr/share/perl5/vendor_perl/尼古拉斯/DBHelper.pm/usr/share/perl5/vendor_perl/尼古拉斯/FileStatus.pm/usr/share/perl5/vendor_perl/尼古拉斯/HealthCheck.pm/usr/share/perl5/vendor_perl/尼古拉斯/ManagerAdmin.pm/usr/share/perl5/vendor_perl/尼古拉斯/ManagerAdminWrapper.pm/usr/share/perl5/vendor_perl/尼古拉斯/ManagerConst.pm/usr/share/perl5/vendor_perl/尼古拉斯/ManagerUtil.pm/usr/share/perl5/vendor_perl/尼古拉斯/MasterFailover.pm/usr/share/perl5/vendor_perl/尼古拉斯/MasterMonitor.pm/usr/share/perl5/vendor_perl/尼古拉斯/MasterRotate.pm/usr/share/perl5/vendor_perl/尼古拉斯/SSHCheck.pm/usr/share/perl5/vendor_perl/尼古拉斯/Server.pm/usr/share/perl5/vendor_perl/尼古拉斯ServerManager.pm

MySQL高可用尼古拉斯讲析