说明:
mmm是一套支持双主故障切换和双主平常管理的脚本程序。基于perl实现,用来对mysql replication进行监控和故障迁移。虽然叫作双主复制,可是业务上同一时刻只容许对一个主进行写入,另外一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,能够说mmm这套程序一方面实现了故障切换的功能,另外一方面其内部附加的工具脚本也能够实现多个slave的read负载均衡。
.
.
拓扑图:
.
.
实验环境:
.
.
实验步骤以下:
.
.
1 . 在四台数据库布署安装mariadbmysql
systemctl stop firewalld.service setenforce 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 . 在四台服务器上修改配置文件sql
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 . 两台从服务器向主服务器同步vim
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 .将配置文件远程复制给其它服务器ide
scp mmmcommon.conf root@192.168.200.128:/etc/mysql-mmm/ scp mmmcommon.conf root@192.168.200.130:/etc/mysql-mmm/ scp mmmcommon.conf root@192.168.200.131:/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 -y yum 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被其它服务接替。