【沃趣科技】MySQL高可用工具Orchestrator系列五:raft多節點模式安裝

沃趣科技發表於2019-12-27

沃趣科技作為國內領先的資料庫雲平臺解決方案提供商,一直致力於企業級資料庫雲平臺產品的研發,為使用者提供高效能、高可用、可擴充套件的的資料庫雲環境及不同業務場景需求的資料庫平臺,滿足客戶對極致效能、資料安全、容災備份、業務永續等需求。沃趣科技憑藉專業的團隊,優質的產品,前沿的技術,貼心的服務贏得了客戶的信任與尊重,也獲得了市場的認同。

————————————————————————————————————————

      前  言

本篇文章介紹Orchestrator raft多節點模式的安裝。

      環  境

orchestrator機器: 10.10.30.150、10.10.30.128、10.10.30.145

orchestrator後端後設資料庫MySQL: 10.10.30.150、10.10.30.128、10.10.30.145

目標監控資料庫: 10.10.30.130:3306

       安裝orchestrator後設資料庫MySQL

在每一臺orchestrator機器上安裝MySQL,安裝的步驟省略,和常規安裝MySQL一樣。

安裝完成後建立orchestrator需要用到的庫和使用者。

CREATE DATABASE IF NOT EXISTS 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。
 密碼按需修改

       安裝orchestrator

下載orchestrator安裝包,這裡用的是orchestrator-3.1.2-linux-amd64.tar.gz

在每一臺orchestrator機器上,解壓orchestrator安裝包。

tar -xvzf orchestrator-3.1.2-linux-amd64.tar.gz -C /

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

[root@10-10-30-150 orchestrator]# ls
orchestrator orchestrator-sample-sqlite.conf.json orchestrator-sample.conf.json resources
[root@10-10-30-150 orchestrator]# cp orchestrator-sample.conf.json /etc/orchestrator.conf.json

      目標監控資料庫授權

在需要監控的目標資料庫上進行授權。這裡目標資料庫是:10.10.30.130:3306


CREATE 
USER 
'orchestrator'@
'orch_host' 
IDENTIFIED 
BY 
'orch_topology_password';

GRANT SUPER, PROCESS,  REPLICATION  SLAVE, RELOAD  ON *.*  TO  'orchestrator'@ 'orch_host';
GRANT  SELECT  ON mysql.slave_master_info  TO  'orchestrator'@ 'orch_host';
GRANT  SELECT  ON ndbinfo.processes  TO  'orchestrator'@ 'orch_host'-- Only for NDB Cluster

其中,將'orch_host' 改成對應orch所在伺服器的ip,'orch_topology_password'改成合適的密碼。這裡orch_host是10.10.30.%,將密碼改為orchestrator。

      修改 orchestrator配置檔案

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

/// 配置orchestrator後端後設資料庫資訊
...
"MySQLOrchestratorHost": "127.0.0.1",
"MySQLOrchestratorPort": 3306,
"MySQLOrchestratorDatabase": "orchestrator",
"MySQLOrchestratorUser": "orchestrator",
"MySQLOrchestratorPassword": "orchestrator",
...
/// 配置orchestrator監控的目標資料庫資訊
"MySQLTopologyUser": "orchestrator",
"MySQLTopologyPassword": "orchestrator",
...
/// 配置raft的相關引數
"RaftEnabled": true,
"RaftDataDir": "/var/lib/orchestrator",
"RaftBind": "10.10.30.150", #本機ip或者hostname
"DefaultRaftPort": 10008, #raft埠
"RaftNodes": [
"10.10.30.150",
"10.10.30.128",
"10.10.30.145"
  ]

      啟動 orchestrator

在每臺orchestrator機器上啟動orchestrator服務。

cd /usr/local/orchestrator && ./orchestrator --config=/etc/orchestrator.conf.json http > /usr/local/orchestrator/orchestrator.log 2>&1 &

web端訪問地址10.10.30.150:3000。 頁面效果如下:

      問  題

這裡假定環境:
 10.10.30.170是從庫
 10.10.30.130是主庫
 如上圖所示

3.1.2版本的orchestrator在透過從庫10.10.30.170發現主庫的時候,透過show slave status得到的master_host雖然是10.10.30.130,但是頁面上顯示的卻是10.10.30.130這個ip對應的hostname:10-10-30-130,如下圖所示:

因此,orchestrator會報10-10-30-130找不到:

2019-11-27 13:48:29 ERROR dial tcp: lookup 10-10-30-130 on 223.5.5.5:53: no such host

      如何解決

  • 將orchestrator版本換成3.1.0

  • 在orchestrator機器上的/etc/hosts下配置域名解析資訊,新增如下:

10.10.30.130 10-10-30-130
10.10.30.183 10-10-30-183
10.10.30.170 10-10-30-170


| 作者簡介

韓傑 沃趣科技高階資料庫工程師

專注MySQL資料庫三年,精通MySQL體系結構,資料庫最佳化,trouble shooting。服務過多家銀行客戶,熟悉銀行業務及系統下資料庫不同架構使用場景。熟悉MySQL主從複製原理,及應用的各種高可用場景。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2670835/,如需轉載,請註明出處,否則將追究法律責任。

相關文章