部署前準備:
mysql-8.0.27下載地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
mha-manager下載地址:https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
mha-node下載地址:https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm
部署架構:
基本配置
4個節點逐臺配置hostname和/etc/hosts文件
安裝mysql8
4個節點均創建/data目錄,將mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar上傳到/data目錄下,進行解壓安裝
我這里使用操作系統鏡像制作了本地yum源,用來解決依賴問題,命令見下圖
看到如下內容,代表安裝完成
?配置Mysql異步復制集群
啟動hdp2、hdp3、hdp4上的mysql服務,并配置開機自啟
1 |
|
?連接3個節點的mysql數據庫,數據庫默認root密碼通過查看日志獲取
1 2 |
|
3個節點數據庫修改root用戶密碼,命令及sql如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
3個節點配置數據庫server_id,以root用戶登錄mysql進行臨時配置,然后將server_id配置在/etc/my.cnf中,防止重啟后失效
1 2 3 4 5 6 7 8 9 10 11 12 |
|
查看主庫hdp2的二進制日志信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
在主庫hdp2上建立復制專用用戶,并授權
1 2 3 4 5 6 7 |
|
在從庫hdp3和hdp4上創建主庫信息
1 2 3 4 5 6 7 8 9 10 |
|
在從庫啟動復制并查看從庫狀態
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
|
配置Mysql半同步復制
在主庫加載插件semisync_master.so,從庫加載插件semisync_slave.so
1 2 3 4 5 6 7 8 9 |
|
啟用半同步復制
1 2 3 4 5 6 7 8 9 |
|
將半同步插件配置持久化到配置文件中
1 2 3 4 5 6 |
|
重啟從庫上的IO線程,否則仍然為異步復制模式,查詢狀態及重啟命令如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
查詢主庫的半同步復制是否在運行
1 2 3 4 5 6 7 8 9 10 |
|
部署MHA相關組件
環境說明
組件:
mha-manager:部署在hdp1
mha-node:部署在hdp2、hdp3、hdp4
4個節點安裝perl相關依賴
下載epel源
1 |
|
安裝perl-DBD-MySQL、perl-Log-DIspatch、perl-Parallel-ForkManager、perl-Time-HiRes
1 |
|
安裝perl-Config-Tiny,下載地址:http://mirror.centos.org/altarch/7/os/aarch64/Packages/perl-Config-Tiny-2.14-7.el7.noarch.rpm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
4個節點互相配置免密登錄
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
|
hdp2、hdp3、hdp4安裝mha-node
1 2 3 4 |
|
hdp1安裝mha-manager和mha-node
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
配置MHA
在hdp1上創建配置文件目錄并創建配置app1.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
在hdp3、hdp4設置從庫relay_log_purge參數
MHA在發生主從切換的過程中,從庫的恢復過程依賴于relay log,所以這里要將relay log的自動清除設置為OFF,即采用手動清除relay log的方式。
在默認情況下,從服務器上的中繼日志會在SQL線程執行完畢后被自動刪除。
但是在MHA環境中,這些中繼日志在恢復其他從服務器時可能會被用到,因此需要禁用中繼日志的自動刪除功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
在hdp1上創建自動故障轉移腳本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
|
給自動故障轉移腳本授權
1 |
|
hdp1上檢查MHA
1、檢查SSH
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2、?檢查整個復制環境狀況
在hdp2執行root的登錄授權,以及普通用戶repl的登錄授權
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
進行復制環境檢查
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
|
?3、檢查MHA Manager的狀態
1 2 |
|
啟動MHA Manager
1 2 3 4 5 |
|
4、查看啟動日志:tailf /var/log/masterha/app1/manager.log
功能測試
在 hdp2上初始綁定VIP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
模擬主從延時,關閉hd3的slave IO線程
1 2 |
|
在hdp2上生成數據,這里使用sysbench
hdp2安裝sysbench
1 |
|
在hdp2上生成數據
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
停止主服務器hdp2的MySQL服務
1 |
|
驗證VIP漂移
在hdp3上查看ip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
可以看到VIP已經從hdp2(master)漂移到了hdp3(slave1)
通過VIP連接數據庫,查看表數據
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
至此,MHA基本搭建完畢!!