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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

搭建 mysql-mmm 高可用群集

發布時間:2025/7/25 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建 mysql-mmm 高可用群集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

搭建 mysql-mmm 高可用群集


MMM 簡介 :

MMM(Master-Master replication manager for MySQL)是一套支持雙主故障切換和雙主日常管理的腳本程序。MMM使用Perl語言開發,主要用來監控和管理MySQL Master-Master(雙主)復制,雖然叫做雙主復制,但是業務上同一時刻只允許對一個主進行寫入,另一臺備選主上提供部分讀服務,以加速在主主切換時刻備選主的預熱,可以說MMM這套腳本程序一方面實現了故障切換的功能,另一方面其內部附加的工具腳本也可以實現多個slave的read負載均衡。

MMM提供了自動和手動兩種方式移除一組服務器中復制延遲較高的服務器的虛擬ip,同時它還可以備份數據,實現兩節點之間的數據同步等。由于MMM無法完全的保證數據一致性,所以MMM適用于對數據的一致性要求不是很高,但是又想最大程度的保證業務可用性的場景。對于那些對數據的一致性要求很高的業務,非常不建議采用MMM這種高可用架構。

優點:

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

缺點:

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

MMM 高可用架構 :

  • mmm_mond:監控進程,負責所有的監控工作,決定和處理所有節點角色活動。此腳本需要在監管機上運行。

  • mmm_agentd:運行在每個mysql服務器上的代理進程,完成監控的探針工作和執行簡單的遠端服務設置。此腳本需要在被監管機上運行。

  • mmm_control:一個簡單的腳本,提供管理mmm_mond進程的命令。

    本案實例 :

主機名系統主要軟件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 在所有服務器上安裝 :

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 源 用于安裝 mmmyum -y install mysql-mmm* #安裝 mmm 服務 在所有服務器上安裝

配置 MySQL 服務器 :

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

vim /etc/my.cnf [mysqld] user = mysql #管理用戶 basedir = /usr/local/mysql #工作目錄 datadir = /usr/local/mysql/data #數據庫文件 port = 3306 character_set_server=utf8 pid-file = /usr/local/mysql/mysqld.pid #pid 進程文件 socket = /usr/local/mysql/mysql.sock #鏈接數據庫 server-id = 1 binlog-ignore-db=mysql,information_schema #不需要同步的數據庫名稱 log_slave_updates=true #從服務器更新二進制日志 sync_binlog=1 #同步二進制日志 auto_increment_increment=2 #字段一次遞增值 auto_increment_offset=1 #自增字段的起始值 log-error=/usr/local/mysql/data/mysql_error.log #錯誤日志 general_log=ON #開啟通用日志 general_log_file=/usr/local/mysql/data/mysql_general.log log_bin=mysql-bin #二進制日志 slow_query_log=ON #開啟慢查詢日志 slow_query_log_file=mysql_slow_query.log long_query_time=1
  • 把配置文件復制到其它3臺數據庫服務器上并啟動服務器

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

mysql -u root -p #進入數據庫 在m1上為m2授予從的權限,在m2上也要為m1授予從的權限 mysql>grant replication slave on *.* to 'replication'@'192.168.217.%' identified by '123456'; mysql>show master status; #記錄日志文件名稱和 位置值,在兩臺主上查看。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地址、日志名稱、偏移量 ,不要搞錯mysql>start slave; #開啟同步mysql>show slave status\G; #查看鏈接狀態Slave_IO_Running: YesSlave_SQL_Running: Yes 以上兩臺主都執行,從不需要 。可以在主服務器上創建數據庫 、在另一臺主服務器查看、刪除,做測試。
  • 配置兩臺從服務器 :

指向隨便一臺主服務器即可 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地址、日志名稱、偏移量 ,不要搞錯 start slave;show slave status\G;Slave_IO_Running: YesSlave_SQL_Running: Yes

測試主從、主主、同步 情況

所有主機上都要配置 MMM

  • 配置 mysql-master1 :

    cd /etc/mysql-mmm/ vim mmm_common.conf …… <host default> cluster_interface ens32 #網卡名稱 ……replication_user replication #主從授權用戶 replication_password 123456 agent_user mmm_agent #代理用戶 agent_password 123456 .... <host db1> ip 192.168.217.129 #主服務器 mode master peer db2 </host> .... <host db2> ip 192.168.217.130 #主服務器 mode master peer db1 </host> .... <host db3> ip 192.168.217.131 #從服務器 mode slave </host> .... <host db4> ip 192.168.217.132 #從服務器 mode slave </host> .... <role writer> hosts db1, db2 ips 192.168.217.100 #主服務器虛擬IP地址 mode exclusive </role> .... <role reader> hosts db3, db4 ips 192.168.217.200, 192.168.217.210 #從服務器虛擬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 服務器上 :

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 #數據庫服務器地址auto_set_online 10 #設置自動在線時間 ……<host default>monitor_user mmm_monitor #監控用戶monitor_password 123456 </host>

在所有數據庫授權和修改 :

在所有數據庫上為mmm_agent授權 mysql>grant super, replication client, process on *.* to 'mmm_agent'@'192.168.217.%' identified by '123456';在所有數據庫上為mmm_moniter授權 mysql>grant replication client on *.* to 'mmm_monitor'@'192.168.217.%' identified by '123456';flush privileges; #刷新修改所有數據庫的mmm_agent.conf文件vim /etc/mysql-mmm/mmm_agent.confthis db1 #/根據規mmm_common.conf 配置中<host db1> 對應的IP地址 修改在所有數據庫服務器上啟動代理服務 systemctl start mysql-mmm-agent.service #開啟代理服務 systemctl enable mysql-mmm-agent.service #開機自啟動

配置 monitor 服務器上 :

systemctl start mysql-mmm-monitor.service #啟動監控服務mmm_control show #查看各節點的情況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 說明運轉正常 mmm_control move_role writer db2 #手動指定活躍服務器 注意:不會搶占 mmm_control show #查看各節點的情況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)

測試 :關閉 mysql-master1 服務 ,查看 mysql-master2 會不會搶占 。注意:等待一段時間查看 。

關閉 mysql-slave1 服務 ,mysql-slave1 虛擬IP會自動漂移到mysql-slave2上 ,mysql-slave2上會有兩個地址 。

轉載于:https://blog.51cto.com/13640803/2144621

總結

以上是生活随笔為你收集整理的搭建 mysql-mmm 高可用群集的全部內容,希望文章能夠幫你解決所遇到的問題。

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