MariaDB-MMM高可用群集

发布时间:2020-07-08 11:15:44 作者:cchenyz
来源:网络 阅读:29504

什么是MMM?

MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡

MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟IP,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全保证数据的一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度地保证业务可用性的场景。对于那些数据一致性要求很高的业务,非常不建议采用MMM这种高可用架构。

MMM是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理MySQL Master-Master复制的配置。

关于MMM高可用架构的说明如下

什么是MariaDB数据库?

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。

项目环境

本次项目使用五台centos7服务器模拟搭建

主机 操作系统 IP地址 VIP 主要软件
MariaDB-m1 主服务器 CentOS-7-x86_64 172.16.10.23 172.16.10.100 MariaDB、MMM
MariaDB-m2 主服务器 CentOS-7-x86_64 172.16.10.20 172.16.10.100 MariaDB、MMM
MariaDB-m3 从服务器 CentOS-7-x86_64 172.16.10.24 172.16.10.110 MariaDB、MMM
MariaDB-m4 从服务器 CentOS-7-x86_64 172.16.10.22 172.16.10.120 MariaDB、MMM
MariaDB-monitor CentOS-7-x86_64 172.16.10.21 MMM

MariaDB-MMM高可用群集

搭建MariaDB多主多从模式

安装MariaDB

配置ALI云源,安装epel-release源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum clean all && yum makecache   //清空所有,重新更新元数据缓存

配置epel源须在五台服务器上都操作

安装mariadb
yum -y install mariadb-server mariadb
关闭防火墙及selinux防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0

以上三个步骤在另外三台数据库服务器上一摸一样,重复三遍

配置mariadb配置文件

vim /etc/my.cnf
[mysqld]
log_error=/var/lib/mysql/mysql.err               //错误日志文件位置
log=/var/lib/mysql/mysql_log.log                 //访问日志文件位置
log_slow_queries=/var/lib/mysql_slow_queris.log  //慢日志文件位置
binlog-ignore-db=mysql,information_schema        //mysql,information_schema这两个数据库不生成二进制日志文件
character_set_server=utf8
log_bin=mysql_bin                                //二进制日志文件功能开启
server_id=10                                     //id每台都不相同
log_slave_updates=true                           //开启同步
sync_binlog=1                                    //1为安全值
auto_increment_increment=2
auto_increment_offset=1
开启服务
systemctl start mariadb    //开启服务
netstat -anpt | grep 3306  //查看服务状态

配置文件修改时,只需将原有的[mysqld]直接删除,大约九行。替换为以上内容,四台服务器(MariaDB-m1、MariaDB-m2、MariaDB-m3、MariaDB-m4)的修改方法基本一致,唯一的不同是server_id不可相同,只要不同即可。
MariaDB-MMM高可用群集

配置MariaDB-m1、MariaDB-m2主主模式

快速为其他服务器修改配置文件
scp /etc/mysql-mmm/mmm_common.conf root@172.16.10.20:/etc/mysql-mmm/
scp /etc/mysql-mmm/mmm_common.conf root@172.16.10.24:/etc/mysql-mmm/
scp /etc/mysql-mmm/mmm_common.conf root@172.16.10.22:/etc/mysql-mmm/
scp /etc/mysql-mmm/mmm_common.conf root@172.16.10.21:/etc/mysql-mmm/

MariaDB-MMM高可用群集

在数据库主机上修改/etc/mysql-mmm/mmm_agent.conf文件,根据不同主机,修改不同的名称
vim /etc/mysql-mmm/mmm_agent.conf
this db1  //按着顺序分别修改为db1、db2、db3、db4

MariaDB-MMM高可用群集

对所有数据库服务器进行一波安排
关闭防火墙及selinux防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0
启动服务,查看各节点状态
systemctl start mysql-mmm-monitor.service

MariaDB-MMM高可用群集
ERROR: Can't connect to monitor daemon!,如若出现报错,可尝试重启服务解决

查看监控服务器对所有数据库的监控是否完善
mmm_control checks all  //检查结果需为全部ok

MariaDB-MMM高可用群集

故障测试

停止m1,查看VIP是否为漂移到m2上
systemctl stop mariadb.service   //关闭m1

MariaDB-MMM高可用群集

systemctl start mariadb.service  //开启m1 主不会抢占

MariaDB-MMM高可用群集

停止m3,查看VIP漂移状态
systemctl stop mariadb.service   //关闭m3

MariaDB-MMM高可用群集

systemctl start mariadb.service   //开启m3,VIP会重新回到各自服务器上

MariaDB-MMM高可用群集

推荐阅读:
  1. Memcache高可用群集
  2. MHA高可用群集详细介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mariadb mmm 高可用群集

上一篇:Pytorch上下采样函数--interpolate

下一篇:React+EggJs如何实现断点续传的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》