MySQL-MMM高可用羣集

一、MMM簡介
1、MMM(Master-Master replication manager for MySQL,MySQL主主複製管理器)是一套支持雙主故障切換和雙主日常管理的腳本程序。
2、MMM是一套靈活的腳本程序,基於perl實現,用來對mysql replication進行監控和故障轉移,並能管理MySQL Master-Master複製的配置。
3、關於MMM高可用架構的說明如下:
(1)mmm-mon:監控進程,負責所有的監控工作,決定和處理所有節點角色活動。此腳本需要在監管機上運行。
(2)mmm-agent:運行在每個MySQL服務器上的代理進程,完成監控的探針工作和執行簡單的遠端服務設置。此腳本需要在被監管機上運行。
(3)mmm-control:一個簡單的腳本,提供mmm_mond進程的命令。
(4)mysql-mmm的監管端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監管的管理,這些IP會綁定在可用MySQL之上,當某一臺MySQL宕機時,監管會將VIP遷移至其他MySQL。

實驗環境:
    五臺centos7
        四臺MySQL:m1 192.168.30.30 、m2 192.168.30.31、s1 192.168.30.32、s2 192.168.30.35
        一臺mmm_moniter:192.168.30.36
        service firewalld stop
        setenforce 0

二 安裝MySQL和MySQL-mmm

  1. 爲了實驗一致性,統一使用yum源安裝MySQL和MySQL-mmm
    更換爲阿里源

          yum install wget -y
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
            yum -y install epel-release
            yum clean all && yum makecache

2 在四臺MySQL服務器上安裝mariadb
yum -y install mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb

3 -----修改m1主配置文件---
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

systemctl restart mariadb
netstat -anpt | grep 3306
-------沒有問題後,把配置文件複製到其它3臺數據庫服務器上並啓動服務器-----
-----注意:配置文件中的server_id 要修改-----
之後也重啓mariadb
systemctl start mariadb
systemctl enable mariadb

4 配置主主複製----兩臺主服務器相互複製
mysql #進入數據庫
show master status; //記錄日誌文件名稱和 位置值,在兩臺主上查看。
由於我的兩臺數據庫都是純淨的沒有執行任何操作,因此二進制日誌文件和位置變量都是一樣的,但是性質卻不相同,一個對應的主服務器master1,一個對應的是master2
m1
MySQL-MMM高可用羣集
m2
MySQL-MMM高可用羣集

grant replication slave on *.* to 'replication'@'192.168.30.%' identified by '123456'; //兩臺主服務器互相授權連接
m1:  change master to master_host='192.168.30.31',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=410; //master1指定master2的地址和對應的二進制日誌文件和位置變量
m2: change master to master_host='192.168.30.30',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=410; //master2指定master1的地址和對應的二進制日誌文件和位置變量
start slave;    //分別開啓複製功能  
show slave status;      //分別查看狀態
只要保證SlaveIORunning: Yes和SlaveSQLRunning: Yes就ok!

m1
MySQL-MMM高可用羣集
m2
MySQL-MMM高可用羣集

5 建庫測試主主同步
create database dba; //在另一臺主上可以看到
drop database dba; //在主上刪除後,另一臺主上也沒有了,同步成功。

6 建立主從同步

s1和s2分別指向兩臺主中的任意一臺
show master status; 在master1 上再次查看日誌狀態

    change master to master_host='192.168.30.30',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=410;
    start slave;
    show slave status; 查看複製狀態

s1
MySQL-MMM高可用羣集
s2
MySQL-MMM高可用羣集
-----測試主從、主主、同步 情況----

建立數據庫,然後測試同步情況
create database abc; //兩臺主中任意一臺創建
show databases; //在兩臺從服務器上分別查看

三 安裝MMM----在所有服務器上安裝
1
yum -y install mysql-mmm-agent //在四臺數據庫服務器上安裝代理端
yum -y install mysql-mmm-monitor //在另外一臺空機器上安裝監視器

2 安裝結束後,對mmm-agent端進行配置

讀寫分離需要配合amoeba實現,這裏就不介紹了點擊查看詳情amoeba讀寫分離
cd /etc/mysql-mmm/
1)vi mmm_common.conf //所有主機上都要配置,直接複製多份
MySQL-MMM高可用羣集
指定各個代理主機的IP地址和模式:
MySQL-MMM高可用羣集
配置讀寫的角色:
MySQL-MMM高可用羣集
2)配置mmm_agent.conf(四臺數據庫不包括監視器)依次排列
vi /etc/mysql-mmm/mmm_agent.confMySQL-MMM高可用羣集
3)配置mmm_mon.conf
vi /etc/mysql-mmm/mmm_mon.conf //配置監控主機
MySQL-MMM高可用羣集
4)監控端和代理端授權(四臺數據庫服務器上)
mysql //進入數據庫
grant super, replication client, process on . to 'mmm_agent'@'192.168.30.%' identified by '123456'; //爲代理端授權
grant replication client on . to 'mmm_monitor'@'192.168.30.%' identified by '123456'; //爲監控端授權
flush privileges; //刷新權限

systemctl start mysql-mmm-agent //四臺數據庫服務器分別啓動mysql代理端
systemctl enable mysql-mmm-agent //開機自啓
systemctl start mysql-mmm-monitor //監控主機啓動mysql監控端
systemctl enable mysql-mmm-monitor //開機自啓

mmm_control show //查看各節點的情況
MySQL-MMM高可用羣集
注意:查看不到,稍等片刻繼續查看,會有響應時間*

    mmm_control checks all //需要各種OK

5)故障測試
(1)停止master1

systemctl stop mariadb
mmm_control show    //在監控主機上查看

驗證虛擬地址 188 是否移動到 master2 上
MySQL-MMM高可用羣集

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章