溫馨提示×

溫馨提示×

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

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

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線

發(fā)布時間:2020-07-15 21:22:14 來源:網(wǎng)絡(luò) 閱讀:14558 作者:攀巖人生 欄目:建站服務(wù)器

MMMMulti-Master Replication Manager for MySQL:mysql多主復(fù)制管理器,基于perl實(shí)現(xiàn),關(guān)于mysql主主復(fù)制配置的監(jiān)控、故障轉(zhuǎn)移和管理的一套可伸縮的腳本套件(在任何時候只有一個節(jié)點(diǎn)可以被寫入),MMM也能對從服務(wù)器進(jìn)行讀負(fù)載均衡,所以可以用它來在一組用于復(fù)制的服務(wù)器啟動虛擬ip,除此之外,它還有實(shí)現(xiàn)數(shù)據(jù)備份、節(jié)點(diǎn)之間重新同步功能的腳本。

優(yōu)點(diǎn):高可用性,擴(kuò)展性好,出現(xiàn)故障自動切換,對于主主同步,在同一時間只提供一臺數(shù)據(jù)庫寫操作,保證的數(shù)據(jù)的一致性。當(dāng)主服務(wù)器掛掉以后,另一個主立即接管,其他的從服務(wù)器能自動切換,不用人工干預(yù)。

缺點(diǎn):monitor節(jié)點(diǎn)是單點(diǎn),不過這個你也可以結(jié)合keepalived或者haertbeat做成高可用;至少三個節(jié)點(diǎn),對主機(jī)的數(shù)量有要求,需要實(shí)現(xiàn)讀寫分離,還需要在前端編寫讀寫分離程序。在讀寫非常繁忙的業(yè)務(wù)系統(tǒng)下表現(xiàn)不是很穩(wěn)定,可能會出現(xiàn)復(fù)制延時、切換失效等問題。MMM方案并不太適應(yīng)于對數(shù)據(jù)安全性要求很高,并且讀、寫繁忙的環(huán)境中。

二、部署實(shí)施

1、環(huán)境介紹

OS:centos7.264位)數(shù)據(jù)庫系統(tǒng):mysql5.7.13   關(guān)閉selinux

主機(jī)

Ip

Hostname

Server--id

Master1

192.168.119.129

Master1

1

Master2

192.168.119.130

Master2

2

Slave

192.168.119.131

Slave

3

Montior

192.168.119.132

Montior

4

使用yum進(jìn)行安裝相關(guān)的依賴包

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

安裝perl相關(guān)的庫

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 字有點(diǎn)小(cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::ping Proc::Daemon Time::HiResParams::Validate Net::ARP

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

/etc/hosts里添加地址和主機(jī)名

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

測試能否ping通,進(jìn)行通信

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

master1中添加mysql   /etc/my.cnf主配置參數(shù)文件

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

master2中添加/etc/my.cnf主配置文件

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

slave中添加/etc/my.cnf主配置文件

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

修改完后關(guān)閉防火墻,啟動mysql服務(wù)

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

其余兩臺master2、slave按照上圖執(zhí)行

創(chuàng)建主從復(fù)制環(huán)境,master1master2、slave的主,master2master1的主

創(chuàng)建授權(quán)連接用戶

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

兩臺master上都執(zhí)行

查看master1的狀態(tài)

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

master2上建立連接實(shí)現(xiàn)主從復(fù)制

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

啟動slave查看是否連接必須為yes

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

slave上建立連接實(shí)現(xiàn)主從復(fù)制

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

master2設(shè)為主跟上面的步驟一樣,只需把ip地址改一下即可

下圖是在master1上執(zhí)行的

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

上面的已經(jīng)把主主復(fù)制及主從復(fù)制做ok

設(shè)置mysql-mmm

master1上創(chuàng)建代理賬號、創(chuàng)建監(jiān)控賬號,因?yàn)橐呀?jīng)主從復(fù)制了就可以在主上面創(chuàng)建了,會同步的

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

查看那兩臺是否都存在監(jiān)控和代理賬號

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

www用戶:mmm監(jiān)控用于對mysql服務(wù)器進(jìn)程健康檢查

qqq用戶:mmm代理用來更改只讀模式,復(fù)制的主服務(wù)器等

mysql-mmm安裝

montior主機(jī)上安裝監(jiān)控程序

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 安裝下載后的包

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

master1、master2slave中安裝代理

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

配置mmm,要求必須四臺主機(jī)必須一樣的配置文件

安裝后的所有配置文件都存放在/etc/mysql-mmm/下面,管理和數(shù)據(jù)庫服務(wù)器上都要包含一個共同的文件mmm_common.cof,配置文件如下:

active_master_role      writer

<host default>

        cluster_interface               eno16777736

        pid_path                                /var/run/mmm_agentd.pid

        bin_path                                /usr/lib/mysql-mmm/

   replication_user                       rep

   replication_password                   123

        agent_user                      qqq

        agent_password                  123

</host>

<host master1>

        ip                                      192.168.119.129

        mode                                   master

        peer                                    master2

</host>

<host master2>

        ip                                      192.168.119.130

        mode                                   master

        peer                                    master1

</host>

<host slave>

        ip                                      192.168.119.131

        mode                                   slave

</host>

<role writer>

        hosts                                   master1,master2                                                                 

       ips                                      192.168.119.10

        mode                                   exclusive

</role>

<role reader>

        hosts                                   master1,master2, slave

        ips                                     192.168.119.11,192.168.119.22,192.168.119.33

        mode                                   balanced

</role>

使用for循環(huán)語句分發(fā)給其他三臺主機(jī)

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

代理文件需要在master1master2、slave中修改/mmm_agent.conf

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

this后面添加本地主機(jī)名就可以了

啟動代理進(jìn)程   需要進(jìn)入腳本/etc/init.d/mysql-mmm-agent腳本

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

mmm添加為系統(tǒng)服務(wù)并設(shè)置為自啟

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

能顯示出來ok證明前面做的沒有問題,在三臺代理的主機(jī)都設(shè)置

編輯monitor主機(jī)的/etc/mysql-mmm/mmm_mon.conf

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

每個參數(shù)的意思

<monitor>

ip     127.0.0.1   設(shè)置只在本機(jī)監(jiān)聽,mmm_mond默認(rèn)監(jiān)聽9988

pid_path    /var/run/mmm_mond.pid

bin_path    /usr/lib/mysql-mmm/

status_path  /var/lib/misc/mmm_mond.status

ping_ips  192.168.119.129,192.168.119.130,192.168.119.131  用于測試網(wǎng)絡(luò)可用性 IP 地址列表

auto_set_online  0             設(shè)置自動online的時間,默認(rèn)是60s

</monitor>

<check default>

check_period   5           檢查周期默認(rèn)為5s

trap_period   10           一個節(jié)點(diǎn)被檢測不成功的時間持續(xù)trap_period

timeout      2            檢查超時的時間

restart_after   10000     在完成restart_after次檢查后,重啟checker進(jìn)程默認(rèn)值:10000

max_backlog   86400     記錄檢查rep_backlog日志的最大次數(shù)

</check>

<host default>

monitor_user  www         監(jiān)控db服務(wù)器的用戶

monitor_password  123      監(jiān)控db服務(wù)器的密碼

</host>

debug  0                  debug 0正常模式,1debug模式

啟動監(jiān)控進(jìn)程在/etc/init.d/mysql-mmm-monitor文件中添加

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

添加成系統(tǒng)服務(wù)并設(shè)置為自啟動

chkconfig --add mysql-mmm-monitor

chkconfig mysql-mmm-monitor on

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

把服務(wù)器上線

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

檢查所有的db服務(wù)器群集狀態(tài)

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

查看所有的群集狀態(tài)

mysql 群集架構(gòu)mmm高可用群集及服務(wù)器上線 

查看命令,監(jiān)控命令參數(shù)有很多,可以從網(wǎng)上查找。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI