配置方案
主机 地址 角色 虚拟IP
db2 172.16.24.7 master 172.16.24.77
db3 172.16.24.8 master 172.16.24.88
db4 172.16.24.9 slave 172.16.24.99
db1 172.16.24.6 MMM
(注:四台主机都要装上mysql)
一、配置mysql主主复制
1)编辑配置文件(主机172.16.24.7)
[root@localhost ~]# vim /etc/my.cnf
2)编辑配置文件(172.16.24.8)
[root@localhost ~]# vim /etc/my.cnf
3)编辑配置文件(172.16.24.9)
server-id = 3
log-bin=mysql-bin
log-slave-updates
4)编辑配置文件(172.16.24.6)
server-id = 4
log-bin=mysql-bin
log-slave-updates
5)、创建具有复制权限的mysql用户(172.16.24.7、172.16.24.8)
server1 (172.16.24.7)
mysql> grant replication slave on *.* to 'myuser'@'172.16.24.8' identified by 'mypass';
mysql> grant replication slave on *.* to 'myuser'@'172.16.24.9' identified by 'mypass';
mysql> flush privileges;
server2(172.16.24.8)
mysql> grant replication slave on *.* to 'myuser'@'172.16.24.7' identified by 'mypass';
mysql> grant replication slave on *.* to 'myuser'@'172.16.24.9' identified by 'mypass';
mysql> flush privileges;
二、主主复制数据(172.16.24.7、172.16.24.8)
1)同步数据(db3同步db2的数据)
server1:(172.16.24.7)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 346 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
server2:(172.16.24.8)
mysql> change master to MASTER_HOST='172.16.24.7',MASTER_USER='myuser',MASTER_PASSWORD='mypass',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=346;
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.24.7
Master_User: myuser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 346
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
2)同步数据(db2同步db3的数据)
server2:(172.16.24.8)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 505 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
server1:(172.16.24.7)
mysql> change master to MASTER_HOST='172.16.24.8',MASTER_USER='myuser',MASTER_PASSWORD='mypass',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=505;
Query OK, 0 rows affected (0.08 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.24.8
Master_User: myuser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 505
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
三、安装mysql-mmm及配
1)安装mysql-mmm(四个主要都要安装)
[root@localhost ~]# yum install mysql-mmm*
2)修改配置文件(172.16.24.6)
[root@localhost ~]# vim /etc/mysql-mmm/mmm_common.conf
<host default>
cluster_interface eth0
pid_path /var/run/mysql-mmm/mmm_agentd.pid
bin_path /usr/libexec/mysql-mmm/
replication_user slave
replication_password slave
agent_user mmm_agent
agent_password mmm_agent
</host>
<host db2>
ip 172.16.24.7
mode master
peer db3
</host>
<host db3>
ip 172.16.24.8
mode master
peer db2
</host>
<host db4>
ip 172.16.24.9
mode slave
</host>
<role writer>
hosts db2, db3
ips 172.16.24.77
mode exclusive
</role>
<role reader>
hosts db2,db3,db4
ips 172.16.24.77,172.16.24.88,172.16.24.99
mode balanced
</role>
3)发送到其它3台主机
[root@localhost mysql-mmm]# scp mmm_common.conf 172.16.24.7:/etc/mysql-mmm/
[root@localhost mysql-mmm]# scp mmm_common.conf 172.16.24.8:/etc/mysql-mmm/
[root@localhost mysql-mmm]# scp mmm_common.conf 172.16.24.9:/etc/mysql-mmm/
4)添加agentd使用的mysql用户,db2,db3,db4都要添加
mysql>grant super,replication client,process on *.* to 'mmm_agent'@'172.16.24.6' identified by 'mmm_agent';
mysql>grant super,replication client,process on *.* to 'mmm_agent'@'172.16.24.7' identified by 'mmm_agent';
mysql>grant super,replication client,process on *.* to 'mmm_agent'@'172.16.24.8' identified by 'mmm_agent';
mysql>grant super,replication client,process on *.* to 'mmm_agent'@'172.16.24.9' identified by 'mmm_agent';
5)修改的/etc/mysql-mmm/mmm_agent.conf 配置文件(四台主机都要改,要跟你的主机名对上)
db2:(172.16.24.7)
[root@localhost ~]# cat /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
# The 'this' variable refers to this server. Proper operation requires
# that 'this' server (db1 by default), as well as all other servers, have the
# proper IP addresses set in mmm_common.conf.
this db2
db3:(172.16.24.8)
include mmm_common.conf
# The 'this' variable refers to this server. Proper operation requires
# that 'this' server (db1 by default), as well as all other servers, have the
# proper IP addresses set in mmm_common.conf.
this db3
其它略…………………
6)启动mysql-mmm-agent(172.16.24.7,172.16.24.8,172.16.24.9)
[root@localhost ~]# /etc/init.d/mysql-mmm-agent start
Starting MMM Agent Daemon: [ OK ]
7)启动mysql-mmm-monitor(172.16.24.6)
[root@localhost ~]# /etc/init.d/mysql-mmm-monitor start
Starting MMM Monitor Daemon: [ OK ]
到此配置结束