亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

詳解MySQL高可用MMM搭建方案及架構原理

2024-07-24 13:10:11
字體:
來源:轉載
供稿:網友

先來看看架構,如下圖:

mysql高可用方案,mysql高可用架構方案,mysql,mmm

mysql高可用方案,mysql高可用架構方案,mysql,mmm

部署

1.修改hosts

在所有的服務器中執行相同的操作。

vim /etc/hosts

192.168.137.10 master192.168.137.20 backup192.168.137.30 slave192.168.137.40 monitor

2.添加mysql用戶

只需要在所有的數據庫端執行即可,監控端不需要。

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

mysql高可用方案,mysql高可用架構方案,mysql,mmm

注意:repl用戶在搭建主從服務的時候已經創建好了。

 3.安裝監控軟件

注意:監控端全部安裝,但是監控端只需要用到mysql-mmm-monitor,mysql-mmm-agent不需要啟動。

數據庫端只需要安裝mysql-mmm-agent

1.在監控服務器執行

wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm –ivh epel-release-6-8.noarch.rpmyum –y install mysql-mmm*

2.在數據庫服務器上執行,每個數據庫服務器上都要執行

wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm –ivh epel-release-6-8.noarch.rpmyum -y install mysql-mmm-agent

路徑說明:

mysql高可用方案,mysql高可用架構方案,mysql,mmm

4.配置文件

db服務器配置文件:mmm_agent.conf,mmm_common.conf

監控服務器的配置文件:mmm_mon.conf,mmm_common.conf(該文件所有服務器一樣)

配置db服務器

1.修改master服務器

vim /etc/mysql-mmm/mmm_common.conf
active_master_role  writer  ###積極的master角色的標示,所有的db服務器都需要開啟read_only參數,對于writer服務器監控代理會自動將read_only屬性關閉。<host default> cluster_interface  eth0  #####群集的網絡接口 pid_path    /var/run/mysql-mmm/mmm_agentd.pid ####pid路徑 bin_path    /usr/libexec/mysql-mmm/    #####可執行文件路徑  replication_user  repl   #######復制用戶 replication_password repl   #######復制用戶密碼 agent_user    mmm_agent  #######代理用戶,用于更改只讀操作 agent_password   mmm_agent  #######代理用戶密碼</host><host master>   ##########master1的host名 ip  192.168.137.10 #####master1的ip mode master  ########角色屬性,master代表是主 peer backup  ########與master1對等的服務器的host名,也就是master2的服務器host名</host><host backup>  ####和master的概念一樣 ip  192.168.137.20 mode master peer master</host><host slave>  #####從庫的host名,如果存在多個從庫可以重復一樣的配置 ip  192.168.137.30 ####從的ip mode slave #####slave的角色屬性代表當前host是從</host><role writer> ####writer角色配置 hosts master,backup ####能進行寫操作的服務器的host名,如果不想切換寫操作這里可以只配置master,這樣也可以避免因為網絡延時而進行write的切換,但是一旦master出現故障那么當前的MMM就沒有writer了只有對外的read操作。 ips  192.168.137.100 #####對外提供的寫操作的虛擬IP mode exclusive #####exclusive代表只允許存在一個主,也就是只能提供一個寫的IP</role><role reader> #####read角色配置 hosts backup,slave ######對外提供讀操作的服務器的host名,當然這里也可以把master加進來 ips  192.168.137.120,192.168.137.130,192.168.137.140 ###對外提供讀操作的虛擬ip,這兩個ip和host不是一一對應的,并且ips也hosts的數目也可以不相同,如果這樣配置的話其中一個hosts會分配兩個ip mode balanced ###balanced代表負載均衡</role>

同時將這個文件拷貝到其它的服務器包括監控服務器,配置不變

scp /etc/mysql-mmm/mmm_common.conf slave:/etc/mysql-mmm/scp /etc/mysql-mmm/mmm_common.conf backup:/etc/mysql-mmm/scp /etc/mysql-mmm/mmm_common.conf monitor:/etc/mysql-mmm/

2.代理文件配置

vim /etc/mysql-mmm/mmm_agent.conf

 mysql高可用方案,mysql高可用架構方案,mysql,mmm

注意:這個配置只配置db服務器,監控服務器不需要配置,this后面的host名改成當前服務器的host命令,master2和slave也改成對應的服務器的host名。

3.啟動代理進程

chkconfig mysql-mmm-agent on
service mysql-mmm-agent start

每臺db服務器上都需要啟動

配置監控服務器

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 #####群集的狀態文件,也就是執行mmm_control show操作的顯示來源。 ping_ips   192.168.137.10,192.168.137.20,192.168.137.30 ######被監控的db服務器的ip地址 auto_set_online  0 ####設置自動online的時間,默認是超過60s就將它設置為online,默認是60s,這里將其設為0就是立即online # The kill_host_bin does not exist by default, though the monitor will # throw a warning about it missing. See the section 5.10 "Kill Host # Functionality" in the PDF documentation. # # kill_host_bin  /usr/libexec/mysql-mmm/monitor/kill_host #</monitor><host default> monitor_user  mmm_monitor ####監控db服務器的用戶 monitor_password mmm_monitor ####監控db服務器的密碼</host>debug 0  #######debug 0正常模式,1為debug模式

注意:配置文件中的注釋是為了便于理解,在部署的時候最好把注釋去掉以免因為注釋造成的潛在影響。

啟動監控進程

chkconfig mysql-mmm- monitor onservice mysql-mmm-monitor start

注意:無論是在db端還是在監控端如果有對配置文件進行修改操作都需要重啟代理進程和監控進程。

操作分析

日志文件

日志文件往往是分析錯誤的關鍵,所以要善于利用日志文件進行問題分析。

db端:/var/log/mysql-mmm/mmm_agentd.log

監控端:/var/log/mysql-mmm/mmm_mond.log

命令文件

     mmm_agentd :db代理進程的啟動文件

     mmm_mond :監控進程的啟動文件  

     mmm_backup :備份文件

     mmm_restore :還原文件

     mmm_clone   

     mmm_control:監控操作命令文件    

db服務器端只有mmm_agentd程序,其它的都是在monitor服務器端。

mmm_control用法

mmm_control程序可以用于監控群集狀態、切換writer、設置online/offline操作等。

Valid commands are: help        - show this message ###幫助信息 ping        - ping monitor ###ping當前的群集是否正常 show        - show status ####群集在線狀態檢查 checks [<host>|all [<check>|all]] - show checks status #####執行監控檢查操作 set_online <host>     - set host <host> online ####將host設置為online set_offline <host>    - set host <host> offline ###將host設置為offline mode        - print current mode. ####打印輸出當前的mode set_active      - switch into active mode. set_manual      - switch into manual mode. set_passive      - switch into passive mode. move_role [--force] <role> <host> - move exclusive role <role> to host <host> ####移除writer服務器為指定的host服務器          (Only use --force if you know what you are doing!) set_ip <ip> <host>    - set role with ip <ip> to host <host>

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

[root@monitor mysql-mmm]# mmm_control checks allmaster ping   [last change: 2016/06/07 16:31:24] OKmaster mysql  [last change: 2016/06/07 16:31:24] OKmaster rep_threads [last change: 2016/06/07 16:31:24] OKmaster rep_backlog [last change: 2016/06/07 16:31:24] OK: Backlog is nullslave ping   [last change: 2016/06/07 16:31:24] OKslave mysql  [last change: 2016/06/07 16:31:24] OKslave rep_threads [last change: 2016/06/07 16:31:24] OKslave rep_backlog [last change: 2016/06/07 16:31:24] OK: Backlog is nullbackup ping   [last change: 2016/06/07 16:31:24] OKbackup mysql  [last change: 2016/06/07 16:31:24] OKbackup rep_threads [last change: 2016/06/07 16:31:24] OKbackup rep_backlog [last change: 2016/06/07 16:31:24] OK: Backlog is null

檢查項包括:ping、mysql是否正常運行、復制線程是否正常等

2.檢查群集環境在線狀況

[root@monitor mysql-mmm]# mmm_control show backup(192.168.137.20) master/ONLINE. Roles: reader(192.168.137.120) master(192.168.137.10) master/ONLINE. Roles: writer(192.168.137.100) slave(192.168.137.30) slave/ONLINE. Roles: reader(192.168.137.130)

3.對指定的host執行offline操作

[root@monitor mysql-mmm]# mmm_control set_offline backupOK: State of 'backup' changed to ADMIN_OFFLINE. Now you can wait some time and check all roles![root@monitor mysql-mmm]# mmm_control show backup(192.168.137.20) master/ADMIN_OFFLINE. Roles:  master(192.168.137.10) master/ONLINE. Roles: writer(192.168.137.100) slave(192.168.137.30) slave/ONLINE. Roles: reader(192.168.137.120), reader(192.168.137.130)

4.對指定的host執行onine操作

[root@monitor mysql-mmm]# mmm_control set_online backupOK: State of 'backup' changed to ONLINE. Now you can wait some time and check its new roles![root@monitor mysql-mmm]# mmm_control show backup(192.168.137.20) master/REPLICATION_FAIL. Roles:  master(192.168.137.10) master/ONLINE. Roles: writer(192.168.137.100) slave(192.168.137.30) slave/ONLINE. Roles: reader(192.168.137.120), reader(192.168.137.130)[root@monitor mysql-mmm]# mmm_control show backup(192.168.137.20) master/ONLINE. Roles: reader(192.168.137.120) master(192.168.137.10) master/ONLINE. Roles: writer(192.168.137.100) slave(192.168.137.30) slave/ONLINE. Roles: reader(192.168.137.130)

5.執行write切換

1.查看當前的slave對應的master

[root@slave ~]# mysql -uroot -proot -e 'show slave status /G;'Warning: Using a password on the command line interface can be insecure.*************************** 1. row ***************************    Slave_IO_State: Waiting for master to send event     Master_Host: 192.168.137.10     Master_User: repl     Master_Port: 3306    Connect_Retry: 60    Master_Log_File: mysql-bin.000073   Read_Master_Log_Pos: 1461    Relay_Log_File: mysql-relay-bin.000006    Relay_Log_Pos: 283  Relay_Master_Log_File: mysql-bin.000073    Slave_IO_Running: Yes   Slave_SQL_Running: Yes

2.writer切換,要確保mmm_common.conf文件中的writer屬性有配置對應的host,否則無法切換

[root@monitor mysql-mmm]# mmm_control move_role writer backupOK: Role 'writer' has been moved from 'master' to 'backup'. Now you can wait some time and check new roles info![root@monitor mysql-mmm]# mmm_control show backup(192.168.137.20) master/ONLINE. Roles: reader(192.168.137.120), writer(192.168.137.100) master(192.168.137.10) master/ONLINE. Roles:  slave(192.168.137.30) slave/ONLINE. Roles: reader(192.168.137.130)

3.save從庫自動切換到了新的master

[root@slave ~]# mysql -uroot -proot -e 'show slave status /G;'Warning: Using a password on the command line interface can be insecure.*************************** 1. row ***************************    Slave_IO_State: Waiting for master to send event     Master_Host: 192.168.137.20     Master_User: repl     Master_Port: 3306    Connect_Retry: 60    Master_Log_File: mysql-bin.000039   Read_Master_Log_Pos: 120    Relay_Log_File: mysql-relay-bin.000002    Relay_Log_Pos: 283  Relay_Master_Log_File: mysql-bin.000039    Slave_IO_Running: Yes   Slave_SQL_Running: Yes

其它處理問題

 如果不想讓writer從master切換到backup(包括主從的延時也會導致寫VIP的切換),那么可以在配置/etc/mysql-mmm/mmm_common.conf時,去掉<role write>中的backup

<role writer> ####writer角色配置 hosts master ###這里只配置一個Hosts ips  192.168.137.100 #####對外提供的寫操作的虛擬IP mode exclusive #####exclusive代表只允許存在一個主,也就是只能提供一個寫的IP</role>

 這樣的話當master出現故障了writer寫操作不會切換到backup服務器,并且slave也不會指向新的master,此時當前的MMM之前對外提供寫服務。

總結

主從的延時會導致寫VIP的切換。

       1.對外提供讀寫的虛擬IP是由monitor程序控制。如果monitor沒有啟動那么db服務器不會被分配虛擬ip,但是如果已經分配好了虛擬ip當monitor程序關閉了原先分配的虛擬ip不會立即關閉外部程序還可以連接訪問(只要不重啟網絡),這樣的好處就是對于monitor的可靠性要求就會低一些,目前還不知道能維持多長的時間,但是如果這個時候其中的某一個db服務器故障了就無法處理切換,也就是原先的虛擬ip還是維持不變,掛掉的那臺DB的虛擬ip會變的不可訪問。

       2.agent程序受monitor程序的控制處理write切換,從庫切換等操作。如果monitor進程關閉了那么agent進程就起不到什么作用,它本身不能處理故障。

       3.monitor程序負責監控db服務器的狀態,包括Mysql數據庫、服務器是否運行、復制線程是否正常、主從延時等;它還用于控制agent程序處理故障。

       4.monitor會每隔幾秒鐘監控db服務器的狀態,如果db服務器已經從故障變成了正常,那么monitor會自動在60s之后將其設置為online狀態(默認是60s可以設為其它的值),有監控端的配置文件參數“auto_set_online”決定,群集服務器的狀態有三種分別是:HARD_OFFLINE→AWAITING_RECOVERY→online

       5.默認monitor會控制mmm_agent會將writer db服務器read_only修改為OFF,其它的db服務器read_only修改為ON,所以為了嚴謹可以在所有的服務器的my.cnf文件中加入read_only=1由monitor控制來控制writer和read,root用戶和復制用戶不受read_only參數的影響

以上就是本文的全部內容,希望本文對大家學習mysql有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线激情影院一区| 亚洲春色另类小说| 色综合久久88| 亚洲精品日韩激情在线电影| 91黑丝在线观看| 欧美洲成人男女午夜视频| 欧美精品www在线观看| 国产精品老女人精品视频| 91av在线影院| 亚洲欧美国内爽妇网| 亚洲白虎美女被爆操| 国产美女被下药99| 91精品久久久久久久久久久久久| 欧美日韩视频在线| 欧美日韩免费在线| 成人精品视频99在线观看免费| 日韩av综合中文字幕| 91精品国产色综合久久不卡98口| 中文字幕日韩有码| 亚洲日韩欧美视频一区| 欧美成人自拍视频| 国产91精品久久久久久| 精品国产91久久久久久| 日韩精品极品在线观看播放免费视频| 亚洲国产三级网| 97在线精品视频| 成人性生交大片免费看小说| 久久夜色精品国产亚洲aⅴ| 久久久999国产| 久久久亚洲影院你懂的| 亚洲最大福利视频| 91精品国产高清| 另类视频在线观看| 久久久噜噜噜久噜久久| 亚洲三级免费看| 91久久精品美女| 亚洲免费电影在线观看| 欧美中文字幕在线视频| 97视频在线免费观看| 在线精品国产欧美| 欧美亚洲视频在线观看| 欧美日韩亚洲国产一区| 欧美日韩在线免费| 国产精品久久电影观看| 丰满岳妇乱一区二区三区| 国产精品露脸自拍| 中文字幕日韩av综合精品| 91精品国产乱码久久久久久久久| 国产精品入口福利| 欧美尤物巨大精品爽| 日韩精品中文字| 青草青草久热精品视频在线网站| 免费97视频在线精品国自产拍| 久久精品国产亚洲精品2020| 伊人久久久久久久久久| 亚洲一级免费视频| 成人网址在线观看| 国产精品久久久久久五月尺| 欧美丰满片xxx777| 久久久精品999| 久久久久久高潮国产精品视| 亚洲区免费影片| 欧美午夜片欧美片在线观看| 欧美精品在线看| 国产精品日韩在线观看| 欧美午夜丰满在线18影院| 久久视频在线播放| 欧美xxxx18国产| 精品亚洲永久免费精品| 成人精品久久久| 中文字幕日韩精品在线| 欧美性猛交xxxx黑人| 亚洲国产欧美久久| 丝袜亚洲欧美日韩综合| 欧美福利视频网站| 成人在线激情视频| 92福利视频午夜1000合集在线观看| 一区二区三区视频免费| 欧美重口另类videos人妖| 色噜噜久久综合伊人一本| 欧美伦理91i| 国产又爽又黄的激情精品视频| 欧美成人午夜剧场免费观看| 国产精品一区二区女厕厕| 97avcom| 啊v视频在线一区二区三区| 久久色在线播放| 欧美日本在线视频中文字字幕| 亚洲精品欧美日韩| 亚洲成人免费网站| 久久久国产影院| 国产欧美一区二区三区视频| 亚洲国产精品系列| 精品久久久久久久久久| 欧美激情精品久久久久久免费印度| 日本精品一区二区三区在线| 奇米成人av国产一区二区三区| 亚洲成人网在线观看| 亚洲午夜久久久影院| 久久综合网hezyo| 国产精品黄色影片导航在线观看| 欧美孕妇与黑人孕交| 久久躁狠狠躁夜夜爽| 久久99热精品| 97精品一区二区三区| 欧美性xxxx极品hd欧美风情| 国产精品欧美一区二区| 欧美美最猛性xxxxxx| 日韩av电影在线免费播放| 影音先锋欧美精品| 国模私拍一区二区三区| 久久成人人人人精品欧| 国产精品91一区| 亚洲午夜精品久久久久久性色| 日韩av黄色在线观看| 国产精品av免费在线观看| 国产激情久久久| 高清欧美电影在线| 国产精品视频公开费视频| 亚洲精品电影网在线观看| 欧美黑人巨大精品一区二区| 国产精品久久久久久av下载红粉| 国产精品91在线| 亚洲精品日韩欧美| 精品高清美女精品国产区| 欧美日韩高清区| 欧美精品中文字幕一区| 日韩视频―中文字幕| 疯狂做受xxxx欧美肥白少妇| 亚洲乱码av中文一区二区| 久久综合久中文字幕青草| 久久躁日日躁aaaaxxxx| 亚洲精品第一国产综合精品| 日韩电视剧在线观看免费网站| 日韩中文字幕视频| 欧美肥臀大乳一区二区免费视频| 中文字幕在线视频日韩| 久久av红桃一区二区小说| 亚洲精品v欧美精品v日韩精品| 国产免费一区二区三区在线能观看| 欧美国产日韩视频| 中文字幕综合在线| 欧美一级淫片丝袜脚交| 高清欧美电影在线| 热久久这里只有| 日韩精品视频三区| 亚洲欧美激情另类校园| 国产精品海角社区在线观看| 亚洲国产精品网站| 日韩福利伦理影院免费| 欧美中文在线免费| 欧美视频免费在线| 日韩少妇与小伙激情| 97婷婷大伊香蕉精品视频| 日韩精品在线电影| 亚洲老头同性xxxxx| 国产做受69高潮| 久久91亚洲精品中文字幕奶水| 日韩欧美亚洲成人| 不卡av日日日| 国产精品久久一| 久久免费精品视频| 成人激情视频在线播放| 日韩欧美国产骚|