五台虚拟机
双网卡 第一块内网,第二块外网
80.100 主数据库1
80.101 主数据库2
80.102 从数据库1
80.103 从数据库2
80.104 监控端 monitor
搭建阿里云yum仓库:
vi /etc/yum.repos.d/ali.repo
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
scp /etc/yum.repos.d/ali.repo root@192.168.80.101:/etc/yum.repos.d/
scp /etc/yum.repos.d/ali.repo root@192.168.80.102:/etc/yum.repos.d/
scp /etc/yum.repos.d/ali.repo root@192.168.80.103:/etc/yum.repos.d/
scp /etc/yum.repos.d/ali.repo root@192.168.80.104:/etc/yum.repos.d/
注:如果有ip地址,关了网卡ping不通网页修改以下内容
vi /etc/sysconfig/network-scripts/ifcfg-ens32 //进入网卡配置文件
把圈中的命令删掉在使用下一条命令
systemctl restart network //重启网卡
四台服务器安装以下程序:
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭监控
[root@lq5 yum.repos.d]# ifconfig ens34 down //关闭ens34网卡
[root@lq5 yum.repos.d]# ifconfig ens34 up //开启ens34网卡
yum install -y wget
wget -O /etc/yum.repos.d/ali.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum clean all && yum makecache
yum -y install mariadb-server mariadb
yum install mariadb-server -y
在主服务器上
[root@NGINX ~]# systemctl start mariadb
[root@NGINX ~]# vi /etc/my.cnf
[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
character_set_server=utf8
log_bin=mysql_bin
server_id=1
log_slave_updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
[root@NGINX ~]# service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306
-------没有问题后,把配置文件复制到其它3台数据库服务器上并启动服务器-----
[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.101:/etc/
[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.102:/etc/
[root@NGINX ~]# scp /etc/my.cnf root@192.168.80.103:/etc/
[root@NGINX ~]# mysql -u root
MariaDB [(none)]> grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> show master status \G
在从服务器上:
[root@test ~]# vi /etc/my.cnf
修改一下Server-id ,其他从服务器也要修改
[root@test ~]# service mariadb restart
[root@test ~]# mysql -u root
MariaDB [(none)]> grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';
MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=490;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
MariaDB [(none)]> show master status \G
在主服务器中:
MariaDB [(none)]> change master to master_host='192.168.80.101',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=410;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
在从服务器1上:
vi /etc/my.cnf
[root@NGINX ~]# service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306
mysql -u root
MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=490;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
在从服务器2上:
[root@test ~]# vi /etc/my.cnf
修改一下Server-id ,其他从服务器也要修改
[root@NGINX ~]# service mariadb restart
[root@NGINX ~]# netstat -anpt | grep 3306
mysql -u root
MariaDB [(none)]> change master to master_host='192.168.80.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=490;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
测试:
在主备服务器上创建一个空库:
MariaDB [(none)]> create database aa;
MariaDB [(none)]> show databases;
在从服务器上1上:
在从服务器2上:
到此,主主备份主从同步成功
现在做对mmm进行配置
-------安装MMM----在所有服务器上安装-----注意,epel源要配置好
yum -y install mysql-mmm*
-------安装结束后,对mmm进行配置------
在主服务器上:
[root@NGINX ~]# cd /etc/mysql-mmm/
[root@NGINX mysql-mmm]# ls
[root@NGINX mysql-mmm]# vi mmm_common.conf
修改以下圈住部分:
发送给其他数据库服务器
scp mmm_common.conf root@192.168.80.101:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.80.102:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.80.103:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.80.104:/etc/mysql-mmm/
在monitor服务器上配置:
[root@MYSQL ~]# cd /etc/mysql-mmm/
[root@MYSQL mysql-mmm]# vi mmm_mon.conf
在其它mysql服务器上:
[root@NGINX mysql-mmm]# vi /etc/mysql-mmm/mmm_agent.conf
主数据库1:this db1
主数据库2:this db2
从数据库1:this db3
从数据库2:this db4
monitor服务器:this db5
是在各自的配置文件修改,不是在一个虚拟机,每个虚拟机都要执行的操作。
在四台数据库中为mmm_agent授权
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123';
grant replication client on *.* to 'mmm_monitor'@'192.168.80.%' identified by '123';
systemctl start mysql-mmm-agent
在monitor服务器上配置:
[root@MYSQL mysql-mmm]# vi mmm_mon.conf
systemctl start mysql-mmm-monitor //启动mysql-mmm-monitor
netstat -anp | grep 9988
mmm_control checks all
mmm_control show
查看是否有漂移地址
主数据库1
从数据库1
从数据库2
模拟主数据库1,从数据库1故障,查看漂移地址是否从主数据库1漂移到主数据库2,和从数据库1的地址漂移到从数据库2上去
主数据库1
systemctl stop mariadb
主数据库2
从数据库1
systemctl stop mariadb
从数据库2