目录
192.168.195.139
192.168.195.140
192.168.195.141
其中,139和140配置相同(cpu,内存等),为主主,139和141为主从
一,配置主主复制及主从同步集群
1,建立复制账号
mysql> select user,host from mysql.user where user="zhaoheng";
+----------+---------------+
| user | host |
+----------+---------------+
| zhaoheng | 192.168.195.% |
+----------+---------------+
1 row in set (0.01 sec)
2,配置基于日志点的复制
<1>对节点1数据备份,并初始化节点2,3 的数据
mysqldump -u root -p --single-transaction --master-data --triggers --routines --all-databases --events > all.sql
scp all.sql [email protected]:/home
scp all.sql [email protected]:/home
mysql -uroot -p <all.sql
<2>配置主从(139和141为主从)
<3>配置主主
保证139和140数据一致后,查看140的日志点
mysql> show master status\G
*************************** 1. row ***************************
File: bin-log.000024
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 6f998ec8-b89c-11e9-96ad-000c29b388f2:1
1 row in set (0.00 sec)
然后在139,140下分别做change-master操作,MASTER_LOG_FILE指的是对方上面的日志名字以及偏移量
mysql> change master to master_host='192.168.195.140',
-> master_user='zhaoheng',
-> master_password='zh179883',
-> MASTER_LOG_FILE='bin-log.000024', MASTER_LOG_POS=120;
Query OK, 0 rows affected, 7 warnings (0.01 sec)
然后可以看到139的主是140,140的主是139
三,安装主从节点所需要的支持包
(所有数据库服务器都要安装)
在home目录下,建立一个存放yum源的地址
mkdir tools
cd tools
配置epel和remi源
wget http://mirrors.sohu.com/fedora-epel/epel-release-latest-6.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
#安装
rpm -ivh epel-release-latest-6.noarch.rpm
rpm -ivh remi-release-6.rpm
对yum源进行配置
vim /etc/yum.repos.d/remi.repo 将enabled=0改为1
vim /etc/yum.repos.d/epel.repo 将baseurl前的#去掉,在mirrors前加#
四,安装及配置MMM工具集
yum search mmm
yum install mysql-mmm-agent.noarch -y
安装监控服务需要的包:
yum -y install mysql-mmm*
mysql -u root -p
创建代理账号:
mysql> grant super,replication client,process on *.* to 'mmm_agent'@'192.168.195.%' identified by 'zh179883';
创建监控账号:
mysql> grant replication client on *.* to 'mmm_monitor'@'192.168.195.%' identified by 'zh179883';
mmm_monitor用户:mmm监控用于对mysql服务器进程健康检查
mmm_agent用户: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 zhaoheng(复制用户)
replication_password zh179883(复制用户的密码)
agent_user mmm_agent(代理用户)
agent_password RepAgent(代理用户的密码)
</host>
<host db1>
ip 192.168.195.139(主库1)
mode master
peer db2
</host>
<host db2>
ip 192.168.195.140(主库2)
mode master
peer db1
</host>
<host db3>
ip 192.168.195.141(从库)
mode slave
</host>
<role writer>
hosts db1, db2
ips 192.168.195.100(写的虚拟ip)
mode exclusive
</role>
<role reader>
hosts db1, db2,db3(读的虚拟ip)
ips 192.168.195.101, 192.168.195.102,192.168.195.103
mode balanced
</role>
将文件拷贝到其他服务器上确保所有服务器的此文件内容相同
scp mmm_common.conf [email protected]:/etc/mysql-mmm/
mmm_agent.conf
分别改为db1,db2,db3
现在已经完成了数据库的节点配置
现在要配置监控节点
五,启动mmm集群
先启动3个节点上的mmm代理
agent用来启动代理,monitor用来启动监控
[root@two-centos6 ~]# /etc/init.d/mysql-mmm-
mysql-mmm-agent mysql-mmm-monitor
[root@two-centos6 ~]# /etc/init.d/mysql-mmm-agent start
Starting MMM Agent Daemon: [确定]
[root@one-centos6 mysql-mmm]# /etc/init.d/mysql-mmm-monitor start
Starting MMM Monitor Daemon: [确定]
查看集群状态:
[root@one-centos6 mysql-mmm]# mmm_control show
db1(192.168.195.139) master/ONLINE. Roles: reader(192.168.195.101), writer(192.168.195.100)
db2(192.168.195.140) master/ONLINE. Roles: reader(192.168.195.103)
db3(192.168.195.141) slave/ONLINE. Roles: reader(192.168.195.102)
六,故障转移,主从切换测试
停掉节点1
结果:
[root@one-centos6 mysql-mmm]# mmm_control show
db1(192.168.195.139) master/HARD_OFFLINE. Roles:
db2(192.168.195.140) master/ONLINE. Roles: reader(192.168.195.103), writer(192.168.195.100)
db3(192.168.195.141) slave/ONLINE. Roles: reader(192.168.195.101), reader(192.168.195.102)
可以看到,节点1被设置成了离线状态,且写ip迁移到了db2上
可以看到,节点3已经进行了主从切换