侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

MySQL mmm高可用群集

2024-05-15 星期三 / 0 评论 / 0 点赞 / 99 阅读 / 7219 字

说明:mmm是一套支持双主故障切换和双主日常管理的脚本程序。基于perl实现,用来对mysql replication进行监控和故障迁移。虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另

说明:
mmm是一套支持双主故障切换和双主日常管理的脚本程序。基于perl实现,用来对mysql replication进行监控和故障迁移。虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说mmm这套程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。

.
.
拓扑图:

.
.
实验环境:

.
.
实验步骤如下:
.
.
1 . 在四台数据库布署安装mariadb

systemctl stop firewalld.servicesetenforce 0    #关闭防火墙wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #从远程终端获取yum仓库配置,来自阿里云配置文件yum install epel-release -y     #安装epel源yum clean all && yum makecache  #清空缓存,加载缓存源数据 yum install mariadb-server mariadb -y   #安装mariadb

.
.
2 . 在四台服务器上修改配置文件

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   #mysql与information_schema两个数据库不生成二进制日志文件character_set_server=utf8   #字符集log_bin=mysql_bin   #二进制日志功能开启server_id=1 #其它id号不能相同log_slave_updates=true  #同步开启sync_binlog=1   #同步二进制文件auto_increment_increment=2  #增量auto_increment_offset=1     #起始值,防止冲突


systemctl start mariadb.service #开启mariadb
.
.
3 .配置主主复制,两台主服务器相互复制
show master status; #查看日志文件名与偏移量
两台都查看,接下来需要输入对方主机的日志文件名与偏移量

grant replication slave on *.* to 'replication'@'192.168.200.%' identified by '123123'; #授权登录change master to master_host='对方主服务器ip地址',master_user='replication',master_password='123123',master_log_file='mysql_bin.000003',master_log_pos=245;  #给凭证start slave;    #开启同步功能


show slave status /G; #查看同步结果

.
.
4 . 两台从服务器向主服务器同步

change master to master_host='主服务器 ip地址',master_user='replication',master_password='123123',master_log_file='mysql_bin.000003',master_log_pos=245;start slave;


.
.

5 . 四台服务器

yum install mysql-mmm -y    #基于epel源基础配置的cd /etc/mysql-mmm/vim mmmcommon.conf < host default>    clusterinterface       ens33    #更改网卡名称    pidpath                /run/mysql-mmm-agent.pid    binpath                /usr/libexec/mysql-mmm/    replicationuser        replication  #更改用户    replicationpassword    123123   #更改密码    agentuser              mmmagent    agentpassword          123123   #更改代理密码*</host> . . . . . .




.
.

6 .将配置文件远程复制给其它服务器

scp mmmcommon.conf [email protected]:/etc/mysql-mmm/scp mmmcommon.conf [email protected]:/etc/mysql-mmm/scp mmmcommon.conf [email protected]:/etc/mysql-mmm/   #远程复制给其它服务器


.
.

7 .设置监控服务器

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #从远程终端获取yum仓库配置,来自阿里云yum install epel-release -yyum install mysql-mmm -y主服务器远程复制配置文件给监控服务器scp mmm_common.conf root@监控服务器ip地址:/etc/mysql-mmm/cd /etc/mysql-mmm/   vim mmm_mon.conf <monitor>    ip                  127.0.0.1    pid_path            /run/mysql-mmm-monitor.pid    bin_path            /usr/libexec/mysql-mmm    status_path         /var/lib/mysql-mmm/mmm_mond.status    ping_ips            192.168.200.129,192.168.200.128,192.168.200.130,192.168.200.131    #监控所有服务器范围--ip地址    auto_set_online     10  #自动上线时间,单位s   .....<host default>    monitor_user        mmm_monitor    monitor_password    123123      #更改密码</host>


.
.
8 .在所有数据库上为mmm_agent代理授权

grant super,replication client,process on *.* to 'mmm_agent'@'192.168.200.%' identified by '123123';在所有数据库上为mmm_monitor监控帐户授权grant replication client on *.* to 'mmm_monitor'@'192.168.200.%' identified by '123123';


.
.
9 .在四台服务器上修改db值
vim mmm_agent.conf 修改db1~4数值

systemctl start mysql-mmm-agent.service #开启服务
.
.
10 .回到监控服务器

systemctl start mysql-mmm-monitor.service   #启用监控服务mmm_control show    #查看各服务器节点情况


此时可以观察到各服务器节点状况。可以关掉一台服务器,然后查看监控。会看到关闭的服务器虚拟ip被其它服务接替。

广告 广告

评论区