MySQL高可用叢集

來源:互聯網
上載者:User

標籤:path   default   ant   net   用戶端串連   mis   mysql-mmm   add   clust   

1 MMM概述

1.1 關於mysql-mmm

MySQL主主複製管理器

MySQL主主複製配置的監控,容錯移轉和管理的一套指令碼套件;

能對居於標準的主從配置的任意數量的從伺服器進行讀負載平衡和實現資料備份;

通過MMM方案能實現伺服器的容錯移轉,從而實現mysql的高可用。

1.2 高可用叢集介紹:

主備模式 當主不能提供服務的時候備用主機接替它提供服務,這個過程對於用戶端是透明的。

1.3 前提環境:主從從結構

4台資料庫伺服器,2台互為主主,另2台為主中的一台的從。


2 Mysql-MMM構架

2.1 伺服器角色

管理節點:mmm-monitor(服務進程)

#負責所有的監控工作的監控守護進程,決定故障節點的移除或恢複;

資料庫節點:mmm-agent(服務進程)

#運行在Mysql伺服器上的代理守護進程,提供簡單遠程服務集,提供給監控節點;

2.2 核心軟體包及作用

Net-ARP:分配虛擬Ip地址

mysql-mmm 構架的核心進程

2.3 配置

(1)tar -xf mysql-mmm-2.2.1.tar.gz(所有主機上安裝)

查看說明檔案,執行make install

設定檔路徑:/etc/mysql-mmm

(2)修改資料節點主機mmm_agentd服務的設定檔

vim /etc/mysql-mmm/mmm_agent.conf #指定伺服器在叢集中的名稱,不能重複

this 主機名稱  #配置聲明自己的主機名稱

(3)修改管理節點主機mmm_monitor服務的設定檔

vim /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf  #載入公用設定檔

<monitor>

        ip                    192.168.4.55  #管理節點主機(即監控主機的IP地址)

        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.4.51, 192.168.4.52, 192.168.4.53, 192.168.4.54

                      #設定被監控的資料庫

</monitor>

<host default>

        monitor_user             monitor   #監控資料庫的mysql使用者

        monitor_password        123456

</host>

debug 0  #啟動服務不顯示啟動資訊(1顯示)

(4)修改公用設定檔

active_master_role      writer

<host default>

        cluster_interface               eth0

        pid_path                       /var/run/mmm_agentd.pid

        bin_path                       /usr/lib/mysql-mmm/

replication_user          ser51  

#設定主從同步的使用者,要和主要資料庫給本機授權的使用者一致,

#可在/var/lib/mysql/master.info 中查看

    replication_password    123456

        agent_user           agent  #mmm_agent控制使用者

        agent_password      123456

</host>

<host master51>  #設定第一個主伺服器

        ip                  192.168.4.51 #主伺服器IP

        mode              master

        peer               master52 #指定另一台主伺服器

</host>

<host master5>  #設定第二個主伺服器

        ip                  192.168.4.52

        mode               master

        peer                master51

</host>

<host slave53>

        ip                   192.168.4.53

        mode               slave

</host>

<host slave54>  #設定第一個從伺服器

        ip                   192.168.4.54

        mode               slave

</host>

<role writer>    #設定寫伺服器工作模式

        hosts            master51,  imaster52 #寫的主伺服器

        ips              192.168.4.100   #設定VIP地址

        mode            exclusive       #只允許一個使用

</role>

<role reader>

        hosts            slave53,  slave54

        ips              192.168.4.101, 192.168.4.102

        mode            balanced   #均衡模式

</role>

(5)根據設定檔設定,在資料節點主機添加對應的授權使用者

管理節點監控資料庫使用者授權

mysql> grant replication client on *.* to [email protected]'%' identified by "123456";

資料庫節點控制資料庫使用者授權

mysql> grant replication client,process,super on *.* to [email protected]'%'

identified by "123456";

2.4 安裝依賴關係

yum -y install perl.*

yum -y install gcc gcc-c++

tar -xf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902

perl  Makefile.PL

make

make install

rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03

perl Makefile.PL

make

make install

gunzip Net-ARP-1.0.8.tgz

tar -xf Net-ARP-1.0.8.tar

cd Net-ARP-1.0.8/

perl Makefile.PL

make

make install

2.5啟動服務

(1)啟動資料節點主機mmm_agentd服務

[[email protected] ~]# /etc/init.d/mysql-mmm-agent start (stop,status)

[[email protected] ~]# netstat -anptu |grep 9989

(2)啟動管理節點主機mmm_monitor服務

[[email protected] ~]# /etc/init.d/mysql-mmm-monitor start

[[email protected] ~]# netstat -anptu |grep 9988

(3)在管理節點主機上,查看監控資訊

[[email protected] ~]# mmm_control show

[[email protected] ~]# mmm_control set_online master51(agent設定檔裡設定的名稱;set_offine:不線上狀態)

(1)資料節點主機查看 VIP 位址?

ip  addr  show   |  grep  192.168.4.

2.6 測試

mysql> grant all on *.* to  使用者名稱@'%' identified by "123456";

#授權用戶端串連資料庫使用者

mysql  -h192.168.4.100  -u使用者名稱  -p123456

無論關掉master51的還是master52的資料庫服務,此時VIP會被其中一個佔用,使用者串連同樣的VIP一樣能夠串連資料庫,且在資料庫進行操作後,掛掉主的資料庫伺服器重啟啟用後,資料會自動同步。此時VIP不會被搶佔。

停掉agent服務,當其中一個主要資料庫停掉,監控不能夠自動切換VIP。


MySQL高可用叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.