PTK介紹
PTK (Provisioning Toolkit)是一款針對 MogDB 數(shù)據(jù)庫開發(fā)的軟件安裝和運(yùn)維工具,僅需要執(zhí)行一行命令即可幫助用戶便捷地完成MogDB數(shù)據(jù)庫的安裝部署。
建議將PTK部署在運(yùn)維管理平臺,方便統(tǒng)一管理多套數(shù)據(jù)庫集群。
官方文檔地址:https://docs.mogdb.io/zh/ptk/v0.2/overview
與OM對比
| PTK | OM | |
|---|---|---|
| 支持系統(tǒng) | Windows、Linux、MacOS | Linux |
| 支持版本 | MogDB所有版本 | MogDB 3.0及以下所有版本 |
| 軟件下載 | 在線/離線 | 離線 |
| 部署方式 | 與數(shù)據(jù)庫解偶,可管理多套數(shù)據(jù)庫集群 | 與數(shù)據(jù)庫部署在一起,一對一管理 |
| 軟件升級 | 與數(shù)據(jù)庫解偶,自升級 | 需要與數(shù)據(jù)庫同步升級 |
| 數(shù)據(jù)庫安裝 | 既支持根據(jù)系統(tǒng)自動選擇, 也支持離線指定 |
僅支持離線指定 |
| 內(nèi)核參數(shù) | 自動生成修復(fù)文本,可一鍵修復(fù) | 有些參數(shù)值有待優(yōu)化 |
| 配置文件 | 通俗易懂 | 目錄地址設(shè)置不當(dāng)會preinstall失敗 |
| 網(wǎng)絡(luò)檢測 | 多IP自動探活 | - |
| 兼容性 | 兼容gs_om,會創(chuàng)建gs_om需要的靜態(tài)文件 | - |
安裝部署
下載PTK
--在線下載
[root@node1 software]# curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh
info: downloading ptk package
Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure
Detected shell: bash
Shell profile: /root/.bash_profile
ptk has been added to PATH in /root/.bash_profile
open a new terminal or source /root/.bash_profile to active it
Installed path: /root/.ptk/bin/ptk
[root@node1 software]# source ~/.bash_profile
[root@node1 software]# ptk --version
PTK Version: v0.2.3
Go Version: go1.17.1
Build Date: 2022-07-04T13:06:48Z
Git Hash: d064a36
--離線下載
參考: https://docs.mogdb.io/zh/ptk/v0.2/install
配置文件
配置文件可以自己根據(jù)官方文檔自己寫,也可以使用命令生成配置文件模版
生成配置文件
[root@node1 ~]# cd ~/.ptk/
[root@node1 .ptk]# ptk template > config.yaml
編輯配置文件
--密碼加密,要對自己服務(wù)器的賬號密碼進(jìn)行加密,此部分僅做展示
[root@node1 .ptk]# ptk encrypt omm
omm: pTk6YjM5YWY4MmM8QzxCPEU/Qm5UWFZGXzB4bldmcHI3T1lKMEVXeXltZzVBemU3V3EwcWpvbXJrM2dlSzg=
[root@node1 .ptk]# ptk encrypt MogDB@0701
MogDB@0701: pTk6MDQ2Y2U0ZDE8QzxCPEU/RE8ycy1UZFpEZ0xSMU9PQzRZMkpoY2JuT0x2Z05FbG9pZDlBMm5hZlFEVzQ=
--編輯后配置文件展示
[root@node1 .ptk]# cat config.yaml |grep -v '#'
global:
cluster_name: "MogDB3.0"
user: "omm"
group: "dbgrp"
db_password: "pTk6MDQ2Y2U0ZDE8QzxCPEU/RE8ycy1UZFpEZ0xSMU9PQzRZMkpoY2JuT0x2Z05FbG9pZDlBMm5hZlFEVzQ="
db_port: 26000
cm_server_port: 15300
base_dir: "/opt/mogdb"
app_dir: "/opt/mogdb/app"
log_dir: "/opt/mogdb/log"
data_dir: "/data/mogdb"
tool_dir: "/opt/mogdb/tool"
cm_dir: "/opt/mogdb/cm"
ssh_option:
port: 22
user: root
password: "pTk6MDQ2Y2U0ZDE8QzxCPEU/RE8ycy1UZFpEZ0xSMU9PQzRZMkpoY2JuT0x2Z05FbG9pZDlBMm5hZlFEVzQ="
db_servers:
- host: "192.168.122.221"
db_port: 26000
ha_port: 26001
role: "primary"
- host: "192.168.122.157"
db_port: 26000
ha_port: 26001
role: "standby"
- host: "192.168.122.68"
db_port: 26000
ha_port: 26001
role: "standby"
檢查操作系統(tǒng)
檢查命令
ptk checkos -i A1,A2,A3 # 要檢查多個狀態(tài),請按以下格式輸入項(xiàng)目:“-i A1,A2,A3”。
ptk checkos -i A # 檢查全部檢查項(xiàng)
ptk checkos -i A --detail # 加上--detail 會顯示詳細(xì)信息
詳細(xì)信息請查看幫助文檔 ptk checkos --help
檢查等級
- OK:符合預(yù)期值,滿足安裝需求
- Warning: 不符合預(yù)期值,但可以滿足安裝需求
- Abnormal: 不滿足安裝要求,可能會導(dǎo)致安裝過程失敗,需根據(jù) PTK 給出的修改建議腳本,人工執(zhí)行修改
- ExecuteError: 執(zhí)行錯誤,該等級表示 PTK 在檢查時執(zhí)行命令失敗,可能為用戶環(huán)境工具缺失或內(nèi)部BUG,需根據(jù)實(shí)際錯誤提示進(jìn)行修正
在安裝數(shù)據(jù)庫之前,需確保所有的檢查項(xiàng)都在 OK 或 Warning 級別,如果存在 Abnormal 的檢查結(jié)果,在安裝時會報錯退出。
--檢查所有節(jié)點(diǎn)
[root@node1 .ptk]# ptk checkos -i A -f config.yaml
INFO[2022-07-06T09:48:23.777] local ip: 192.168.122.221
[host 192.168.122.221]: not found tool: bzip2
[host 192.168.122.221]: not found tool: lsof
[host 192.168.122.221]: not found tool: ifconfig
[host 192.168.122.221]: not found package: numactl
[host 192.168.122.68]: not found tool: bzip2
[host 192.168.122.68]: not found tool: lsof
[host 192.168.122.68]: not found package: numactl
[host 192.168.122.157]: not found tool: bzip2
[host 192.168.122.157]: not found tool: lsof
[host 192.168.122.157]: not found package: numactl
Please installed the above missing packages first before do other operations
[PTK-4010] the system does not meet installation requirements
--安裝依賴包
[root@node1 .ptk]# yum -y install bzip2.x86_64 bzip2-devel.x86_64 lsof.x86_64 numactl.x86_64 numactl-devel.x86_64 net-tools.x86_64
--再次檢查
[root@node1 .ptk]# ptk checkos -i A -f config.yaml
--執(zhí)行系統(tǒng)檢查,不但會將不符合安裝需求的檢查項(xiàng)列出來,還會生成一個修復(fù)腳本,腳本的格式為root_fix_os.%Y.%m%d.%H%M%S.sh

--執(zhí)行修復(fù)腳本
在集群內(nèi)所有節(jié)點(diǎn)執(zhí)行,腳本內(nèi)容略
[root@node1 .ptk]# bash root_fix_os.2022.0707.000721.sh

集群安裝驗(yàn)證
[root@node1 .ptk]# ptk install -y -f config.yaml --install-cm
.
.
.
[root@node1 .ptk]# ptk ls
cluster_name | instances | user | data_dir | db_version
---------------+-----------------------+------+-------------+--------------
MogDB3.0 | 192.168.122.221:26000 | omm | /data/mogdb | MogDB-3.0.0
| 192.168.122.157:26000 | | |
| 192.168.122.68:26000 | | |
[root@node1 .ptk]# ptk cluster status -n MogDB3.0
[ Cluster State ]
database_version : MogDB-3.0.0
cluster_name : MogDB3.0
cluster_state : Normal
current_az : AZ_ALL
[ Datanode State ]
id | ip | port | user | instance | db_role | state
-------+-----------------+-------+------+----------+---------+---------
6003 | 192.168.122.68 | 26000 | omm | dn_6003 | primary | Normal
6001 | 192.168.122.221 | 26000 | omm | dn_6001 | standby | Normal
6002 | 192.168.122.157 | 26000 | omm | dn_6002 | standby | Normal
集群卸載
[root@node1 .ptk]# ptk uninstall -n MogDB3.0
=============================
global:
cluster_name: MogDB3.0
user: omm
group: dbgrp
app_dir: /opt/mogdb/app
data_dir: /data/mogdb
log_dir: /opt/mogdb/log
tool_dir: /opt/mogdb/tool
tmp_dir: /opt/mogdb/tmp
cm_server_port: 15300
db_servers:
- host: 192.168.122.68
db_port: 26000
role: primary
az_name: AZ1
az_priority: 1
- host: 192.168.122.221
db_port: 26000
role: standby
az_name: AZ1
az_priority: 1
- host: 192.168.122.157
db_port: 26000
role: standby
az_name: AZ1
az_priority: 1
=============================
Do you really want to uninstall this cluster? Please confirm carefully[Y|Yes](default=N) Y
Do you want to delete db data '/data/mogdb'?[Y|Yes](default=N) Y
Do you want to delete user 'omm'?[Y|Yes](default=N) Y
.
.
.
PTK 命令參考
ptk candidate - 打印 PTK 支持的軟件版本列表
ptk checkos - 檢查集群服務(wù)器系統(tǒng)依賴是否滿足安裝數(shù)據(jù)庫需求
ptk encrypt - 提供一個便捷的方式來加密您的文本或密碼
ptk env - 打印 PTK 環(huán)境變量信息
ptk install - 基于給定的拓?fù)渑渲貌渴餗ogDB數(shù)據(jù)庫集群
ptk ls - 列出所有MogDB集群列表
ptk self - 操作 PTK 自身安裝包
ptk cluster -數(shù)據(jù)庫集群操作
ptk template - 打印配置模板
ptk uninstall - 卸載 MogDB 數(shù)據(jù)庫集群
ptk gen-om-xml - 生成 gs_om 的 XML 配置文件
ptk version - 打印 PTK 版本
ptk completion - 為指定的 shell 生成自動補(bǔ)全腳本




