介紹html
在MySQL高可用架構中,目前使用比較多的是Percona的PXC,Galera以及MySQL 5.7以後的MGR等,其餘的還有的MHA,今天介紹另外一個比較好用的MySQL高可用複製管理工具:Orchestrator(orch)。
mysql
Orchestrator(orch):go編寫的MySQL高可用性和複製拓撲管理工具,支持複製拓撲結構的調整,自動故障轉移和手動主從切換等。後端數據庫用MySQL或SQLite存儲元數據,並提供Web界面展現MySQL複製的拓撲關係及狀態,經過Web可更改MySQL實例的複製關係和部分配置信息,同時也提供命令行和api接口,方便運維管理。相對比MHA來看最重要的是解決了管理節點的單點問題,其經過raft協議保證自己的高可用。GitHub的一部分管理也在用該工具進行管理。關於Orchestrator更詳細的介紹能夠看Github的介紹,大體的特色有:git
① 自動發現MySQL的複製拓撲,而且在web上展現。github
② 重構複製關係,能夠在web進行拖圖來進行復制關係變動。web
③ 檢測主異常,並能夠自動或手動恢復,經過Hooks進行自定義腳本。sql
④ 支持命令行和web界面管理複製。數據庫
部署以下json
試驗環境vim
mysql服務器 orchestrator & master:10.72.16.112 slave1:10.72.16.50 slave2:10.72.16.59
一、安裝orchestratorsegmentfault
orchestrator-cli-3.0.11-1.x86_64.rpm安裝程序須要依賴包,安裝依賴包jq-1.五、oniguruma-5.9.5
而且最好在redhat 7的操做系統安裝。
yum install orchestrator-3.1.2-1.x86_64.rpm jq-1.5-1.el7.x86_64.rpm oniguruma-5.9.5-3.el7.x86_64.rpm 安裝完成後,目錄在/usr/local/orchestrator
二、配置主機解析
[root@hchtest4 ~]# cat /etc/hosts 10.72.16.112 hchtest4 10.72.16.50 hchtest3 10.72.16.59 hchtest-elk
三、3臺MySQL主從複製省略
四、orchestrator的後臺管理端數據庫權限配置(112上執行)
在orch後端數據庫112上: CREATE DATABASE IF NOT EXISTS orchestrator; CREATE USER 'orchestrator'@'%' IDENTIFIED BY 'hch123'; GRANT ALL PRIVILEGES ON orchestrator.* TO 'root'@'%';
五、3臺orch管理的數據庫集羣上,權限及數據庫執行(3臺數據庫執行)
CREATE USER 'orchestrator'@'%' IDENTIFIED BY 'hch123'; GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'%'; GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'%'; CREATE DATABASE IF NOT EXISTS meta; GRANT SELECT ON meta.* TO 'orchestrator'@'%';
六、修改配置文件
cp /usr/local/orchestrator/conf/orchestrator-sample.conf.json /etc/orchestrator.conf.json vim /etc/orchestrator.conf.json #被管理MySQL數據庫的用戶權限數據庫帳號密碼 "MySQLTopologyUser": "root", "MySQLTopologyPassword": "hch123", #orchestrator管理後臺數據庫帳號密碼 "MySQLOrchestratorHost": "10.72.16.112", "MySQLOrchestratorPort": 3306, "MySQLOrchestratorDatabase": "orchestrator", "MySQLOrchestratorUser": "orchestrator", "MySQLOrchestratorPassword": "hch123", "DiscoverByShowSlaveHosts": false,
DiscoverByShowSlaveHosts": ture 這種狀況下,必須配置report_host
$ vim /etc/my_3306.cnf
report_host=192.168.225.128 //ip爲自身的ip
說明:不加report_host ,show slave hosts 不會顯示host,會致使程序報錯的
report_host爲只讀參數,必須重啓纔可生效
說明:
DiscoverByShowSlaveHosts": false 也能夠,這樣就不須要設置report_host了
七、建立命令軟連接
ln -s /usr/local/orchestrator/orchestrator /usr/bin/
八、啓動orchestrator
orchestrator --debug --config=/etc/orchestrator.conf.json http 查看端口 [root@orchestrator ~]# netstat -tnpl |grep :3000 tcp6 0 0 :::3000 :::* LISTEN 6084/orchestrator
八、命令行發現:
orchestrator -c discover -i 10.72.16.50 orchestrator -c discover -i 10.72.16.59 orchestrator -c clusters ----查看集羣
九、訪問網頁
http://10.72.16.51:3000
參考
Orchestrator部署配置 - qq_26496673的博客 - CSDN博客 https://blog.csdn.net/qq_26496673/article/details/82810671
MySQL高可用複製管理工具 —— Orchestrator介紹 - jyzhou - 博客園 https://www.cnblogs.com/zhoujinyi/p/10387581.html
MySQL高可用複製管理工具 —— Orchestrator使用 - jyzhou - 博客園 https://www.cnblogs.com/zhoujinyi/p/10394389.html
orchestrator 安裝?參數?VIP腳本? - wangxin3618的博客 - CSDN博客 https://blog.csdn.net/wangxin3618/article/details/97013376
orchestrator簡介 - fearless11的博客 - CSDN博客 https://blog.csdn.net/fearless11/article/details/77170764
Orchestrator管理mysql複製 - 我的文章 - SegmentFault 思否 https://segmentfault.com/a/1190000017838535?utm_source=tag-newest
MySQL複製拓撲管理工具Orchestrator - 簡書 https://www.jianshu.com/p/62e95a131028
MySQL高可用探索之orchestrator | Yangtze River's blog https://riverdba.github.io/2019/03/19/orchestrator/