初识MariaDB之7——MHA高能用
发布时间:2022-03-15 12:15:33 所属栏目:MySql教程 来源:互联网
导读:初识MariaDB之7MHA高可用: 一、背景介绍 在传统的MySQL一主一从或一主多从结构中,主节点存在单点故障隐患,为了解决该故障,进而引入了MHA高可用的方式。MHA由manager和node两部分组成,manager可以安装在一个独立的服务器上或非master角色的MySQL服务器
初识MariaDB之7——MHA高可用: 一、背景介绍 在传统的MySQL一主一从或一主多从结构中,主节点存在单点故障隐患,为了解决该故障,进而引入了MHA高可用的方式。MHA由manager和node两部分组成,manager可以安装在一个独立的服务器上或非master角色的MySQL服务器上,1个manager可以管多个node集合,每一个master/node集群称为一个application,所有集群可以使用一个配置文件或者为每个集群创建单独的配置文件,目前MHA最少由3个主机组成 二、实现原理 MHA是在MySQL主从复制基础上实现的高可用,其实现原理是: 在正常情况下,MHA的manager节点对所有node节点周期性进行健康状态检测,当MySQL的master节点出现故障时,MHA的manager试图从宕机的MySQL的master上将二进制日志保存到本地,并与所有node节点的中继日志进行对比,将拥有最新同步状态的slave主机提升为master主机,所有slave主机指向新的master主机。 三、实验环境 本次实验采用CentOS7.4系统,数据库版本5.5.56-MariaDB,MHA版本mha4mysql-manager-0.58。因为所有服务器之间要传输中继日志,并且还需要指定master,所有所有主机间要建立密钥认证,master和candidate节点需要创建用于从服务器复制的二进制日志的账号,MySQL每个服务器都需要创建可以指定master的账号,并且master和candidate节点不能开启relay_log_purge选项,为了最大程度的保证数据的不丢失,建议将candidate配置成半同步形式。 172.16.10.40/24 1.二进制日志,中继日志 2.复制账号,管理账号 3.中继日志不能裁剪 4.半同步master插件 node/candidate slave 172.16.10.50/24 1.二进制日志,中继日志 2.复制账号,管理账号 3.中继日志不能裁剪 4.半同步slave插件 5.只读模式 node slave 172.16.10.60/24 1.中继日志 2.只读模式 初识MariaDB之7——MHA高可用初识MariaDB之7——MHA高可用 四、准备操作 既然是集群时间同步和名称解析就需要提前完成,此处不过多介绍 1.所有主机互信 可以在一个主机生成一对密钥,将这对密钥和know_hosts文件拷贝给其余主机的方式,不需要所有主机都生成密钥对相互拷贝 [root@host3 ~]# ssh-keygen [root@host3 ~]# ssh-copy-id 172.16.10.30 [root@host3 ~]# ssh-copy-id 172.16.10.40 [root@host3 ~]# ssh-copy-id 172.16.10.50 [root@host3 ~]# ssh-copy-id 172.16.10.60 [root@host3 .ssh]# scp -r id_rsa known_hosts root@172.16.10.40:/root/.ssh/ [root@host3 .ssh]# scp -r id_rsa known_hosts root@172.16.10.50:/root/.ssh/ [root@host3 .ssh]# scp -r id_rsa known_hosts root@172.16.10.60:/root/.ssh/ 2.安装Mariadb数据库 [root@host4 ~]# yum install mariadb-server.x86_64 -y [root@host5 ~]# yum install mariadb-server.x86_64 -y [root@host6 ~]# yum install mariadb-server.x86_64 -y 3.Master主机操作 (1)修改配置文件 [root@host4 ~]# vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip_name_resolve=ON relay_log=mysql-relaylog relay_log_index=mysql-relaylog relay_log_purge=OFF slow_query_log=ON server-id=10 innodb_file_per_table=ON binlog_format=ROW log_bin=mysql-binlog log_slave_updates=ON (2) 开启并激活半同步插件 MariaDB [(none)]> install plugin rpl_semi_sync_master soname 'semisync_master.so'; MariaDB [(none)]> set global rpl_semi_sync_master_enabled=ON; (编辑:大连站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐