什么是mysql-mmm高可用群集及怎么樣搭建-創(chuàng)新互聯(lián)

本文主要給大家介紹什么是mysql-mmm 高可用群集及怎么樣搭建,希望可以給大家補(bǔ)充和更新些知識(shí),如有其它問題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關(guān)注我的更新文章的。

目前創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、余干網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

搭建 mysql-mmm 高可用群集


MMM 簡(jiǎn)介 :

MMM(Master-Master replication manager for MySQL)是一套支持雙主故障切換和雙主日常管理的腳本程序。MMM使用Perl語言開發(fā),主要用來監(jiān)控和管理MySQL Master-Master(雙主)復(fù)制,雖然叫做雙主復(fù)制,但是業(yè)務(wù)上同一時(shí)刻只允許對(duì)一個(gè)主進(jìn)行寫入,另一臺(tái)備選主上提供部分讀服務(wù),以加速在主主切換時(shí)刻備選主的預(yù)熱,可以說MMM這套腳本程序一方面實(shí)現(xiàn)了故障切換的功能,另一方面其內(nèi)部附加的工具腳本也可以實(shí)現(xiàn)多個(gè)slave的read負(fù)載均衡。
MMM提供了自動(dòng)和手動(dòng)兩種方式移除一組云服務(wù)器中復(fù)制延遲較高的服務(wù)器的虛擬ip,同時(shí)它還可以備份數(shù)據(jù),實(shí)現(xiàn)兩節(jié)點(diǎn)之間的數(shù)據(jù)同步等。由于MMM無法完全的保證數(shù)據(jù)一致性,所以MMM適用于對(duì)數(shù)據(jù)的一致性要求不是很高,但是又想大程度的保證業(yè)務(wù)可用性的場(chǎng)景。對(duì)于那些對(duì)數(shù)據(jù)的一致性要求很高的業(yè)務(wù),非常不建議采用MMM這種高可用架構(gòu)。

優(yōu)點(diǎn):

1 穩(wěn)定和成熟的開源產(chǎn)品,經(jīng)過了時(shí)間的考驗(yàn) 核心技術(shù)是mysql自己的技術(shù),只是使用腳本程序來控制,所以在原理上比較容易理解,而且管理能夠更智能化。
2 安裝簡(jiǎn)單,配置簡(jiǎn)單,使用簡(jiǎn)單
3 功能強(qiáng)大 (HA,failover,tools套件,cluster模式可以一個(gè)monitor管理多個(gè)mmm組)

缺點(diǎn):

1 由于架構(gòu)里只有一個(gè)寫入點(diǎn),所以擴(kuò)展性是有限的,但是對(duì)一般中型企業(yè)夠用了。
解決方案:對(duì)于大應(yīng)用可以采取垂直拆分到多個(gè)mmm架構(gòu)的方式,使用mmm cluster來管理。
2 對(duì)于讀寫分離和讀負(fù)載均衡還是要程序來開發(fā)或者使用其他工具完成。

MMM 高可用架構(gòu) :

什么是mysql-mmm 高可用群集及怎么樣搭建

  • mmm_mond:監(jiān)控進(jìn)程,負(fù)責(zé)所有的監(jiān)控工作,決定和處理所有節(jié)點(diǎn)角色活動(dòng)。此腳本需要在監(jiān)管機(jī)上運(yùn)行。
  • mmm_agentd:運(yùn)行在每個(gè)mysql服務(wù)器上的代理進(jìn)程,完成監(jiān)控的探針工作和執(zhí)行簡(jiǎn)單的遠(yuǎn)端服務(wù)設(shè)置。此腳本需要在被監(jiān)管機(jī)上運(yùn)行。
  • mmm_control:一個(gè)簡(jiǎn)單的腳本,提供管理mmm_mond進(jìn)程的命令。

    本案實(shí)例 :

主機(jī)名系統(tǒng)主要軟件IP虛擬IP
mysql-master1CentOS 7.3 x86_64mmm192.168.217.129192.168.217.100
mysql-master2CentOS 7.3 x86_64mmm192.168.217.130192.168.217.100
mysql-slave1CentOS 7.3 x86_64mmm192.168.217.131192.168.217.200
mysql-slave2CentOS 7.3 x86_64mmm192.168.217.132192.168.217.210
monitorCentOS 7.3 x86_64mmm192.168.217.133

安裝 MMM 在所有服務(wù)器上安裝 :

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #配置ALI云源,然后安裝epel-release源。

yum clean all && yum makecache    #刪除緩存     下載到本地電腦緩存

yum -y install epel-release    #安裝epel 源  用于安裝 mmm

yum -y install mysql-mmm*   #安裝 mmm 服務(wù)  在所有服務(wù)器上安裝

配置 MySQL 服務(wù)器 :

  • 配置所有的 mysql ,server-id 不同之外其他都相同 :

vim /etc/my.cnf
[mysqld]
user = mysql          #管理用戶 
basedir = /usr/local/mysql    #工作目錄
datadir = /usr/local/mysql/data     #數(shù)據(jù)庫文件
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid  #pid 進(jìn)程文件
socket = /usr/local/mysql/mysql.sock   #鏈接數(shù)據(jù)庫
server-id = 1  

binlog-ignore-db=mysql,information_schema  #不需要同步的數(shù)據(jù)庫名稱
log_slave_updates=true  #從服務(wù)器更新二進(jìn)制日志
sync_binlog=1   #同步二進(jìn)制日志
auto_increment_increment=2  #字段一次遞增值
auto_increment_offset=1   #自增字段的起始值
log-error=/usr/local/mysql/data/mysql_error.log  #錯(cuò)誤日志
general_log=ON               #開啟通用日志
general_log_file=/usr/local/mysql/data/mysql_general.log
log_bin=mysql-bin  #二進(jìn)制日志
slow_query_log=ON  #開啟慢查詢?nèi)罩?
slow_query_log_file=mysql_slow_query.log 
long_query_time=1
  • 把配置文件復(fù)制到其它3臺(tái)數(shù)據(jù)庫服務(wù)器上并啟動(dòng)服務(wù)器

    scp /etc/my.cnf root@192.168.217.130:/etc/   #對(duì)方有權(quán)限的用戶和IP地址  輸入yes 、密碼進(jìn)行復(fù)制 
    systemctl restart mysqld.service   #修改所有數(shù)據(jù)庫的 server-id 重啟服務(wù)
  • 配置主主復(fù)制 :

mysql -u root  -p   #進(jìn)入數(shù)據(jù)庫
在m1上為m2授予從的權(quán)限,在m2上也要為m1授予從的權(quán)限
mysql>grant replication slave on *.* to 'replication'@'192.168.217.%' identified by '123456'; 

mysql>show master status;    #記錄日志文件名稱和 位置值,在兩臺(tái)主上查看。

mysql>change master to master_host='192.168.217.129',
master_user='replication',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1104;
注意 指向的IP地址、日志名稱、偏移量 ,不要搞錯(cuò)

mysql>start slave;    #開啟同步

mysql>show slave status\G;   #查看鏈接狀態(tài)

   Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
以上兩臺(tái)主都執(zhí)行,從不需要 。可以在主服務(wù)器上創(chuàng)建數(shù)據(jù)庫 、在另一臺(tái)主服務(wù)器查看、刪除,做測(cè)試。
  • 配置兩臺(tái)從服務(wù)器 :

指向隨便一臺(tái)主服務(wù)器即可 
mysql>change master to master_host='192.168.217.129',
master_user='replication',master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=1104;
注意 指向的IP地址、日志名稱、偏移量 ,不要搞錯(cuò)
start slave;

show slave status\G;

   Slave_IO_Running: Yes
   Slave_SQL_Running: Yes

測(cè)試主從、主主、同步 情況

所有主機(jī)上都要配置 MMM

  • 配置 mysql-master1  :

    cd /etc/mysql-mmm/
    vim mmm_common.conf 
    ……
    <host default>
    cluster_interface    ens32    #網(wǎng)卡名稱
    ……
    
    replication_user     replication    #主從授權(quán)用戶
    replication_password   123456
    agent_user        mmm_agent    #代理用戶
    agent_password      123456
    ....
    <host db1>
    ip    192.168.217.129   #主服務(wù)器
    mode   master     
    peer   db2
    </host>
    ....
    <host db2>
    ip    192.168.217.130  #主服務(wù)器
    mode   master
    peer   db1
    </host>
    ....
    <host db3>
    ip    192.168.217.131  #從服務(wù)器
    mode   slave
    </host>
    ....
    <host db4>
    ip    192.168.217.132  #從服務(wù)器
    mode   slave
    </host>
    ....
    <role writer>
    hosts  db1, db2
    ips   192.168.217.100     #主服務(wù)器虛擬IP地址
    mode   exclusive
    </role>
    ....
    <role reader>
    hosts  db3, db4
    ips   192.168.217.200, 192.168.217.210  #從服務(wù)器虛擬IP地址
    mode   balanced
    </role>
    scp mmm_common.conf root@192.168.217.130:/etc/mysql-mmm/
    scp mmm_common.conf root@192.168.217.131:/etc/mysql-mmm/
    scp mmm_common.conf root@192.168.217.132:/etc/mysql-mmm/
    scp mmm_common.conf root@192.168.217.133:/etc/mysql-mmm/

配置 monitor 服務(wù)器上 :

cd /etc/mysql-mmm/
vim mmm_mon.conf
……
 ping_ips       192.168.217.129,192.168.217.130,192.168217.131,192.168.217.132   #數(shù)據(jù)庫服務(wù)器地址
 auto_set_online   10    #設(shè)置自動(dòng)在線時(shí)間
……

<host default>
   monitor_user     mmm_monitor   #監(jiān)控用戶
   monitor_password   123456
</host>

在所有數(shù)據(jù)庫授權(quán)和修改 :

在所有數(shù)據(jù)庫上為mmm_agent授權(quán)
mysql>grant super, replication client, process on *.* to 'mmm_agent'@'192.168.217.%' identified by '123456';

在所有數(shù)據(jù)庫上為mmm_moniter授權(quán)
mysql>grant replication client on *.* to 'mmm_monitor'@'192.168.217.%' identified by '123456';

flush privileges;    #刷新

修改所有數(shù)據(jù)庫的mmm_agent.conf文件

vim /etc/mysql-mmm/mmm_agent.conf

this db1   #/根據(jù)規(guī)mmm_common.conf 配置中<host db1> 對(duì)應(yīng)的IP地址 修改

在所有數(shù)據(jù)庫服務(wù)器上啟動(dòng)代理服務(wù)
systemctl start mysql-mmm-agent.service     #開啟代理服務(wù)
systemctl enable mysql-mmm-agent.service   #開機(jī)自啟動(dòng)

配置 monitor 服務(wù)器上 :

systemctl start mysql-mmm-monitor.service    #啟動(dòng)監(jiān)控服務(wù)

mmm_control show       #查看各節(jié)點(diǎn)的情況
  db1(192.168.217.129) master/ONLINE. Roles: writer(192.168.217.100)
  db2(192.168.217.130) master/ONLINE. Roles: 
  db3(192.168.217.131) slave/ONLINE. Roles: reader(192.168.217.200)
  db4(192.168.217.132) slave/ONLINE. Roles: reader(192.168.217.210)
mmm_control checks all    #各種OK  說明運(yùn)轉(zhuǎn)正常
mmm_control move_role writer db2  #手動(dòng)指定活躍服務(wù)器  注意:不會(huì)搶占
mmm_control show       #查看各節(jié)點(diǎn)的情況
  db1(192.168.217.129) master/ONLINE. Roles:
  db2(192.168.217.130) master/ONLINE. Roles: writer(192.168.217.100)
  db3(192.168.217.131) slave/ONLINE. Roles: reader(192.168.217.200)
  db4(192.168.217.132) slave/ONLINE. Roles: reader(192.168.217.210)
測(cè)試 :關(guān)閉 mysql-master1 服務(wù) ,查看 mysql-master2 會(huì)不會(huì)搶占 。注意:等待一段時(shí)間查看 。
關(guān)閉 mysql-slave1 服務(wù) ,mysql-slave1 虛擬IP會(huì)自動(dòng)漂移到mysql-slave2上 ,mysql-slave2上會(huì)有兩個(gè)地址 。

看了以上關(guān)于什么是mysql-mmm 高可用群集及怎么樣搭建,希望能給大家在實(shí)際運(yùn)用中帶來一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問題的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱:什么是mysql-mmm高可用群集及怎么樣搭建-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article46/ddcoeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、ChatGPT手機(jī)網(wǎng)站建設(shè)、企業(yè)建站網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司