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

溫馨提示×

溫馨提示×

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

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

mysql高可用中MMM高可用mysql方案是怎么樣的

發布時間:2021-12-27 13:58:36 來源:億速云 閱讀:91 作者:柒染 欄目:數據庫

這期內容當中小編將會給大家帶來有關mysql高可用中MMM高可用mysql方案是怎么樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

MMM高可用mysql方案

方案簡介

MMM即Master-Master Replication Manager for MySQL(mysql主主復制管理器)關于mysql主主復制配置的監控、故障轉移和管理的一套可伸縮的腳本套件(在任何時候只有一個節點可以被寫入),這個套件也能對居于標準的主從配置的任意數量的從服務器進行讀負載均衡,所以你可以用它來在一組居于復制的服務器啟動虛擬ip,除此之外,它還有實現數據備份、節點之間重新同步功能的腳本。MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現服務器的故障轉移,從而實現mysql的高可用。MMM不僅能提供浮動IP的功能,更可貴的是如果當前的主服務器掛掉后,會將你后端的從服務器自動轉向新的主服務器進行同步復制,不用手工更改同步配置。這個方案是目前比較成熟的解決方案。

  1. 方案優缺點

優點:安全性、穩定性高,可擴展性好,高可用,當主服務器掛掉以后,另一個主立即接管,其他的從服務器能自動切換,不用人工干預。
缺點:至少三個節點,對主機的數量有要求,需要實現讀寫分離,對程序來說是個挑戰。

  1. 方案架構圖

  1. 適用場景

MMM的適用場景為數據庫訪問量大,業務增長快,并且能實現讀寫分離的場景。

  1. 方案實戰

    1. 實戰環境介紹

實戰環境服務器列表:

服務器 主機名 ip地址 Serverid 系統 Mysql
Monitor Mon 10.1.1.111 -- Centos 5.5 64bit --
Master1 db1 10.1.1.113 1 Centos 5.5 64bit 5.1.63
Master2 db2 10.1.1.75 2 Centos 5.5 64bit 5.1.63
Slave1 db3 10.1.1.108 3 Centos 5.5 64bit 5.1.63

實戰環境虛擬IP列表:

VIP Role description
10.1.1.176 Read 應用配置的讀取IP,也可以在前端加lvs等,做負載均衡 。三臺數據庫每臺一個浮動VIP
10.1.1.177 Read
10.1.1.178 Read
10.1.1.179 Write 應用配置的寫入的VIP,單點寫入。
  1. MMM的安裝

在安裝mmm之前要安裝epel包,因為Centos的默認源中沒有mmm的安裝包,Epel是企業版Linux附加軟件包(Extra Packages for Enterprise Linux)的縮寫,是一個由特別興趣小組創建、維護并管理的,針對紅帽企業版Linux(RHEL)及其衍生發行版(比如CentOS、Scientific Linux)的一個高質量附加軟件包項目。
安裝epel:

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
rpm -Uvh epel-release-5-3.noarch.rpm

安裝monitor的安裝:

yum -y install mysql-mmm*

各個DB上只需要安裝mysql-mmm-agent

yum -y install mysql-mmm-agent

  1. MMM的配置

    1. 配置之前的準備

前提是要配置好master1和master2的主主同步,master1和slave1的主從同步,限于篇幅這里我就不做介紹了。
在配置mmm之前首先要在mysql中創建除復制帳號之外的另外兩個帳號,首先來介紹monitor user帳號,這個帳號是monitor服務器用來對mysql服務器做健康檢查的,其次就是agent user,這個帳號是mmm agent(mmm代理)用來變成只讀模式和同步master等,下面是創建這兩個帳號的語句:

GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'10.1.1.%' IDENTIFIED BY 'monitor_password';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.1.1.%'IDENTIFIED BY 'agent_password';
flush privileges;

這兩個語句在每個mysql中都要執行一下。

  1. Monitor服務器的配置

  2. 的配置文件在/etc/mysql-mmm目錄下,monitor需要配置的文件有mmm_common.conf、mmm_mon.conf兩個文件。mmm_common.conf文件在mmm的各個節點都是一樣的,因此配置好以后copy到各個DB節點即可。

我mmm_common.conf的配置如下:
vim /etc/mysql-mmm/mmm_common.conf

active_master_role      writer
 
<host default>
    cluster_interface       eth0
    pid_path                /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        replication
    replication_password    123456
    agent_user              mmm_agent
    agent_password          agent_password
</host>
 
<host db1>
    ip      10.1.1.113    #這個IP尤其注意是db1的IP
    mode    master
    peer    db2
</host>
 
<host db2>
    ip      10.1.1.75    #這個IP尤其注意是db2的IP
    mode    master
    peer    db1
</host>
 
<host db3>
    ip      10.1.1.108
    mode    slave
</host>
 
<role writer>
    hosts   db1, db2
    ips     10.1.1.179
    mode    exclusive
</role>
 
<role reader>
    hosts   db1, db2, db3
    ips     10.1.1.176, 10.1.1.177, 10.1.1.178
    mode    balanced
</role>

我的mmm_mon.conf配置如下:
vim /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf
 
<monitor>
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips            10.1.1.1, 10.1.1.113, 10.1.1.75, 10.1.1.108
# ping_ips 監控了網關IP和其他的DB節點IP
    auto_set_online     60
</monitor>
 
<host default>
    monitor_user        mmm_monitor
    monitor_password    monitor_password
</host>
 
debug 0

  1. 各個DB服務器的配置

各個DB服務器要配置的東西比較不多,主要有mmm_common.conf、mmm_agent.conf和/etc/default/mysql-mmm-agent文件。

  • db1 的配置

  • 文件的配置和前面monitor的一樣,直接copy過來即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db1

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  • db2 的配置

  • 文件的配置和前面monitor的一樣,直接copy過來即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db2

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  • db3 的配置

  • 文件的配置和前面monitor的一樣,直接copy過來即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db3

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  1. MMM的管理

    1. MMM的啟動和停止

  • MMM的啟動

啟動mmm agent

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

將agent的啟動命令寫入到三個DB的rc.local文件中
啟動mmm monitor

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

將monitor的啟動命令寫入到monitor服務器的rc.local文件中

  • MMM的停止

停止mmm agent

/etc/init.d/mysql-mmm-agent stop

停止mmm monitor

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

  1. MMM的基本管理

查看集群的狀態

mmm_control show

將db1設置成online狀態

mmm_control set_online db1

更多管理命令請使用mmm_control help查看,或者參考:
http://blog.chinaunix.net/uid-20639775-id-154606.html

  1. MMM架構的測試

環境搭建好以后,就需要進行周密的測試,看是否實現了預期的功能:

  • 停掉master1后在monitor端使用mmm_control show看是否能切換。看看slave1是否能正確切換同步。

  • 啟動master1后在monitor端使用mmm_control show看是否能切換。

  • 停掉master2后看看能否正確切換。

    1. MMM架構的監控

為實現高可用,系統的各個層面都需要全面的監控起來,比如agent進程的監控,monitor進程的監控,mysql可用性的監控,數據庫同步的監控等,推薦使用nagios對以上資源進行監控,第一時間發現問題,第一時間處理。

上述就是小編為大家分享的mysql高可用中MMM高可用mysql方案是怎么樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

伊宁市| 霍山县| 广安市| 江油市| 济源市| 厦门市| 黑水县| 新河县| 罗田县| 革吉县| 基隆市| 九台市| 南丰县| 嘉鱼县| 英山县| 大冶市| 太康县| 阳东县| 神木县| 施秉县| 封丘县| 兴化市| 大同县| 乌兰察布市| 新晃| 浙江省| 三门峡市| 五莲县| 永和县| 务川| 石渠县| 丰县| 连城县| 延川县| 铁力市| 富源县| 诸城市| 霞浦县| 辰溪县| 屏边| 平顺县|