五台虚拟机
双网卡 第一块内网,第二块外网
80.100 主数据库1
80.101 主数据库2
80.102 从数据库1
80.103 从数据库2
80.104 监控端 monitor
搭建阿里云yum仓库:
[Ali]
name=CentOS-releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
四台服务器安装以下程序:
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
在主服务器上
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# 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
[[email protected] ~]# service mariadb restart
[[email protected] ~]# netstat -anpt | grep 3306
-------没有问题后,把配置文件复制到其它3台数据库服务器上并启动服务器-----
[[email protected] ~]# scp /etc/my.cnf [email protected]:/etc/
[[email protected] ~]# scp /etc/my.cnf [email protected]:/etc/
[[email protected] ~]# scp /etc/my.cnf [email protected]:/etc/
[[email protected] ~]# 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
在从服务器上:
[[email protected] ~]# vi /etc/my.cnf
修改一下Server-id ,其他从服务器也要修改
[[email protected] ~]# service mariadb restart
[[email protected] ~]# 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.000001’,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.120’,master_user=‘replication’,master_password=‘123456’,master_log_file=‘mysql_bin.000004’,master_log_pos=576;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
在从服务器1上:
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=656;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \G
在从服务器2上:
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=656;
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进行配置------
在主服务器上:
[[email protected] ~]# cd /etc/mysql-mmm/
[[email protected] mysql-mmm]# ls
[[email protected] mysql-mmm]# vi mmm_common.conf
修改以下部分:
[[email protected] mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[[email protected] mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[[email protected] mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
[[email protected] mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/
在monitor服务器上配置:
[[email protected] ~]# cd /etc/mysql-mmm/
[[email protected] mysql-mmm]# vi mmm_mon.conf
在其它mysql服务器上:
[[email protected] mysql-mmm]# vi /etc/mysql-mmm/mmm_agent.conf
在四台数据库中为mmm_agent授权
MariaDB [(none)]> grant super, replication client, process on . to ‘mmm_agent’@‘192.168.80.%’ identified by ‘123456’;
为mmm_moniter授权
MariaDB [(none)]> grant replication client on . to ‘mmm_monitor’@‘192.168.80.%’ identified by ‘123456’;
MariaDB [(none)]> flush privileges;
[[email protected] mysql-mmm]# systemctl start mysql-mmm-agent
[[email protected] mysql-mmm]# systemctl enable mysql-mmm-agent
在monitor服务器上配置:
[[email protected] mysql-mmm]# vi mmm_mon.conf
……
ping_ips 192.168.80.100,192.168.80.101,192.168.80.102,192.168.80.103 //数据库服务器地址
[[email protected] mysql-mmm]# systemctl start mysql-mmm-monitor //启动mysql-mmm-monitor
[[email protected] mysql-mmm]# netstat -anp | grep 9988
[[email protected] mysql-mmm]# mmm_control show
如上图显示内容,表示为成功
在主数据库db1上:
Ip addr show ens33
[[email protected] ~]# systemctl start mysql-mmm-monitor
[[email protected] ~]# systemctl restart mysql-mmm-agent
[[email protected] ~]# mmm_control checks all
将主服务器stop
Service mariadb stop
在在monitor服务器上mmm_control show
在db2上查看漂移地址
如上图 ,可以看到漂移地址已经漂移过来了。
验证将从服务器停止一台,另一台将接管两个虚拟IP,以保证业务不停止
[[email protected] ~]# service mariadb stop
[[email protected] mysql-mmm]# mmm_control show
[[email protected] ~]# ip add show ens33