中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

MMM架構方案與實施

發布時間:2020-07-21 04:02:15 來源:網絡 閱讀:6559 作者:tty之星 欄目:MySQL數據庫

             MMM架構方案與實施

MMM即Master-Master Replication Manager for MySQL(mysql主主復制管理器),是關于mysql主主復制配置的監控、故障轉移和管理的一套可伸縮的腳本套件(在任何時候只有一個節點可以被寫入),這個套件也能基于標準的主從配置的任意數量的從服務器進行讀負載均衡,所以你可以用它來在一組居于復制的服務器啟動虛擬ip,除此之外,它還有實現數據備份、節點之間重新同步功能的腳本。

MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現服務器的故障轉移,從而實現mysql的高可用。

MMM項目來自 Google:http://code.google.com/p/mysql-master-master

官方網站為:http://mysql-mmm.org

MMM主要功能由下面三個腳本提供

mmm_mond    :負責所有的監控工作的監控守護進程,決定節點的移除等等

mmm_agentd  :運行在mysql服務器上的代理守護進程,通過簡單遠程服務集提供給監控節點

mmm_control :通過命令行管理mmm_mond進程

 

關于此架構的優缺點:

優點:安全性、穩定性高,可擴展性好,當主服務器掛掉以后,另一個主立即接管,其他的從服務器能自動切換,不用人工干預。

缺點:至少三個節點,對主機的數量有要求,需要實現讀寫分離,可以在程序擴展上比較難實現。同時對主從(雙主)同步延遲要求比較高!因此不適合數據安全非常嚴格的場合。

實用場所:高訪問量,業務增長快,并且要求實現讀寫分離的場景。

環境部署:

 MMM架構方案與實施

master1 ip :192.168.1.10

master2 ip :192.168.1.20

slave1  ip :192.168.1.30

slave2  ip:192.168.1.40

monitor ip:192.168.1.50

所有主機都要安裝MMM的依賴包這里就單以master1為例進行演示其他四臺均是如此,無任何的修改變動。

#yum -y install perl-*  libart_lgpl.x86_64  rrdtool.x86_64  rrdtool-perl.x86_64

 MMM架構方案與實施

安裝perl庫,使用centos7的互聯網yum源安裝

#cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::Ping Proc::Daemon Time::HiResParams::Validate Net::ARP

 

MMM架構方案與實施 

為了防止后續環境中出現報錯信息這里進行修改;給出解決方法:

解決方法:

# cpan Proc::Daemon
# cpan Log::Log4perl

 MMM架構方案與實施

在所有主機上配置/etc/hosts文件,添加如下內容:這里還是以master1為例;其他四臺均是如此

 MMM架構方案與實施

在這里我們使用monitor對其他四臺主機進行ping命令測試,查看是否可以互通:

MMM架構方案與實施 

 

MMM架構方案與實施 

master1、master2、slave1、slave2主機上安裝mysql5.7和配置復制

master1和master2互為主從,slave1、slave2為master1的從

在每個mysql的配置文件/etc/my.cnf中加入以下內容, 注意server_id不能重復。

master1服務器:

 

 

MMM架構方案與實施 

master2服務器

MMM架構方案與實施 

slave1服務器

MMM架構方案與實施 

slave2服務器

MMM架構方案與實施 

在完成了對my.cnf的修改后,通過systemctl restart mysqld重新啟動mysql服務

4臺數據庫主機若要開啟防火墻,要么關閉防火墻或者創建訪問規則:

firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

MMM架構方案與實施 在這里我們采用關閉防火墻;但如果應用在生產環境當中,此做法不可取,可使用上面的方式,開放3306端口

MMM架構方案與實施 主從配置(master1和master2配置成主主,slave1和slave2配置成master1的從)

MMM架構方案與實施 master1上授權:

MMM架構方案與實施 mysql> grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';

MMM架構方案與實施

MMM架構方案與實施 master2上授權:

MMM架構方案與實施 mysql> grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';

MMM架構方案與實施

master2、slave1和slave2配置成master1的從庫:

 

master1上執行show master status; 獲取binlog文件和Position點

mysql> show master status;

 

MMM架構方案與實施 

master2、slave1和slave2執行

mysql> change master to master_host='192.168.1.10',master_port=3306,master_user='rep',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=451;

 

master2執行:

MMM架構方案與實施 

 

slave1執行:

MMM架構方案與實施 

 

slave2執行:

MMM架構方案與實施 

 

執行成功之后開始驗證主從復制結果:

mysql> start slave;

mysql> show slave status\G;

首先對master2進行驗證結果let's go

MMM架構方案與實施 

接下來是slave1驗證:

MMM架構方案與實施 

最后是對slave2進行驗證:

MMM架構方案與實施 

通過以上結果表明這四臺數據庫的主從復制已經搭建好了;但是我們需要的是master1和master2是主主復制,所以接下來還要對master1進行配置:

master1配置成master2的從庫:

master2上執行show master status ;獲取binlog文件和Position點

mysql> show master status;

MMM架構方案與實施 

master1上執行:

mysql> change master to master_host='192.168.1.20',master_port=3306,master_user='rep',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;

MMM架構方案與實施 

驗證master1和master2的主主復制:

mysql> start slave ;

mysql> show slave status\G;

MMM架構方案與實施 

我們來捋一捋思路;這里master1和master2是主主復制

slave1和slave2與master1是主從復制的關系,接下來配置MMM的配置;

首先:在4臺mysql節點上創建用戶{master1、2和 slave1、2}

創建代理賬號:

mysql> grant super,replication client,process on *.* to 'mmm_agent'@'192.168.1.%' identified by '123456';

MMM架構方案與實施 

創建監控賬號:

mysql> grant replication client on *.* to 'mmm_monitor'@'192.168.1.%' identified by '123456';

MMM架構方案與實施

 

這里還是以master1為例,由于他們已經是主從同步的關系了,所以其他三臺主機也有這兩個賬號。

這里呢我們以其中的一臺slave2為例查看下是否存在呢?

MMM架構方案與實施 

可以看到在master1上創建的兩個賬號,在slave2上面已經同步過來了。

mmm_monitor用戶:mmm監控用于對mysql服務器進程健康檢查

mmm_agent用戶:mmm代理用來更改只讀模式,復制的主服務器等

二:mysql-mmm的安裝

monitor主機上安裝監控程序:

tar -zxf mysql-mmm-2.2.1.tar.gz

cd mysql-mmm-2.2.1

make install

MMM架構方案與實施 

在數據庫{master1,master2,slave1,slave2上安裝代理}

tar -zxf mysql-mmm-2.2.1.tar.gz

cd mysql-mmm-2.2.1

make install

主:此軟件必須在每臺MySQL上面進行安裝;這個不能同步。

master1服務器;

MMM架構方案與實施 

master2服務器:

 MMM架構方案與實施

slave1服務器:

MMM架構方案與實施 

slave2服務器:

MMM架構方案與實施 

接下來進入激動人心的時刻了,大家提起點精神,開始配置MMM的文件,五臺文件要保持一致。{mmm_commin.conf}

所有的配置文件都放到了/etc/mysql-mmm/下面。管理服務器和數據庫服務器上都要包含一個共同的文件mmm_common.conf,內容如下:

MMM架構方案與實施 

MMM架構方案與實施 

MMM架構方案與實施 

將以上的文件拷貝到其他四臺服務器上確保這五臺服務器的此文件內容相同。此外:

還有一個mmm_agent.conf需要修改,其內容是:

includemmm_common.conf

this master1

MMM架構方案與實施 

這里以master1為例其他三臺修改為{master2、slave1、slave2}monitor除外

啟動代理進程 其他三臺也是monitor除外,這里以master1為例:

/etc/init.d/mysql-mmm-agent的腳本文件#!/bin/sh下面,加入如下內容 

MMM架構方案與實施 

加入系統服務

MMM架構方案與實施 

啟動服務會報錯解決方法:

# cpan Proc::Daemon
# cpan Log::Log4perl

就可以解決

在此重啟的結果

MMM架構方案與實施 

MMM架構方案與實施

以上都是以master1為例,其他三臺配置方式和master1方式相同, 但在mmm_agent.conf文件修改不同上面已經指出。

 

編輯 monitor主機上的/etc/mysql-mmm/mmm_mon.conf 

includemmm_common.conf

MMM架構方案與實施 

啟動監控進程

/etc/init.d/mysql-mmm-monitor的腳本文件#!/bin/sh下面,加入如下內容 
source /root/.bash_profile 

MMM架構方案與實施 

添加成系統服務并設置為自啟動

#chkconfig --add mysql-mmm-monitor

#chkconfig mysql-mmm-monitor on

#/etc/init.d/mysql-mmm-monitor start

啟動會報錯。解決方法

安裝下列perl的庫

#cpan Proc::Daemon

#cpan Log::Log4perl

在此啟動

MMM架構方案與實施 

MMM架構方案與實施 

接下來查看群集狀態:

以及服務器上線的命令:

MMM架構方案與實施 

群集狀態:

MMM架構方案與實施 

查看所有群集的狀態:

MMM架構方案與實施 

接下來可以將主master1的服務器模擬宕機,查看vip是否會漂移到master2上面。這里不再重復。

這就是今天為大家帶來的MMM架構,如果有什么疑問可以在評論中提問。

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡西市| 孟村| 铁岭市| 义乌市| 左贡县| 高州市| 新野县| 乐亭县| 鹤山市| 哈巴河县| 西畴县| 白银市| 那坡县| 方山县| 大悟县| 通城县| 洪雅县| 贵定县| 德昌县| 时尚| 巩留县| 柞水县| 美姑县| 河南省| 多伦县| 玛纳斯县| 新津县| 太和县| 华池县| 临清市| 天水市| 谷城县| 冀州市| 会同县| 鄂温| 松阳县| 连平县| 荃湾区| 大丰市| 上林县| 筠连县|