Centos7 下 mysql5.7-mmm 高可用群集
admin
2023-04-26 22:22:53
0次

Centos7 下 mysql5.7-mmm 高可用群集

MMM介绍

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

实验准备

4台安装mysql5.7服务的设备
1台用来安装mmm的centos7设备

实验步骤

关闭防火墙自启动,以及相关功能和增强性安全功能

 systemctl stop firewalld.service 
 setenforce 0

配置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

修改mysql服务器的配置文件

vim /etc/my.cnf
修改mysqld下面的内容
[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
character_set_server=utf8
log_bin=mysql_bin
server_id=1
log_slave_updates=true
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

systemctl restart mysqld

-------没有问题后,把配置文件复制到其它3台数据库服务器上并启动服务器-----

scp /etc/my.cnf root@192.168.100.101:/etc/

scp /etc/my.cnf root@192.168.100.102:/etc/

scp /etc/my.cnf root@192.168.100.103:/etc/
-----注意:配置文件中的server_id 要修改-----

配置主主复制,两台主服务器相互复制

show master status; 
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000002 |      339 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)    ##记录日志文件名称和 位置值,在两台主上查看。

----在m1上为m2授予从的权限,在m2上也要为m1授予从的权限---

grant replication slave on *.* to 'replication'@'192.168.100.%' identified by '123456'; ##两台主服务器都执行,从服务器不需要

change master to master_host='192.168.100.101',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;

-----注意,在m1上要指定m2上的日志文件名,和位置参数-----在m2上要反过来。

start slave;

show slave status;

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

-------在另一台主上做----要指定m1的日志和位置参数---
change master to master_host='192.168.100.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;

start slave;

show slave status;

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

配置主从复制

change master to master_host='192.168.100.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;

start slave;

show slave status;

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

安装MMM

在所有服务器上安装-----注意,epel源要配置好

yum -y install mysql-mmm*

配置mmm

cd /etc/mysql-mmm/

vi mmm_common.conf ##所有主机上都要配置,直接复制多份


    cluster_interface       ens33
    ……
    replication_user        replication
    replication_password    123456
    agent_user              mmm_agent
    agent_password          123456


    ip      192.168.100.100
    mode    master
    peer    db2



    ip      192.168.100.101
    mode    master
    peer    db1



    ip      192.168.100.102
    mode    slave



    ip      192.168.100.103
    mode    slave



    hosts   db1, db2
    ips     192.168.100.200
    mode    exclusive



    hosts   db3, db4
    ips     192.168.100.201, 192.168.100.202
    mode    balanced


scp mmm_common.conf root@192.168.100.100:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.100.101:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.100.102:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.100.103:/etc/mysql-mmm/   ## 复制给mysql服务器

------------------在monitor服务器上配置----
cd /etc/mysql-mmm/ //改密码

vi mmm_mon.conf


    monitor_user        mmm_monitor
    monitor_password    123456


--------------在所有数据库上为mmm_agent授权-----
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.100.%' identified by '123456';

--------------在所有数据库上为mmm_moniter授权-----
grant replication client on *.* to 'mmm_monitor'@'192.168.100.%' identified by '123456';

flush privileges;

---------------修改所有数据库的mmm_agent.conf----

vi /etc/mysql-mmm/mmm_agent.conf

this db1   ##主1 主2 从1 从2  分别为 db{1,2,3,4}

--------------在所有数据库服务器上启动mysql-mmm-agent---

systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service

------------------在monitor服务器上配置------
cd /etc/mysql-mmm/
vi mmm_mon.conf

……
 ping_ips            192.168.100.100,192.168.100.101,192.168.100.102,192.168.100.103 ##数据库服务器地址

 auto_set_online     10

systemctl start mysql-mmm-monitor.service   ##启动mysql-mmm-monitor

 mmm_control show    ##查看各节点的情况
  db1(192.168.100.100) master/ONLINE. Roles: writer(192.168.100.200)
  db2(192.168.100.101) master/ONLINE. Roles: 
  db3(192.168.100.102) slave/ONLINE. Roles: reader(192.168.100.201)
  db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.202)

mmm_control checks all   ## 需要各种OK

mmm_control move_role writer db1   ##手动转换角色

测试

关掉主1 的mysql服务
systemctl stop mysqld
mmm_control show    ##查看各节点的情况
  db1(192.168.100.100) master/HARD_OFFLINE. Roles: 
  db2(192.168.100.101) master/ONLINE. Roles: writer(192.168.100.200)
  db3(192.168.100.102) slave/ONLINE. Roles: reader(192.168.100.201)
  db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.202)

关掉从1的mysql服务
mmm_control show    ##查看各节点的情况
 db1(192.168.100.100) master/HARD_OFFLINE. Roles: 
  db2(192.168.100.101) master/ONLINE. Roles: writer(192.168.100.200)
  db3(192.168.100.102) slave/HARD_OFFLINEE. Roles: 
  db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.201,192.168.100.202)

至此,通过mmm完成mysql高可用群集

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...