1. 程式人生 > >mysql 群集架構mmm高可用群集及服務器上線

mysql 群集架構mmm高可用群集及服務器上線

高可用 mysql存儲高可用 mmm群集

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

優點:高可用性,擴展性好,出現故障自動切換,對於主主同步,在同一時間只提供一臺數據庫寫操作,保證的數據的一致性。當主服務器掛掉以後,另一個主立即接管,其他的從服務器能自動切換,不用人工幹預。

缺點:monitor節點是單點,不過這個你也可以結合

keepalived或者haertbeat做成高可用;至少三個節點,對主機的數量有要求,需要實現讀寫分離,還需要在前端編寫讀寫分離程序。在讀寫非常繁忙的業務系統下表現不是很穩定,可能會出現復制延時、切換失效等問題。MMM方案並不太適應於對數據安全性要求很高,並且讀、寫繁忙的環境中。

二、部署實施

1、環境介紹

OS:centos7.264位)數據庫系統:mysql5.7.13 關閉selinux

主機

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進行安裝相關的依賴包

技術分享

安裝perl相關的庫

技術分享

字有點小(cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::ping Proc::Daemon Time::HiResParams::Validate Net::ARP

技術分享

/etc/hosts裏添加地址和主機名

技術分享

測試能否ping通,進行通信

技術分享

技術分享

技術分享

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

技術分享

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

技術分享

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

技術分享

修改完後關閉防火墻,啟動mysql服務

技術分享

其余兩臺master2slave按照上圖執行

創建主從復制環境,master1master2slave的主,master2master1的主

創建授權連接用戶

技術分享

兩臺master上都執行

查看master1的狀態

技術分享

master2上建立連接實現主從復制

技術分享

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

技術分享

slave上建立連接實現主從復制

技術分享

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

技術分享

上面的已經把主主復制及主從復制做ok

設置mysql-mmm

master1上創建代理賬號、創建監控賬號,因為已經主從復制了就可以在主上面創建了,會同步的

技術分享

查看那兩臺是否都存在監控和代理賬號

技術分享

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

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

mysql-mmm安裝

montior主機上安裝監控程序

技術分享

安裝下載後的包

技術分享

master1master2slave中安裝代理

技術分享

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

安裝後的所有配置文件都存放在/etc/mysql-mmm/下面,管理和數據庫服務器上都要包含一個共同的文件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循環語句分發給其他三臺主機

技術分享

代理文件需要在master1master2slave中修改/mmm_agent.conf

技術分享

this後面添加本地主機名就可以了

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

技術分享

mmm添加為系統服務並設置為自啟

技術分享

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

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

技術分享

每個參數的意思

<monitor>

ip 127.0.0.1 設置只在本機監聽,mmm_mond默認監聽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 用於測試網絡可用性 IP 地址列表

auto_set_online 0 設置自動online的時間默認是60s

</monitor>

<check default>

check_period 5 檢查周期默認為5s

trap_period 10 一個節點被檢測不成功的時間持續trap_period

timeout 2 檢查超時的時間

restart_after 10000 在完成restart_after次檢查後,重啟checker進程默認值:10000

max_backlog 86400 記錄檢查rep_backlog日誌的最大次數

</check>

<host default>

monitor_user www 監控db服務器的用戶

monitor_password 123 監控db服務器的密碼

</host>

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

啟動監控進程在/etc/init.d/mysql-mmm-monitor文件中添加

技術分享

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

chkconfig --add mysql-mmm-monitor

chkconfig mysql-mmm-monitor on

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

把服務器上線

技術分享

檢查所有的db服務器群集狀態

技術分享

查看所有的群集狀態

技術分享

查看命令,監控命令參數有很多,可以從網上查找。


本文出自 “centos7” 博客,轉載請與作者聯系!

mysql 群集架構mmm高可用群集及服務器上線