日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL-MMM架构部署(有图)

發布時間:2025/6/16 数据库 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL-MMM架构部署(有图) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL-MMM架構部署 MySQL-MMM架構使用 MySQL性能調優

1 MySQL-MMM架構部署
1.1 問題

本案例要求熟悉實現MySQL-MMM的架構部署,主要包括以下任務:

安裝依賴包 安裝軟件包 配置MySQL-MMM

1.2 方案

使用5臺RHEL 6虛擬機,如圖-2所示。其中192.168.4.10、192.168.4.11作為MySQL雙主服務器,192.168.4.12、192.168.4.13作為主服務器的從服務器,192.168.4.100作為MySQL-MMM架構中管理監控服務器,實現監控MySQL主從服務器的工作狀態及決定故障節點的移除或恢復工作,架構搭建完成后使用客戶機192.168.4.120進行訪問,客戶機需要安裝MySQL-client軟件包。

圖-2
1.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:安裝MySQL-MMM

1)安裝依賴關系(MySQL集群內5臺服務器master1,master2,slave1,slave2,monitor)均需安裝

[root@master1 ~]# yum -y install gcc* perl-Date-Manip perl-Date-Manip perl-Date-Manip perl-XML-DOM-XPath perl-XML-Parser perl-XML-RegExp rrdtool perl-Class-Singleton perl perl-DBD-MySQL perl-Params-Validate perl-MailTools perl-Time-HiRes .. ..

2)安裝MySQL-MMM軟件依賴包(MySQL集群內5臺服務器master1,master2,slave1,slave2,monitor)均需安裝,軟件包講師提供

安裝安裝Log-Log4perl 類

[root@mysql-master1 ~]# rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm warning: perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY Preparing... ######################### [100%] 1:perl-Log-Log4perl ######################## [100%]

安裝Algorithm-Diff類

[root@mysql-master1 ~]# tar -zxvf Algorithm-Diff-1.1902.tar.gz //解壓安裝包 .. .. [root@mysql-master1 ~]# cd Algorithm-Diff-1.1902 //切換到安裝目錄 [root@mysql-master1 Algorithm-Diff-1.1902]# perl Makefile.PL //生成makefile文件 Checking if your kit is complete... Looks good Writing Makefile for Algorithm::Diff [root@mysql-master1 Algorithm-Diff-1.1902]# make && make install //編譯,編譯安裝 .. .. [root@mysql-master1 Algorithm-Diff-1.1902]# cd //切換到軟件包目錄 [root@mysql-master1 ~]#

安裝Proc-Daemon類

[root@mysql-master1 ~]# tar -zxvf Proc-Daemon-0.03.tar.gz //解壓安裝包 .. .. [root@mysql-master1 ~]# cd Proc-Daemon-0.03 //切換到安裝目錄 [root@mysql-master1 Proc-Daemon-0.03]# perl Makefile.PL //生成makefile文件 Checking if your kit is complete... Looks good Writing Makefile for Proc::Daemon [root@mysql-master1 Proc-Daemon-0.03]# make && make install //編譯,編譯安裝 .. .. [root@mysql-master1 Proc-Daemon-0.03]# cd //切換到軟件包目錄 [root@mysql-master1 ~]#

安裝Net-ARP虛擬IP分配工具:

[root@mysql-master1 ~]# gunzip Net-ARP-1.0.8.tgz //使用gunzip解壓tgz格式的安裝包 [root@mysql-master1 ~]# tar xvf Net-ARP-1.0.8.tar //解壓tar安裝包 .. .. [root@mysql-master1 ~]# cd Net-ARP-1.0.8 //切換到安裝目錄 [root@mysql-master1 Net-ARP-1.0.8]# perl Makefile.PL //生成makefile文件 Module Net::Pcap is required for make test! Checking if your kit is complete... Looks good Writing Makefile for Net::ARP [root@mysql-master1 Net-ARP-1.0.8]# make && make install //編譯,編譯安裝 .. .. [root@mysql-master1 Net-ARP-1.0.8]# cd //切換到軟件包目錄 [root@mysql-master1 ~]#

安裝Mysql-MMM軟件包:

[root@mysql-master1 ~]# tar xvf mysql-mmm-2.2.1.tar.gz //解壓安裝包 .. .. [root@mysql-master1 ~]# cd mysql-mmm-2.2.1 //切換到安裝目錄 [root@mysql-master1 mysql-mmm-2.2.1]# make && make install //編譯,編譯安裝 .. .. [root@mysql-master1 mysql-mmm-2.2.1]#

步驟二:修改配置文件

1)修改公共配置文件

本案例中MySQL集群的5臺服務器(master1、master2、slave1、slave2、monitor)都需要配置,可以先配好一臺后使用scp復制。

[root@master1 ~]# vim /etc/mysql-mmm/mmm_common.conf active_master_role writer <host default>cluster_interface eth0 //設置主從同步的用戶pid_path /var/run/mmm_agentd.pidbin_path /usr/lib/mysql-mmm/replication_user slaveuser //設置主從同步的用戶replication_password pwd123 //設置主從同步用戶密碼agent_user agent //mmm-agent控制數據庫用戶agent_password agent //mmm-agent控制數據庫用戶密碼 </host> <host master1> //設置第一個主服務器ip 192.168.4.10 //master1 IP 地址mode masterpeer master2 //指定另外一臺主服務器 </host> <host master2> //指定另外一臺主服務器ip 192.168.4.11mode masterpeer master1 </host> <host slave1> //設置第一臺從服務器ip 192.168.4.12 //slave1 IP 地址mode slave //本段落配置的是slave服務器 </host> <host slave2>ip 192.168.4.13mode slave </host> <role writer> //設置寫入服務器工作模式hosts master1,master2 //提供寫的主服務器ips 192.168.4.200 //設置VIP地址mode exclusive //排他模式 </role> <role reader> //設置讀取服務器工作模式hosts slave1,slave2 //提供讀的服務器信息ips 192.168.4.201,192.168.4.202 //多個虛擬IPmode balanced //均衡模式 </role> [root@master1 ~]#

2)修改管理主機配置文件(monitor主機配置)

[root@monitor ~]# vim /etc/mysql-mmm/mmm_mon.conf include mmm_common.conf <monitor>ip 192.168.4.100 //設置管理主機IP地址pid_path /var/run/mmm_mond.pidbin_path /usr/lib/mysql-mmm/status_path /var/lib/misc/mmm_mond.statusping_ips 192.168.4.10,192.168.4.11,192.168.4.12,192.168.4.13//設置被監控數據庫 </monitor> <host default>monitor_user monitor //監控數據庫MySQL用戶 monitor_password monitor //監控數據庫MySQL用戶密碼 </host> debug 0 [root@monitor ~]#

3)修改客戶端配置文件

master1配置

[root@master1 ~]# cat /etc/mysql-mmm/mmm_agent.conf include mmm_common.conf this master1

master2配置

[root@master2 ~]# cat /etc/mysql-mmm/mmm_agent.conf include mmm_common.conf this master2

slave1配置

[root@slave1 ~]# cat /etc/mysql-mmm/mmm_agent.conf include mmm_common.conf this slave1

slave2配置

[root@slave2 ~]# cat /etc/mysql-mmm/mmm_agent.conf include mmm_common.conf this slave2

2 MySQL-MMM架構使用
2.1 問題

本案例要求基于普通版的MySQL服務器改造MMM架構,完成以下任務操作:

啟動MMM集群架構 設置集群中服務器為online狀態

2.2 方案

MySQL-MMM架構部署完成后需要啟動,數據庫端啟動mmm-agent進程,管理端啟動mmm-monitor進程,啟動完成后設置所有數據庫主機狀態為online。
2.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:啟動MMM集群架構

1)啟動mmm-agent進程

master1操作:

[root@master1 ~]# /etc/init.d/mysql-mmm-agent start Daemon bin: '/usr/sbin/mmm_agentd' Daemon pid: '/var/run/mmm_agentd.pid' Starting MMM Agent daemon... Ok

master2操作:

[root@master2 ~]# /etc/init.d/mysql-mmm-agent start Daemon bin: '/usr/sbin/mmm_agentd' Daemon pid: '/var/run/mmm_agentd.pid' Starting MMM Agent daemon... Ok

slave1操作:

[root@master2 ~]# /etc/init.d/mysql-mmm-agent start Daemon bin: '/usr/sbin/mmm_agentd' Daemon pid: '/var/run/mmm_agentd.pid' Starting MMM Agent daemon... Ok

slave2操作:

[root@slave2 ~]# /etc/init.d/mysql-mmm-agent start Daemon bin: '/usr/sbin/mmm_agentd' Daemon pid: '/var/run/mmm_agentd.pid' Starting MMM Agent daemon... Ok

2)啟動mmm-monitor進程

monitor主機操作:

[root@monitor ~]# /etc/init.d/mysql-mmm-monitor start Daemon bin: '/usr/sbin/mmm_mond' Daemon pid: '/var/run/mmm_mond.pid' Starting MMM Monitor daemon: Ok

步驟二:設置集群中服務器為online狀態

控制命令只能在管理端monitor服務器上執行。

查看當前集群中各服務器狀態:

[root@monitor ~]# mmm_control showmaster1(192.168.4.10) master/AWAITING_RECOVERY. Roles: master2(192.168.4.11) master/AWAITING_RECOVERY. Roles: slave1(192.168.4.12) slave/AWAITING_RECOVERY. Roles: slave2(192.168.4.13) slave/AWAITING_RECOVERY. Roles:

設置4臺數據庫主機狀態為online:

[root@monitor ~]# mmm_control set_online master1 OK: State of 'master1' changed to ONLINE. Now you can wait some time and check its new roles! [root@monitor ~]# mmm_control set_online master2 OK: State of 'master2' changed to ONLINE. Now you can wait some time and check its new roles! [root@monitor ~]# mmm_control set_online slave1 OK: State of 'slave1' changed to ONLINE. Now you can wait some time and check its new roles! [root@monitor ~]# mmm_control set_online slave2 OK: State of 'slave2' changed to ONLINE. Now you can wait some time and check its new roles! [root@monitor ~]#

再次查看當前集群中各服務器狀態:

[root@monitor ~]# mmm_control showmaster1(192.168.4.10) master/ONLINE. Roles: writer(192.168.4.200)master2(192.168.4.11) master/ONLINE. Roles: slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202) [root@monitor ~]#

步驟三:測試MySQL-MMM架構

1)客戶機安裝MySQL-client軟件包

[root@client ~]# tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar .. .. [root@client ~]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm .. ..

2)MySQL-MMM虛擬IP訪問測試

[root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases" Warning: Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tarena | | test | +--------------------+ [root@client ~]# [root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases" Warning: Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tarena | | test | +--------------------+ [root@client ~]# [root@client ~]# mysql -h192.168.4.202 -uroot -ppwd123 -e "show databases" Warning: Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tarena | | test | +--------------------+ [root@client ~]#

3)主數據庫宕機測試

[root@master1 ~]# service mysql stop //停止master1上服務 Shutting down MySQL.... [確定] [root@master1 ~]# [root@monitor ~]# mmm_control show //查看集群內服務器狀態

通過輸出信息可以看到虛擬IP從master1切換到master2:

master1(192.168.4.10) master/HARD_OFFLINE. Roles: master2(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.200)slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202) [root@monitor ~]# [root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases" //訪問虛擬IP測試 Warning: Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tarena | | test | +--------------------+ [root@client ~]#

3 MySQL性能調優
3.1 問題

基于一臺普通版的MySQL服務器,執行下列操作:

練習my.cnf配置相關選項 啟用慢查詢日志 查看各種系統變量、狀態變量

3.2 步驟

實現此案例需要按照如下步驟進行。

步驟一:MySQL并發及連接控制

max_connections對應并發客戶端連接的數量,增加該值會增加 mysqld 要求的文件描述符的數量。若這個數值太小,可能會經常出現“too many connections”錯誤。比如 默認的數值是151,可以將其改為1024。

1)查看當前已建立的連接數

mysql> FLUSH STATUS; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GLOBAL STATUS LIKE 'max_used_connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Max_used_connections | 5 | +----------------------+-------+ 1 row in set (0.05 sec)

2)查看當前的最大連接數限制

mysql> SHOW VARIABLES LIKE 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 151 | +-----------------+-------+ 1 row in set (0.00 sec)

步驟二:MySQL緩存參數控制

當 Key_reads / Key_read_requests 較低時,可適當加大key_buffer_size的緩存值,以提高性能。而增大sort_buffer_size的值,可以顯著提高ORDER和GROUP的響應速度。

1)查看key_read相關數值

mysql> SHOW GLOBAL STATUS LIKE 'key_read%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Key_read_requests | 0 | | Key_reads | 0 | +-------------------+-------+ 2 rows in set (0.00 sec)

2)查看當前的key_buffer_size緩存大小

mysql> SHOW VARIABLES LIKE 'key_buffer_size'; +-----------------+---------+ | Variable_name | Value | +-----------------+---------+ | key_buffer_size | 8388608 | +-----------------+---------+ 1 row in set (0.03 sec)

3)查看當前的sort_buffer_size大小

mysql> SHOW VARIABLES LIKE 'sort_buffer_size'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | sort_buffer_size | 262144 | +------------------+--------+ 1 row in set (0.00 sec)

4)查看檢索表記錄時的讀取緩存大小

緩存值read_buffer_size和read_rnd_buffer_size會影響SQL查詢的響應速度:

mysql> SHOW VARIABLES LIKE 'read_%_size'; +----------------------+--------+ | Variable_name | Value | +----------------------+--------+ | read_buffer_size | 131072 | | read_rnd_buffer_size | 262144 | +----------------------+--------+ 2 rows in set (0.00 sec)

步驟三:MySQL線程重用和開表控制

分析“已打開表的數量/當前可緩存表的數量”,比值不超過95%就基本正常。

1)查看當前已打開、一共打開過多少個表

mysql> SHOW GLOBAL STATUS LIKE 'open%tables'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Open_tables | 23 | | Opened_tables | 72 | +---------------+-------+ 2 rows in set (0.01 sec)

2)查看當前可緩存多少個打開的表

mysql> SHOW VARIABLES LIKE 'table_open_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | table_open_cache | 2000 | +------------------+-------+ 1 row in set (0.00 sec)

步驟四:MySQL調整示例:記錄慢查詢

1)調整my.cnf配置文件,啟用慢查詢

[root@dbsvr1 ~]# vim /etc/my.cnf [mysqld] .. .. slow_query_log=1 //啟用慢查詢 slow_query_log_file=mysql-slow.log //制定慢查詢日志文件 long_query_time=5 //查詢耗時超過5秒才記錄 log_queries_not_using_indexes=1 //記錄未使用索引的查詢 [root@dbsvr1 ~]# service mysql restart Shutting down MySQL..... [確定] Starting MySQL.... [確定]

2)查看慢查詢日志(mysqldumpslow工具)

[root@dbsvr1 ~]# mysqldumpslow /var/lib/mysql/mysql-slow.log Reading mysql slow query log from /var/lib/mysql/mysql-slow.log Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=0.0 (0), 0users@0hosts .. ..

3)了解與查詢相關的緩存選項

查看當前的查詢緩存大小:

mysql> SHOW VARIABLES LIKE 'query_cache%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | query_cache_limit | 1048576 | //超過此大小則不再緩存 | query_cache_min_res_unit | 4096 | | query_cache_size | 1048576 | //緩存空間的大小 | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | +------------------------------+---------+ 5 rows in set (0.00 sec)

查看當前的查詢緩存統計數據:

mysql> SHOW GLOBAL STATUS LIKE 'qcache%'; +-------------------------+---------+ | Variable_name | Value | +-------------------------+---------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 1031368 | //緩存中的空閑內存 | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 100 | //不適合緩存的數量 | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +-------------------------+---------+ 8 rows in set (0.00 sec)

步驟五:關于MySQL狀態和相關變量的查看

1)查看服務器的相關狀態值(運行中動態變化)

使用SHOW GLOBAL STATUS語句,可結合LIKE條件做模糊過濾。

默認有400多個狀態值:

mysql> SHOW GLOBAL STATUS\G *************************** 1. row *************************** Variable_name: Aborted_clientsValue: 0 *************************** 2. row *************************** Variable_name: Aborted_connectsValue: 0 *************************** 3. row *************************** Variable_name: Binlog_cache_disk_useValue: 0 *************************** 4. row *************************** Variable_name: Binlog_cache_useValue: 0 *************************** 5. row *************************** Variable_name: Binlog_stmt_cache_disk_useValue: 0 .. .. //省略中間的大量狀態值 .. .. *************************** 435. row *************************** Variable_name: Threads_connectedValue: 1 *************************** 436. row *************************** Variable_name: Threads_createdValue: 1 *************************** 437. row *************************** Variable_name: Threads_runningValue: 1 *************************** 438. row *************************** Variable_name: UptimeValue: 5322 *************************** 439. row *************************** Variable_name: Uptime_since_flush_statusValue: 2283 439 rows in set (0.00 sec)

2)查看服務器的運行選項(一般為靜態限制,可通過my.cnf文件配置,或SET修改)

使用SHOW VARIABLES語句,也可結合LIKE條件做模糊過濾。

默認也有400多個(接近500個)配置選項:

mysql> SHOW VARIABLES\G *************************** 1. row *************************** Variable_name: auto_increment_incrementValue: 1 *************************** 2. row *************************** Variable_name: auto_increment_offsetValue: 1 *************************** 3. row *************************** Variable_name: autocommitValue: ON *************************** 4. row *************************** Variable_name: automatic_sp_privilegesValue: ON *************************** 5. row *************************** Variable_name: back_logValue: 80 .. .. //省略中間的大量狀態值 .. .. *************************** 486. row *************************** Variable_name: version_commentValue: MySQL Cluster Community Server (GPL) *************************** 487. row *************************** Variable_name: version_compile_machineValue: x86_64 *************************** 488. row *************************** Variable_name: version_compile_osValue: Linux *************************** 489. row *************************** Variable_name: wait_timeoutValue: 28800 *************************** 490. row *************************** Variable_name: warning_countValue: 0 490 rows in set (0.01 sec)

轉載于:https://blog.51cto.com/13735155/2134619

總結

以上是生活随笔為你收集整理的MySQL-MMM架构部署(有图)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精选中文字幕 | 人人爽人人插 | 亚洲免费一 | 国产传媒av | 精品国模| 国产精品xx | 天天插夜夜操 | 天天操操操操 | 亚洲视频久久久 | 无码日韩精品一区二区 | 成年在线视频 | 国外成人免费视频 | 欧美性受视频 | 中国黄色免费网站 | 国产睡熟迷奷系列精品视频 | 色图自拍 | 精品无码一区二区三区的天堂 | 精品人妻一区二区三区蜜桃 | 天天看夜夜爽 | 午夜av福利 | 国产小视频在线免费观看 | 美女网站视频在线观看 | 51吃瓜网今日 | 亚洲国产一区视频 | 91精品国产入口 | 成人精品免费视频 | 日韩免费视频一区二区视频在线观看 | 久久久精品福利 | 欧美色图校园春色 | 亚洲精品日韩在线观看 | 欧美日韩一区二区三区四区五区六区 | 亚洲免费观看高清完整版在线 | 国产视频自拍一区 | 天天曰天天射 | 男女做爰猛烈高潮描写 | 午夜精品福利在线 | 潘金莲一级淫片a.aaaaa播放 | 国产在线看一区 | 69国产精品视频免费观看 | 国产日韩精品一区二区三区 | 91网页版| 日本一本视频 | 国产在线综合视频 | 日韩视频免费观看高清 | 一区二区欧美视频 | 性――交――性――乱a | 久久精品综合 | 台湾150部性三级 | 亚洲欧美日韩中文在线 | 999免费视频| 日本三级中文 | 超碰在线97观看 | 中文字幕一区二区三区门四区五区 | 久久国产影视 | 蜜桃91丨九色丨蝌蚪91桃色 | 色人阁在线视频 | 天降女子在线 | 免费黡色av | 成人香蕉视频在线观看 | 亚洲不卡网 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 欧美视频一二三 | 2021狠狠操 | 第九色 | 成人性生交大免费看 | 亚洲香蕉 | 邻居少妇张开腿让我爽了在线观看 | 欧美成人a| 日本一区二区免费电影 | 欧美xxxxbbb | 色xxxxxx | 精品成人免费视频 | 国产一区二区三区观看 | 日本三级理论片 | 国产中出视频 | 特级丰满少妇一级aaaa爱毛片 | 黑名单上的人全集免费观看 | 极品少妇在线观看 | 日韩国产毛片 | 黄色三级视频网站 | 女人下边被添全过视频 | 7799精品视频 | 干b视频在线观看 | 黄色一级片欧美 | 韩国黄色精品 | 很黄很污的视频网站 | 黄色小视频在线观看免费 | 亚洲大片精品 | 日本黄色三级 | 五月婷婷狠狠 | 欧美丝袜一区二区三区 | 拔擦8x成人一区二区三区 | 久久精品国产亚洲av麻豆 | 成人免费在线播放视频 | 中文字幕在线播 | 国产高清视频免费在线观看 | 无码精品人妻一二三区红粉影视 | 高hnp视频 | 国产自产精品 |