Orchestrator 單節點模式介紹

1、環境說明:

1.一、3臺vm虛擬機系統環境介紹:

3臺VM系統爲:mysql

[root@mgr01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

3臺VM centos 系統都關閉iptables,關閉selinux
3臺虛擬機系統時間同步:
ntpdate ntp1.aliyun.com
3臺vm虛擬機上各安裝一個orchestrator mysql
linux

orchestrator版本爲:orchestrator-3.1.4-linux-amd64.tar.gz
下載地址:
https://github.com/github/orchestrator/releases

mysql的版本爲mysql5.7.24 GA 二進制版本安裝git

三臺機器ip:github

10.0.0.130    172.16.0.130
10.0.0.131    172.16.0.131
10.0.0.132    172.16.0.132

三臺vm綁定主機名:web

[root@mgr01 bin]# cat /etc/hosts
172.16.0.130 mgr01
172.16.0.131 mgr03
172.16.0.132 mgr02
[root@mgr02 ~]# cat /etc/hosts
172.16.0.132 mgr02
172.16.0.131 mgr03
172.16.0.130 mgr01
[root@mgr03 bin]# cat /etc/hosts
172.16.0.132 mgr02
172.16.0.131 mgr03
172.16.0.130 mgr01

提示:orchestrator 建議使用機器名,而不是ip來管理MySQL實例,好比change master to 中的 master_host 若是指定的是ip,有可能致使主從切換或者故障切換出現問題
因此最好是綁定hosts,設置主機名sql

1.二、三臺vm上安裝mysql說明

安裝MySQL的步驟省略,和常規安裝MySQL同樣數據庫

提早配置好一主2從mysql 基於Gtid 過濾複製json

172.16.0.131  master
    172.16.0.130  slave 
    172.16.0.132  slave

三臺vm實例mysql的配置文件都要開啓以下參數:
說明:開啓gtid,只複製測試庫test001下的表,其餘的數據庫都忽略掉後端

[root@mgr01 orchestrator]# egrep -i 'gtid|replicate_wild' /data/mysql/mysql3306/my3306.cnf
####: for gtid
#gtid_executed_compression_period    =1000                          #   1000
gtid_mode                           =on                            #    off
enforce_gtid_consistency            =on                            #    off
replicate_wild_do_table=test001.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=orchestrator.%

172.16.0.131: master操做:centos

mysql -uroot -p'123456' -e "reset mater;"
mysql -e "grant replication slave on *.* to repuser@'172.16.0.%' identified by 'JuwoSdk21TbUser'; flush privileges;"
mysqldump -uroot -p'123456' -B -A -F --set-gtid-purged=OFF  --master-data=2 --single-transaction  --events|gzip >/opt/test_$(date +%F).sql.gz

172.16.0.130:slave 操做:

mysql < /test_$(date +%F).sql.gz
mysql  -e "CHANGE MASTER TO MASTER_HOST='mgr03',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='JuwoSdk21TbUser',MASTER_AUTO_POSITION = 1;start slave;show slave status\G" |grep -i "yes"

172.16.0.132 slave 操做:

mysql < /test_$(date +%F).sql.gz
mysql  -e "CHANGE MASTER TO MASTER_HOST='mgr03',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='JuwoSdk21TbUser',MASTER_AUTO_POSITION = 1;start slave;show slave status\G" |grep -i "yes"

2、三臺vm上安裝Orchestrator

提示!!!!: {{{本篇博文主要介紹Orchestrator 單節點機器安裝和使用}}}

2.一、機器角色說明:

orchestrator機器:172.16.0.130 172.16.0.131 172.16.0.132
orchestrator後端元數據庫MySQL:172.16.0.131
監控目標數據庫:172.16.0.130 172.16.0.131 172.16.0.132

2.二、每臺VM機器都執行下面命令

安裝orchestrator:
下載orchestrator安裝包,orchestrator-3.1.4-linux-amd64.tar.gz
https://github.com/github/orchestrator/releases

解壓orchestrator安裝包:
tar -xf orchestrator-3.1.4-linux-amd64.tar.gz 
會多出usr 、etc下面2個目錄:
[root@mgr01 ~]# ls -lrt /root/
drwxr-xr-x 3 root root 4096 Jan 26 22:05 usr
drwxr-xr-x 3 root root 4096 Jan 26 22:05 etc

將usr/local/orchestrator/orchestrator-sample.conf.json移動到/etc下,並命名爲orchestrator.conf.json

cp /root/usr/local/orchestrator/orchestrator-sample.conf.json /etc/orchestrator.conf.json

安裝完成後建立orchestrator須要用到的庫和用戶:

CREATE DATABASE orchestrator;
CREATE USER 'orchestrator'@'127.0.0.1' IDENTIFIED BY 'orchestrator';
GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orchestrator'@'127.0.0.1';
這裏元數據庫MySQL和orchestrator在同一臺機器上,因此建立帳號的時候用的'127.0.0.1',
若是不在同一臺機器上,將IP換成orchestrator所在機器ip。

監控目標數據庫受權:

在須要監控的目標數據庫上進行受權
CREATE USER 'orchestrator'@'172.16.0.%'  IDENTIFIED BY 'orchestrator';
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'172.16.0.%';
GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'172.16.0.%';
提示:
MySQLTopologyUser 帳號的權限應該設置爲super,process,reload,select,replicatiopn slave,
官網文檔中缺乏了select權限,orchestrator切換過程當中須要經過讀取從庫的mysql.slave_master_info表,獲取複製帳號和密碼,若是沒有select權限,將致使讀取失敗,而且不會有任何錯誤信息報出來。

2.三、每臺VM修改orchestrator配置文件

修改/etc/orchestrator.conf.json以下:

####配置orchestrator後端元數據庫信息

"MySQLOrchestratorHost": "127.0.0.1",
"MySQLOrchestratorPort": 3306,
"MySQLOrchestratorDatabase": "orchestrator",
"MySQLOrchestratorUser": "orchestrator",
"MySQLOrchestratorPassword": "orchestrator",

###配置orchestrator監控的目標數據庫信息

"MySQLTopologyUser": "orchestrator",
"MySQLTopologyPassword": "orchestrator",

2.四、只單獨啓動一臺orchestrator服務

單獨啓動172.16.0.131 機器上的orchestrator服務,默認監聽的端口是3000
啓動命令:

cd /root/usr/local/orchestrator && ./orchestrator --config=/etc/orchestrator.conf.json http &
[root@mgr01 ~]# ps -ef|grep orc
root       3478   3477  6 23:47 pts/3    00:00:02 ./orchestrator --config=/etc/orchestrator.conf.json http
root       3489   2648  0 23:48 pts/2    00:00:00 grep --color=auto orc
[root@mgr01 ~]# ss -lntup|grep orc
tcp    LISTEN     0      128      :::3000                 :::*                   users:(("orchestrator",pid=3478,fd=5))

日誌中有報錯:

2020-02-20 23:47:40 ERROR ReadTopologyInstance(mgr01:3306) show slave hosts: ReadTopologyInstance(mgr01:3306) 'show slave hosts' returned row with <host,port>: <,3306>
2020-02-20 23:47:41 DEBUG Waiting for 15 seconds to pass before running failure detection/recovery
2020-02-20 23:47:41 ERROR ReadTopologyInstance(mgr02:3306) show slave hosts: ReadTopologyInstance(mgr02:3306) 'show slave hosts' returned row with <host,port>: <,3306>

報錯的解決辦法:
在MySQL配置文件my.cnf中report_host參數,
report_host爲只讀參數,必須重啓mysql服務纔可生效
report_host=x.x.x.x //ip爲服務器自身的ip
提示:關於mysql的report-系列參數說明以下:
#report-系列Report系列是設置在從庫上的,包含四個參數 report-[host|port|user|password].
當my.cnf中設置了report-host時,在從庫執行start slave的時候,會將report-host和report-port(默認3306)發給主庫,主庫記錄在全局哈希結構變量 slave_list 中
同時須要注意的是 mysql對report_host限制爲最長60個字節長度,也就是非中文的60個字符,因此mysql服務器的主機名要小於60個字符,不然在作主從複製時,slave會報錯
參考:https://www.jianshu.com/p/9a5b7d30b0ae

緣由:my.cnf配置文件不加report_host ,在orchestrator程序中 show slave hosts 不會顯示host,會致使程序報錯的
或者是修改/etc/orchestrator.conf.json 配置文件參數DiscoverByShowSlaveHosts 爲false,重啓orchestrator 服務,這樣就不須要設置report_host了

2.五、Web頁面訪問介紹

http://10.0.0.130:3000/web/status

初次打開web頁面是看不到mysql cluster 集羣名稱的,須要點擊discover發現instance,以下圖:
Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹
Orchestrator 單節點模式介紹

再次點擊Clusters,便出現集羣別名和Instance:
Orchestrator 單節點模式介紹

選擇home下的status,能夠看到當前的健康的節點:
Orchestrator 單節點模式介紹
查看詳細的複製拓撲:

Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹
查看關於複製失敗的分析:
Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹

關於複製失敗的診斷:

Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹

查看複製的詳細的信息:
Orchestrator 單節點模式介紹

在線調整複製關係有1主2從變爲級聯複製:
Orchestrator 單節點模式介紹

Orchestrator 單節點模式介紹

再由級聯複製變爲1主2從:
Orchestrator 單節點模式介紹

以上就是關於的orchestrator服務單節點啓動管理mysql複製集羣的簡單web頁面應用介紹,歡迎一塊兒交流學習

相關文章
相關標籤/搜索