溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL-MMM高可用群集

發(fā)布時間:2020-07-19 04:00:18 來源:網(wǎng)絡(luò) 閱讀:395 作者:棒棒糖w 欄目:MySQL數(shù)據(jù)庫

一、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

  1. 為了實驗一致性,統(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
MySQL-MMM高可用群集
m2
MySQL-MMM高可用群集

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
MySQL-MMM高可用群集
m2
MySQL-MMM高可用群集

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
MySQL-MMM高可用群集
s2
MySQL-MMM高可用群集
-----測試主從、主主、同步 情況----

建立數(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 //所有主機上都要配置,直接復制多份
MySQL-MMM高可用群集
指定各個代理主機的IP地址和模式:
MySQL-MMM高可用群集
配置讀寫的角色:
MySQL-MMM高可用群集
2)配置mmm_agent.conf(四臺數(shù)據(jù)庫不包括監(jiān)視器)依次排列
vi /etc/mysql-mmm/mmm_agent.confMySQL-MMM高可用群集
3)配置mmm_mon.conf
vi /etc/mysql-mmm/mmm_mon.conf //配置監(jiān)控主機
MySQL-MMM高可用群集
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é)點的情況
MySQL-MMM高可用群集
注意:查看不到,稍等片刻繼續(xù)查看,會有響應時間*

    mmm_control checks all //需要各種OK

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

systemctl stop mariadb
mmm_control show    //在監(jiān)控主機上查看

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

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI