您好,登錄后才能下訂單哦!
一、MMM簡介
1、MMM(Master-Master replication manager for MySQL,MySQL主主復制管理器)是一套支持雙主故障切換和雙主日常管理的腳本程序。
2、MMM是一套靈活的腳本程序,基于perl實現(xiàn),用來對mysql replication進行監(jiān)控和故障轉(zhuǎn)移,并能管理MySQL Master-Master復制的配置。
3、關(guān)于MMM高可用架構(gòu)的說明如下:
(1)mmm-mon:監(jiān)控進程,負責所有的監(jiān)控工作,決定和處理所有節(jié)點角色活動。此腳本需要在監(jiān)管機上運行。
(2)mmm-agent:運行在每個MySQL服務器上的代理進程,完成監(jiān)控的探針工作和執(zhí)行簡單的遠端服務設(shè)置。此腳本需要在被監(jiān)管機上運行。
(3)mmm-control:一個簡單的腳本,提供mmm_mond進程的命令。
(4)mysql-mmm的監(jiān)管端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監(jiān)管的管理,這些IP會綁定在可用MySQL之上,當某一臺MySQL宕機時,監(jiān)管會將VIP遷移至其他MySQL。
實驗環(huán)境:
五臺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
為了實驗一致性,統(tǒng)一使用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 //
合適的位置添加以下內(nèi)容
[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臺數(shù)據(jù)庫服務器上并啟動服務器-----
-----注意:配置文件中的server_id 要修改-----
之后也重啟mariadb
systemctl start mariadb
systemctl enable mariadb
4 配置主主復制----兩臺主服務器相互復制
mysql #進入數(shù)據(jù)庫
show master status; //記錄日志文件名稱和 位置值,在兩臺主上查看。
由于我的兩臺數(shù)據(jù)庫都是純凈的沒有執(zhí)行任何操作,因此二進制日志文件和位置變量都是一樣的,但是性質(zhì)卻不相同,一個對應的主服務器master1,一個對應的是master2
m1
m2
grant replication slave on *.* to 'replication'@'192.168.30.%' identified by '123456'; //兩臺主服務器互相授權(quán)連接
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; //分別查看狀態(tài)
只要保證SlaveIORunning: Yes和SlaveSQLRunning: Yes就ok!
m1
m2
5 建庫測試主主同步
create database dba; //在另一臺主上可以看到
drop database dba; //在主上刪除后,另一臺主上也沒有了,同步成功。
6 建立主從同步
s1和s2分別指向兩臺主中的任意一臺
show master status; 在master1 上再次查看日志狀態(tài)
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; 查看復制狀態(tài)
s1
s2
-----測試主從、主主、同步 情況----
建立數(shù)據(jù)庫,然后測試同步情況
create database abc; //兩臺主中任意一臺創(chuàng)建
show databases; //在兩臺從服務器上分別查看
三 安裝MMM----在所有服務器上安裝
1
yum -y install mysql-mmm-agent //在四臺數(shù)據(jù)庫服務器上安裝代理端
yum -y install mysql-mmm-monitor //在另外一臺空機器上安裝監(jiān)視器
2 安裝結(jié)束后,對mmm-agent端進行配置
讀寫分離需要配合amoeba實現(xiàn),這里就不介紹了點擊查看詳情amoeba讀寫分離
cd /etc/mysql-mmm/
1)vi mmm_common.conf //所有主機上都要配置,直接復制多份
指定各個代理主機的IP地址和模式:
配置讀寫的角色:
2)配置mmm_agent.conf(四臺數(shù)據(jù)庫不包括監(jiān)視器)依次排列
vi /etc/mysql-mmm/mmm_agent.conf
3)配置mmm_mon.conf
vi /etc/mysql-mmm/mmm_mon.conf //配置監(jiān)控主機
4)監(jiān)控端和代理端授權(quán)(四臺數(shù)據(jù)庫服務器上)
mysql //進入數(shù)據(jù)庫
grant super, replication client, process on . to 'mmm_agent'@'192.168.30.%' identified by '123456'; //為代理端授權(quán)
grant replication client on . to 'mmm_monitor'@'192.168.30.%' identified by '123456'; //為監(jiān)控端授權(quán)
flush privileges; //刷新權(quán)限
systemctl start mysql-mmm-agent //四臺數(shù)據(jù)庫服務器分別啟動mysql代理端
systemctl enable mysql-mmm-agent //開機自啟
systemctl start mysql-mmm-monitor //監(jiān)控主機啟動mysql監(jiān)控端
systemctl enable mysql-mmm-monitor //開機自啟
mmm_control show //查看各節(jié)點的情況
注意:查看不到,稍等片刻繼續(xù)查看,會有響應時間*
mmm_control checks all //需要各種OK
5)故障測試
(1)停止master1
systemctl stop mariadb
mmm_control show //在監(jiān)控主機上查看
驗證虛擬地址 188 是否移動到 master2 上
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。