• ADADADADAD

    MySQL—MMM高可用群集的搭建(全过程,纯干货~~)[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:57:03

    作者:文/会员上传

    简介:

    本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:其中,角色HostsIP地址应用属性

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:

    其中,

    角色HostsIP地址应用属性VIPmaster1master192.168.142.135write192.168.142.188master2backup192.168.142.132write|read192.168.142.188slave1slave192.168.142.136read192.168.142.200, 192.168.142.210slave2slave192.168.142.137read192.168.142.200, 192.168.142.210monitormonitor192.168.142.143moitor无VIP具体配置步骤一、实验环境配置

    配置ALI云源(若已安装可跳过)

    这里以master1作示范,实际五台均需要安装

    [root@master1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[root@master1 ~]# yum -y install epel-release[root@master1 ~]# yum clean all && yum makecache

    给所有主从服务器安装MySQL,并配置

    [root@master1 ~]# yum install mysql -y[root@master1 ~]# vim /etc/my.cnf#修改配置文件##server id不能一样server-id =log-bin = zhu-binlog-slave-updates = ture##开启主从同步sync_binlog = 1 ##二进制文件立即写入auto_increment_increment=2 ###增量为2 auto_increment_offset=1 ######起始值为1[root@master1 ~]# systemctl restart mysqld[root@master1 ~]# systemctl enable mysqld
    二、配置主主同步(两个主服务器相互复制,互相平级)

    m1给m2从权限,m2给m1从权限

    [root@master1 ~]# mysql -u root -pgrant replication slave on *.* to 'myslave'@'192.168.142.%' identified by 'asd123';#允许从服务器使用myslave账户在主服务器上进行复制操作(两台主均要授权)show master status;+------------------+----------+--------------+--------------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+--------------------------+| mysql_bin.000001 |245 || mysql,information_schema |+------------------+----------+--------------+--------------------------+1 row in set (0.00 sec)#查看作为主服务器的信息,关键点为position号码change master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='File',master_log_pos=position号码;##授予权限(m1为m2的主,m2为m1的主)start slave;show slave status\GSlave_IO_Running: YesSlave_SQL_Running: Yes#查看作为从服务器的信息,是否同步开启
    三、进行主从同步(两台从指一台同一台主)

    配置两台从服务器指向master1

    [root@slave1 ~]# vim /etc/my.cnfserver-id = 6#不能有相同的log-bin=mysql-binlog-slave-updates=turesync_binlog = 1[root@slave1 ~]# systemctl restart mysqld[root@slave1 ~]# netstat -atnp | grep 3306tcp6 00 :::3306 :::*LISTEN38831/mysqld#提权,指向master1(两台从操作相同!!!!!)[root@slave1 ~]# mysql -uroot -pchange master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='主服务器查看到的信息',master_log_pos=号码;##授予权限(slave1、slave2为master1的从)start slave;show slave status\GSlave_IO_Running: YesSlave_SQL_Running: Yes#查看作为从服务器的信息,是否同步开启
    四、所有服务器安装并配置MMM

    修改mmm_common配置文件

    [root@master1 ~]# yum -y install mysql-mmm*#修改MMM配置文件[root@master1 ~]# vim /etc/mysql-mmm/mmm_common.confcluster_interface ens33......replication_usermyslave #从服务器访问主服务器账户replication_passwordasd123agent_usermmm_user#MMM用户账户agent_password123123<host db1>ip192.168.142.135#master1的IP地址modemasterpeerdb2</host><host db2>ip192.168.142.132#master2的IP地址modemasterpeerdb1</host><host db3>ip192.168.142.136#slave1的IP地址modeslave</host><host db4>ip192.168.142.137#slave2的IP地址modeslave</host><role writer>hosts db1, db2ips 192.168.142.188 ###VIP虚拟IP地址modeexclusive</role><role reader>hosts db3, db4ips 192.168.142.200, 192.168.142.210###VIP虚拟IP地址modebalanced</role>#scp远程复制,将配置远程推送[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.132:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.136:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.137:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.143:/etc/mysql-mmm/

    修改mmm_monitor配置文件(仅monitor监听端)

    [root@localhost ~]# vim /etc/mysql-mmm/mmm_mon.conf<monitor>......ping_ips192.168.142.135,192.168.142.132,192.168.142.136,192.168.142.137 #所有主从服务器IP地址auto_set_online 5#等待上线时间<host default>monitor_usermmm_monitor ##创建监控用户monitor_password123123</host>

    在所有主从数据库中(MMM用户、监控用户)进行提权

    [root@master1 ~]# mysql -u root -pgrant super,replication client,process on *.* to 'mmm_user'@'192.168.142.%' identified by '123123';grant replication client on *.* to 'mmm_monitor'@'192.168.142.%' identified by '123123';flush privileges##每台主从都要提权

    修改agant配置文件(每台主从都要修改)

    位置:/etc/mysql-mmm/mmm_agent.conf

    [root@master1 ~]# vim /etc/mysql-mmm/mmm_agent.confthis db1(对应的角色)
    五、开启服务

    所有主从服务器开启mmm_agant服务

    [root@master1 ~]# systemctl start mysql-mmm-agent.service [root@master1 ~]# systemctl enable mysql-mmm-agent.service 

    监控端开启mmm_monitor服务

    [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start mysql-mmm-monitor.service[root@localhost ~]# mmm_control show ##查看监控状态
    六、验证结果
    [root@localhost mysql-mmm]# mmm_control showdb1(192.168.142.135) master/ONLINE. Roles: writer(192.168.18.250)db2(192.168.142.132) master/ONLINE. Roles: db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251)db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//利用命令调整虚拟IP切换至master2:[root@localhost mysql-mmm]# mmm_control move_role writer db2OK: Role 'writer' has been moved from 'db1' to 'db2'. Now you can wait some time and check new roles info![root@localhost mysql-mmm]# mmm_control showdb1(192.168.142.135) master/ONLINE. Roles: db2(192.168.142.132) master/ONLINE. Roles: writer(192.168.18.250)db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251)db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//检测所有状态是否都正常:[root@localhost mysql-mmm]# mmm_control checks alldb4ping [last change: 2019/11/25 15:25:54]OKdb4mysql[last change: 2019/11/25 15:25:54]OKdb4rep_threads[last change: 2019/11/25 15:25:54]OKdb4rep_backlog[last change: 2019/11/25 15:25:54]OK: Backlog is nulldb2ping [last change: 2019/11/25 15:25:54]OKdb2mysql[last change: 2019/11/25 15:25:54]OKdb2rep_threads[last change: 2019/11/25 15:25:54]OKdb2rep_backlog[last change: 2019/11/25 15:25:54]OK: Backlog is nulldb3ping [last change: 2019/11/25 15:25:54]OKdb3mysql[last change: 2019/11/25 15:25:54]OKdb3rep_threads[last change: 2019/11/25 15:25:54]OKdb3rep_backlog[last change: 2019/11/25 15:25:54]OK: Backlog is nulldb1ping [last change: 2019/11/25 15:25:54]OKdb1mysql[last change: 2019/11/25 15:25:54]OKdb1rep_threads[last change: 2019/11/25 15:25:54]OKdb1rep_backlog[last change: 2019/11/25 15:25:54]OK: Backlog is null
    以上就是MMM群集搭建的全过程,感谢阅读!!
    MySQL—MMM高可用群集的搭建(全过程,纯干货~~).docx

    将本文的Word文档下载到电脑

    推荐度:

    下载