在当今信息化时代,数据的重要性不言而喻,作为世界上最流行的开源数据库管理系统之一,MySQL广泛应用于各类企业的核心业务系统中,随着业务的不断增长和复杂化,数据库的高可用性成为系统稳定运行的关键,本文将详细介绍如何使用MySQL-MMM(Master-Master replication manager for MySQL)搭建高可用架构,旨在提供一套有效的解决方案以确保系统的持续稳定运行。
1、MMM简介
2、MMM高可用架构说明
3、搭建MySQL-MMM
3.1 实验准备
3.2 搭建MySQL多主多从模式
3.2.1 配置主主复制
3.2.2 配置主从复制
3.2.3 测试主主、主从同步情况
3.3 安装配置MySQL-MMM
3.3.1 在所有服务器上安装MySQL-MMM
3.3.2 在master01上对MySQL-MMM进行配置
3.3.3 修改所有数据库服务器的代理配置文件mmm_agent.conf
3.3.4 在monitor监控服务器上修改监控配置文件mmm_mon.conf
3.3.5 在所有数据库上为mmm_agent(代理进程)授权
3.3.6 在所有数据库上为mmm_moniter(监控进程)授权
3.3.7 在所有数据库服务器上启动mysql-mmm-agent
3.3.8 在monitor服务器上启动mysql-mmm-monitor
3.3.9 在monitor服务器上测试群集
4、故障测试
5、客户端测试
6、总结
MMM即Master-Master replication manager for MySQL,是一套由Perl编写的用于管理和监控MySQL复制的脚本集合,它主要用来监控和管理MySQL Master-Master(双主)复制,虽然被称为双主复制,但在同一时刻,只允许一个主库提供写操作,另一个备选主库则提供读操作,以加速主主切换时的预热,MMM也提供了一些工具脚本来实现虚拟IP管理、备份和节点间的数据同步等功能。
MMM高可用架构通过多个组件协同工作,实现了高可用性和数据的一致性:
1、监控管理器(mmm_mond):负责所有的监控工作,决定和处理所有节点角色活动,此脚本需要在监控主机上运行。
2、代理进程(mmm_agentd):运行在每个MySQL服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置,此脚本需要在被监管机上运行。
3、控制脚本(mmm_control):一个简单的脚本,提供管理mmm_mon进程的命令。
MMM通过这些组件实现自动故障检测和转移,确保在任意时刻都有一个主库对外提供写操作,其他从库同步数据并提供读操作。
3.1 实验准备
我们准备了以下硬件和软件环境:
- 五台Linux服务器(四台用于MySQL数据库,一台用于监控)
- MySQL版本:5.7
- MMM版本:最新版本
服务器信息如下:
- master01(db1):192.168.80.11
- master02(db2):192.168.80.12
- slave01(db3):192.168.80.13
- slave02(db4):192.168.80.14
- monitor(监控服务器):192.168.80.15
3.2 搭建MySQL多主多从模式
3.2.1 配置主主复制
在master01和master02上配置主主复制,具体步骤如下:
1、停止防火墙:
systemctl stop firewalld
2、修改MySQL配置文件my.cnf
:
[mysqld] user=mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=3306 character-set-server=utf8 pid-file=/usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock server-id=1 # 每台Mysql主机的server-id不能相同 log-error=/usr/local/mysql/data/mysql_error.log # 错误日志 general_log=ON # 通用查询日志 general_log_file=/usr/local/mysql/data/mysql_general.log slow_query_log=ON # 慢查询日志 slow_query_log_file=mysql_slow_query.log long_query_time=5 binlog-ignore-db=mysql,information_schema # 不需要同步的库名 log-bin=mysql_bin # 开启二进制日志用于主从数据复制 log_slave_updates=true # 允许slave从master复制数据时可以写入到自己的二进制日志 sync_binlog=1 # "双1设置",MySQL在每写一次二进制日志时都会同步到磁盘中去 innodb_flush_log_at_trx_commit=1 # "双1设置",每次事务提交时MySQL都会把缓存的数据写入日志文件,并且刷到磁盘中去 auto_increment_increment=2 # 自增字段一次递增多少 auto_increment_offset=1 # 自增字段的起始值
3、将配置文件复制到其他三台数据库服务器并启动服务器:
scp /etc/my.cnf root@db[2-4]:/etc/my.cnf
3.2.2 配置主从复制
在两台主库上分别配置两台从库:
1、在master01和master02上创建复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
2、在从库slave01和slave02上配置连接主库:
[mysqld] master-host=192.168.80.11,port=3306,user=repl;password=repl123
3.2.3 测试主主、主从同步情况
1、查看主库和从库的二进制日志和IO线程状态:
SHOW MASTER STATUS\G; SHOW SLAVE STATUS\G;
2、确保主从复制正常,可以通过以下命令查看从库的复制延迟:
SHOW SLAVE STATUS\G;
3.3 安装配置MySQL-MMM
3.3.1 在所有服务器上安装MySQL-MMM
下载并安装MMM:
wget http://www.mysql-mmm.org/Downloads/mysql-mmm-2.6.2.tar.gz tar zxvf mysql-mmm-2.6.2.tar.gz -C /usr/local/
3.3.2 在master01上对MySQL-MMM进行配置
编辑mmm_common.cnf
文件:
[default] mmm_pid=/tmp/mmm_mond.pid mmm_user=mmm_user mmm_group=mmm_group log_basename=/var/log/mmm_mond.log log_level=info using_logrotate=yes log_archive=untar+gz log_gzip=5 log_archive_older=7 log_archive_count=5 log_archive_size=100m log_archive_nocompress=no
3.3.3 修改所有数据库服务器的代理配置文件mmm_agent.conf
编辑mmm_agent.cnf
文件:
[default] mmm_pid=/tmp/mmm_agentd.
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态