PTK 简介
PTK (Provisioning Toolkit)是一款针对 MogDB 数据库开发的软件安装和运维工具,旨在帮助用户更便捷地安装部署MogDB数据库。
如果用户想要运行 MogDB 或者 MogDB 的相关组件时,仅需要执行一行命令即可实现。
使用场景
- 开发人员快速启动多个本地MogDB环境
- 用户通过PTK快速安装部署MogDB
- DBA日常运维使用
- 第三方运维平台集成
安装环境
硬件信息: Intel i9 + 64G 内存 + 1T SSD
虚拟机软件:Oracle VM Virtual Box 7.1.12 + Vagrant 2.2.16
虚拟机配置:
192.168.56.231 8g4c 50G
192.168.56.232 8g4c 50G
192.168.56.233 8g4c 50G
操作系统版本: Kylin Linux Advanced Server release V10 (Lance)
数据库版本: MogDB-5.0.6
PTK版本:v1.4.5
下载安装 PTK
在线安装
在终端使用curl下载ptk的install.sh 脚本并执行进行安装
#下载ptk的install.sh脚本并执行
[root@mogdb1 ~]# curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh
Downloading ptk package...
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
#查看ptk安装目录文件
[root@mogdb1 ~]# ls -la .ptk/bin/
total 57604
drwx------ 3 root root 51 May 23 16:14 .
drwx------ 3 root root 17 May 23 16:14 ..
drwx------ 2 root root 70 May 23 16:14 CHANGELOG
-rwxr-xr-x 1 root root 58982400 May 14 14:28 ptk
-rw-r--r-- 1 root root 237 Sep 15 2023 README.md
#查看ptk程序环境变量添加到.bash_proifle
[root@mogdb1 ~]# cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export PATH=/root/.ptk/bin:$PATH
#生效环境变量
[root@mogdb1 ~]# source ~/.bash_profile
#查看ptk版本
[root@mogdb1 ~]# ptk --version
PTK Version: v1.4.5 release
Go Version: go1.19.10
Build Date: 2024-05-14T14:25:55
Git Hash: e043ed69
OS/Arch: linux/amd64
PTK 安装在目录 $HOME/.ptk 目录下,该目录以后会作为 PTK 工具的工作目录。安装指令会自动将 $HOME/.ptk/bin 的路径加入到对应 SHELL Profile 文件的 PATH 环境变量。用户可以直接使用ptk命令。
离线安装
从 https://www.mogdb.io/downloads/ptk/all 下载对应服务器架构的安装包,以ptk_1.4.5_linux_x86_64.tar.gz 为例。
mkdir -p $HOME/.ptk/bin/ tar -xvf ptk_1.4.5_linux_x86_64.tar.gz -c $HOME/.ptk/bin/ echo 'export PATH=$HOME/.ptk/bin:$PATH' >> ~/.bashrc source ~/.bashrc
ptk命令行帮助
[root@mogdb1 ~]# ptk -h
ptk is a command-line management tool that can help you to
deploy or manage MogDB clusters.
Usage:
ptk [flags] <command> [args...]
Available Commands:
env Print ptk loaded environment values
gen-om-xml Generate an XML file for gs_om
self Self operations about ptk
version Print version of ptk
meta Manage ptk metadata
demo Install MogDB demo quickly
manage Manage an exist cluster
(File $GAUSSHOME/bin/cluster_static_config is required)
gen-ptkc Generate ptkc binary
cache List the cache files
rec-guc Display the list of optimising guc parameters
collect Collect system and cluster information for analysis
completion Generate the autocompletion script for the specified shell
Pre Install Commands:
candidate Print software version list which PTK supported
download Download MogDB package online
checkos Check cluster servers os dependencies
encrypt Provides a convenient way to encrypt your text/password
template Generate template of configuration
exec Execute shell command or script
Install Commands:
install Install a MogDB or Uqbar database cluster
Post Install Commands:
ls List MogDB clusters
uninstall Uninstall a database cluster
cluster Manage clusters
gen-static-config Generate and distribute a new cluster_static_config with specified YAML config
Experimental Commands:
register Register some internal types to fulfill specific requirements
Flags:
--disable-color Force disabling colors
--disable-debug-log Do not write debug log file
--disable-progressbar Disable show progress bar globally
-h, --help Print help information
--log-file string Specify a log output file
--log-format string Specify the log message format. Options: [text, json] (default "text")
--log-level string Specify the log level. Options: [debug, info, warning, error, panic] (default "info")
--silence Do not print logs to stdout
--skip-fix-ssh Skip fix ssh connection by interaction
-v, --version Print version of ptk
Use "ptk [command] --help" for more information about a command.
部署数据库
系统检查
检查项目
PTK 内置了 checkos 的指令来辅助你进行检查操作,在检查过程中,PTK 会对服务器上以下这些模块进行检查:
| 类别编号 | 类别 | 检查项 | 说明 |
|---|---|---|---|
| A1 | 系统版本 | Check_OS_Version | 检查系统版本 |
| A2 | 内核版本 | Check_Kernel_Version | 检查内核版本 |
| A3 | 字符集 | Check_Unicode | 检查字符集 |
| A4 | 时区 | Check_TimeZone | 检查时区 |
| A5 | 内存交换区 | Check_Swap_Memory_Configure | 检查 swap 内存配置 |
| A6 | sysctl参数 | Check_SysCtl_Parameter | 检查 sysctl 参数 |
| A7 | 文件系统 | Check_FileSystem_Configure | 检查文件系统配置 |
| A8 | 磁盘配置 | Check_Disk_Configure | 检查磁盘配置 |
| A9 | 预读块设置 | Check_BlockDev_Configure | 检查块设备配置 |
| Check_Logical_Block | 检查逻辑块 | ||
| A10 | IO调度 | Check_IO_Request | 检查 IO 请求参数 |
| Check_Asynchronous_IO_Request | 检查异步 IO 请求参数 | ||
| Check_IO_Configure | 检查 IO 配置 | ||
| A11 | 网络配置 | Check_Network_Configure | 检查网络配置 |
| A12 | 时钟一致性 | Check_Time_Consistency | 检查时钟一致性 |
| A13 | 防火墙配置 | Check_Firewall_Service | 检查防火墙配置 |
| A14 | 透明大页配置 | Check_THP_Service | 检查透明大页配置 |
| A15 | 依赖包 | Check_Dependent_Package | 检查数据库系统安装依赖 |
| A16 | CPU指令集 | Check_CPU_Instruction_Set | 检查CPU指令集 |
| A17 | 端口状态 | Check_Port | 检查数据库端口是否被占用 |
| A18 | Selinux状态 | Check_Selinux | 检查系统Selinux是否关闭 |
| A19 | 用户Ulimit状态 | Check_User_Ulimit | 检查数据库用户的 Ulimit 值是否满足数据库要求(系统用户存在时) |
在使用 PTK 进行系统检查时,需指定集群配置文件(-f)以及指定要检查的内容(-i),如果不知道要检查的内容,默认会检查以上表格内的所有项目。如果需要针对个别类别进行检查,可以通过以逗号连接类别编号来进行指定。
检查结果分类
PTK 的检查结果分为四个等级:
- OK:符合预期值,满足安装需求
- Warning: 不符合预期值,但不影响安装(预期值主要针对生产环境进行的建议)
- Abnormal: 不满足安装要求,可能会导致安装过程失败,需根据 PTK 给出的修改建议脚本,人工执行修改
- ExecuteError: 执行错误,该等级表示 PTK 在检查时执行命令失败,可能为用户环境工具缺失或内部BUG,需根据实际错误提示进行修正
在安装数据库之前,需确保所有的检查项都在 OK 或 Warning 级别,如果存在 Abnormal 的检查结果,在安装时会中断退出。
执行系统检查
[root@mogdb1 ~]# ptk checkos
INFO[2024-05-23T16:49:50.071] prechecking dependent tools...
WARN[2024-05-23T16:49:50.189] [10.0.2.15][omm] device(sda) 'IO Request'=64, expect 256
ERRO[2024-05-23T16:49:51.152] [10.0.2.15][omm] not found package: numactl
INFO[2024-05-23T16:49:51.152] [10.0.2.15][omm] platform: kylin_V10_64bit
INFO[2024-05-23T16:49:51.156] [10.0.2.15][omm] timezone: +0800
INFO[2024-05-23T16:49:51.160] [10.0.2.15][omm] kernel version: 4.19.90-52.22.v2207.ky10.x86_64
WARN[2024-05-23T16:49:51.275] [10.0.2.15][omm] net.ipv4.tcp_retries1=3, expect 5
WARN[2024-05-23T16:49:51.309] [10.0.2.15][omm] net.ipv4.tcp_syn_retries=6, expect 5
INFO[2024-05-23T16:49:51.314] [10.0.2.15][omm] check kernel.core_pattern
INFO[2024-05-23T16:49:51.322] [10.0.2.15][omm] check RemoveIPC value
INFO[2024-05-23T16:49:51.338] [10.0.2.15][omm] check KillUserProcesses value
ERRO[2024-05-23T16:49:51.444] [10.0.2.15][omm] selinux mode in /etc/selinux/config is 'enforcing'
INFO[2024-05-23T16:49:51.449] [10.0.2.15][omm] locale: LANG=en_US.UTF-8
INFO[2024-05-23T16:49:51.453] [10.0.2.15][omm] swap memory 2162684kB, total memory 6847020kB
INFO[2024-05-23T16:49:51.454] all checkers finished
INFO[2024-05-23T16:49:51.454] write fix os script to root_fix_os.0523.164951.sh success
INFO[2024-05-23T16:49:51.454] time elapsed: 1s
# Check Results
Item | Level
------------------------------------+-----------
A1.Check_OS_Version | OK
A2.Check_Kernel_Version | OK
A3.Check_Unicode | OK
A4.Check_TimeZone | OK
A5.Check_Swap_Memory_Configure | OK
A6.Check_SysCtl_Parameter | Warning
A7.Check_FileSystem_Configure | OK
A8.Check_Disk_Configure | OK
A9.Check_Logical_Block | OK
A9.Check_BlockDev_Configure | OK
A10.Check_NR_Request | Warning
A10.Check_Asynchronous_IO_Request | OK
A10.Check_IO_Configure | OK
A11.Check_Network_Configure | OK
A12.Check_Time_Consistency | OK
A13.Check_Firewall_Status | OK
A14.Check_THP_Status | OK
A15.Check_Dependent_Package | Abnormal
A16.Check_CPU_Instruction_Set | OK
A18.Check_Selinux | Abnormal
Total count 20, abnormal count 2, warning count 2
Failed to check os, can’t perform installation unless fix all the abnormal items.
You can use 'ptk checkos -i ITEM --detail' to get detail message
Please check root_fix_os.0523.164951.sh for commands to resolve.
#备注:**ptk checkos -i ITEM --detail** 这里的ITEM内容是A1,A2 ,--detail 是查看的详细信息
对系统检查进行修复
对级别是Warning,Abnormal的检查项输出详细信息并得到修改的命令脚本
[root@mogdb1 ~]# ptk checkos --detail --gen-warning-fix
INFO[2024-05-23T16:59:34.191] prechecking dependent tools...
WARN[2024-05-23T16:59:34.299] [10.0.2.15][omm] net.ipv4.tcp_syn_retries=6, expect 5
WARN[2024-05-23T16:59:34.365] [10.0.2.15][omm] net.ipv4.tcp_retries1=3, expect 5
INFO[2024-05-23T16:59:34.402] [10.0.2.15][omm] check kernel.core_pattern
INFO[2024-05-23T16:59:34.411] [10.0.2.15][omm] check RemoveIPC value
INFO[2024-05-23T16:59:34.425] [10.0.2.15][omm] check KillUserProcesses value
WARN[2024-05-23T16:59:34.455] [10.0.2.15][omm] device(sda) 'IO Request'=64, expect 256
ERRO[2024-05-23T16:59:35.384] [10.0.2.15][omm] not found package: numactl
ERRO[2024-05-23T16:59:35.396] [10.0.2.15][omm] selinux mode in /etc/selinux/config is 'enforcing'
INFO[2024-05-23T16:59:35.396] all checkers finished
INFO[2024-05-23T16:59:35.396] write fix os script to root_fix_os.0523.165935.sh success
INFO[2024-05-23T16:59:35.396] time elapsed: 1s
# Check Results
Item | Level | Message
------------------------------------+----------+-----------------------------------------------------
A6.Check_SysCtl_Parameter | Warning | [10.0.2.15]:
| | Warning: net.ipv4.tcp_syn_retries=6, expect 5
| | Warning: net.ipv4.tcp_retries1=3, expect 5
A10.Check_NR_Request | Warning | [10.0.2.15]:
| | device(sda) 'IO Request'=64, expect 256
A10.Check_Asynchronous_IO_Request | OK |
A10.Check_IO_Configure | OK |
A15.Check_Dependent_Package | Abnormal | [10.0.2.15]:
| | Warning: not found package: flex
| | Warning: not found package: bison
| | Warning: not found package: ncurses-devel
| | Warning: not found package: glibc-devel
| | Warning: not found package: patch
| | Abnormal: not found package: numactl
A18.Check_Selinux | Abnormal | [10.0.2.15]:
| | selinux mode in /etc/selinux/config is 'enforcing'
Total count 6, abnormal count 2, warning count 2
Failed to check os, can’t perform installation unless fix all the abnormal items.
You can use 'ptk checkos -i ITEM --detail' to get detail message
Please check root_fix_os.0523.165935.sh for commands to resolve.
#root_fix_os.0523.165935.sh 脚本是修复系统配置,
#查看修复脚本的内容,是对系统参数进行配置,安装package,关闭selinux
[root@mogdb1 ~]# cat root_fix_os.0523.165935.sh
#!/usr/bin/env bash
local_ips=$(ip addr | grep 'inet' | grep -v 'inet6\|127.0.0.1' | grep -v grep | awk -F '/' '{print $1}' | awk '{print $2}')
# fix suggestions for host: 10.0.2.15
for ip in ${local_ips}; do
if [[ "${ip}" == "10.0.2.15" ]]; then
if ! (sed -i '/net.ipv4.tcp_syn_retries/d' /etc/sysctl.conf;echo net.ipv4.tcp_syn_retries = 5 >> /etc/sysctl.conf); then echo '[ERROR] Execute failed. Command: sed -i '/net.ipv4.tcp_syn_retries/d' /etc/sysctl.conf;echo net.ipv4.tcp_syn_retries = 5 >> /etc/sysctl.conf'; fi;
if ! (sed -i '/net.ipv4.tcp_retries1/d' /etc/sysctl.conf;echo net.ipv4.tcp_retries1 = 5 >> /etc/sysctl.conf); then echo '[ERROR] Execute failed. Command: sed -i '/net.ipv4.tcp_retries1/d' /etc/sysctl.conf;echo net.ipv4.tcp_retries1 = 5 >> /etc/sysctl.conf'; fi;
sysctl -p
if ! (echo 256 >> /sys/block/sda/queue/nr_requests); then echo '[ERROR] Execute failed. Command: echo 256 >> /sys/block/sda/queue/nr_requests'; fi;
if ! (sudo yum install -y flex); then echo '[ERROR] Execute failed. Command: sudo yum install -y flex'; fi;
if ! (sudo yum install -y bison); then echo '[ERROR] Execute failed. Command: sudo yum install -y bison'; fi;
if ! (sudo yum install -y ncurses-devel); then echo '[ERROR] Execute failed. Command: sudo yum install -y ncurses-devel'; fi;
if ! (sudo yum install -y glibc-devel); then echo '[ERROR] Execute failed. Command: sudo yum install -y glibc-devel'; fi;
if ! (sudo yum install -y patch); then echo '[ERROR] Execute failed. Command: sudo yum install -y patch'; fi;
if ! (sudo yum install -y numactl); then echo '[ERROR] Execute failed. Command: sudo yum install -y numactl'; fi;
if ! (sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config); then echo '[ERROR] Execute failed. Command: sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config'; fi;
exit 0
fi
done
#执行修复脚本,如果脚本涉及到要安装package包的,配置好本地的yum或可以联网安装。
[root@mogdb1 ~]# sh root_fix_os.0523.165935.sh
#修复后再次进行检查
[root@mogdb1 ~]# ptk checkos
INFO[2024-05-23T17:22:11.618] prechecking dependent tools...
INFO[2024-05-23T17:22:12.657] [10.0.2.15][omm] kernel version: 4.19.90-52.22.v2207.ky10.x86_64
INFO[2024-05-23T17:22:12.778] [10.0.2.15][omm] check kernel.core_pattern
INFO[2024-05-23T17:22:12.786] [10.0.2.15][omm] check RemoveIPC value
INFO[2024-05-23T17:22:12.796] [10.0.2.15][omm] check KillUserProcesses value
INFO[2024-05-23T17:22:12.894] [10.0.2.15][omm] locale: LANG=en_US.UTF-8
INFO[2024-05-23T17:22:12.903] [10.0.2.15][omm] timezone: +0800
INFO[2024-05-23T17:22:12.926] [10.0.2.15][omm] platform: kylin_V10_64bit
INFO[2024-05-23T17:22:12.933] [10.0.2.15][omm] swap memory 2162684kB, total memory 6847020kB
INFO[2024-05-23T17:22:12.933] all checkers finished
INFO[2024-05-23T17:22:12.933] time elapsed: 1s
# Check Results
Item | Level
------------------------------------+--------
A1.Check_OS_Version | OK
A2.Check_Kernel_Version | OK
A3.Check_Unicode | OK
A4.Check_TimeZone | OK
A5.Check_Swap_Memory_Configure | OK
A6.Check_SysCtl_Parameter | OK
A7.Check_FileSystem_Configure | OK
A8.Check_Disk_Configure | OK
A9.Check_BlockDev_Configure | OK
A9.Check_Logical_Block | OK
A10.Check_NR_Request | OK
A10.Check_Asynchronous_IO_Request | OK
A10.Check_IO_Configure | OK
A11.Check_Network_Configure | OK
A12.Check_Time_Consistency | OK
A13.Check_Firewall_Status | OK
A14.Check_THP_Status | OK
A15.Check_Dependent_Package | OK
A16.Check_CPU_Instruction_Set | OK
A18.Check_Selinux | OK
Total count 20, abnormal count 0, warning count 0
配置本地yum
#创建挂载目录
[root@mogdb1 ~]# mkdir /mnt/cdrom
#挂载iso
[root@mogdb1 ~]# mount /dev/cdrom /mnt/cdrom
mount: /mnt/cdrom: /dev/sr0 already mounted on /mnt/cdrom.
#或者iso文件挂载
[root@mogdb1 ~]# mount /root/Kylin-Server-V10-SP3-General-Release-2303-X86_64.iso /mnt/cdrom
# 重命名在线kylin_x86_64.repo为repo.bak
[root@mogdb1 ~]# cd /etc/yum.repos.d/
[root@mogdb1 yum.repos.d]# mv kylin_x86_64.repo kylin_x86_64.repo.bak
#添加本地yum repo文件
[root@mogdb1 ~]# cat > /etc/yum.repos.d/kylin-media.repo <<EOF
[kylin-media]
name=Server
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
#更新yum
[root@mogdb1 ~]# yum makecache
ptk命令示例
ptk checkos -i A1,A2,A3 # 要检查多个状态,请按以下格式输入项目:“-i A1,A2,A3”。 ptk checkos -i A # 检查全部检查项 ptk checkos -i A --detail # 加上--detail 会显示详细信息 ptk checkos --gen-warning-fix # 输出 root-fix 脚本的时候,将 warning 级别的检查项也生成修复指令
数据库安装
准备配置文件
使用 PTK 进行数据库的安装或扩容时,需要用户提前准备一个用来描述集群拓扑结构的 YAML 格式的配置文件,可以通过查看现有的配置示例进行修改,也可以通过 ptk 提供的 template 指令进行自动生成,生成方式可以参考创建配置文件章节
使用交互式创建模板
配置文件示例[root@mogdb1 ~]# ptk template create
✔ Please enter cluster name (default: satoshi): mogdb
✔ Please enter group of user (default: omm): █
✔ Please enter db password (8~15 characters, 3 classes): ************
✔ Retype db password: ************
✔ Please enter db port (range 1024~65535) (default: 26000):
✔ Please enter mogdb base dir (which should be empty) (default: /opt/mogdb): /data/mogdb
✔ Do you want to intall cm component (default=n) [y/n]: y
And then, let's add some db servers
================db server 1================
✔ Please enter server ip (IPv4 only): 192.168.56.231
✔ Please choose db role: primary
✔ Please enter available zone name (default: AZ1):
✔ Please enter zone("AZ1") priority (default: 1):
================ end ================
✔ Do you want to add another db server (default=n) [y/n]: y
================db server 2================
✔ Please enter server ip (IPv4 only): 192.168.56.232
✔ Please choose db role: standby
✔ Please enter available zone name (default: AZ1): █
✔ [SSH] Please enter ssh user (default: root):
✔ [SSH] Please enter ssh port (default: 22):
✔ [SSH] Please choice an auth method: : Password
✔ [SSH] Please enter ssh password: ************
================ end ================
✔ Do you want to add another db server (default=n) [y/n]: y
================db server 3================
✔ Please enter server ip (IPv4 only): 192.168.56.233
✔ Please choose db role: standby
✔ Please enter available zone name (default: AZ1):
✔ Do you want to reuse SSH configurations from other servers (default=n) [y/n]: y
✔ Please choose a server: 192.168.56.232
================ end ================
✔ Do you want to add another db server (default=n) [y/n]: n
Generate /root/config.2024-05-24T21_36_58.yaml successfully
[root@mogdb1 ~]# cat config.2024-05-24T21_36_58.yaml
global:
cluster_name: mogdb
user: omm
group: omm
db_password: pTk6YWEwYjVlNzM8QT5APj0/Q1UxZXJhalpXSzZqMDZkbktSX1JtbjVRb1lQMkIxVDg3N2k5TG5XVTR4d2c=
db_port: 26000
base_dir: /data/mogdb
cm_option:
dir: /data/mogdb/cm
cm_server_port: 15300
db_service_vip: ""
db_servers:
- host: 192.168.56.231
role: primary
az_name: AZ1
az_priority: 1
- host: 192.168.56.232
role: standby
az_name: AZ1
az_priority: 1
ssh_option:
port: 22
user: root
password: pTk6ZjE0OTc1ZTQ8QT5APj1ARHpHaER0OHhkTDdsNWlBeV8xaVkwc3lCZ0FDNkxUa09fRWpnTmlRWXBPQm8=
- host: 192.168.56.233
role: standby
az_name: AZ1
az_priority: 1
ssh_option:
port: 22
user: root
password: pTk6ZjE0OTc1ZTQ8QT5APj1ARHpHaER0OHhkTDdsNWlBeV8xaVkwc3lCZ0FDNkxUa09fRWpnTmlRWXBPQm8=
cm_servers: []
执行安装
数据库安装文件下载页面:https://www.mogdb.io/downloads/mogdb
系统检查完成后,我们就可以使用 PTK 进行数据库安装了,安装仅需输入以下指令即可:
[root@mogdb1 ~]# ptk install -f config.2024-05-24T21_36_58.yaml -y -p MogDB-5.0.6-Kylin-x86_64-all.tar.gz
INFO[2024-05-24T22:11:02.570] PTK Version: 1.4.5 release
INFO[2024-05-24T22:11:02.571] load config from config.2024-05-24T21_36_58.yaml
INFO[2024-05-24T22:11:02.593] start check hostname ...
INFO[2024-05-24T22:11:10.449] check hostname success
INFO[2024-05-24T22:11:10.451] start check os ...
INFO[2024-05-24T22:11:10.455] prechecking dependent tools...
INFO[2024-05-24T22:12:15.475] [192.168.56.233][omm] check port 26000
INFO[2024-05-24T22:12:15.482] [192.168.56.231][omm] check port 26000
INFO[2024-05-24T22:12:15.484] [192.168.56.232][omm] check port 26000
INFO[2024-05-24T22:12:15.599] [192.168.56.231][omm] port 26000 is free
INFO[2024-05-24T22:12:21.336] [192.168.56.232][omm] port 26000 is free
INFO[2024-05-24T22:12:24.558] [192.168.56.233][omm] port 26000 is free
INFO[2024-05-24T22:12:31.427] [192.168.56.231][omm] check kernel.core_pattern
INFO[2024-05-24T22:12:31.564] [192.168.56.231][omm] check RemoveIPC value
INFO[2024-05-24T22:12:31.749] [192.168.56.231][omm] check KillUserProcesses value
INFO[2024-05-24T22:13:20.082] [192.168.56.232][omm] check kernel.core_pattern
INFO[2024-05-24T22:13:22.774] [192.168.56.232][omm] check RemoveIPC value
INFO[2024-05-24T22:13:25.542] [192.168.56.232][omm] check KillUserProcesses value
INFO[2024-05-24T22:13:48.884] [192.168.56.233][omm] check kernel.core_pattern
INFO[2024-05-24T22:13:53.683] [192.168.56.233][omm] check RemoveIPC value
INFO[2024-05-24T22:13:59.576] [192.168.56.233][omm] check KillUserProcesses value
INFO[2024-05-24T22:14:35.748] [192.168.56.233][omm] platform: kylin_V10_64bit
INFO[2024-05-24T22:14:35.749] [192.168.56.231][omm] platform: kylin_V10_64bit
INFO[2024-05-24T22:14:35.749] [192.168.56.232][omm] platform: kylin_V10_64bit
INFO[2024-05-24T22:14:35.812] [192.168.56.231][omm] timezone: +0800
INFO[2024-05-24T22:14:37.207] [192.168.56.232][omm] timezone: +0800
INFO[2024-05-24T22:14:38.689] [192.168.56.233][omm] timezone: +0800
INFO[2024-05-24T22:14:42.677] [192.168.56.231][omm] locale: LANG=en_US.UTF-8
INFO[2024-05-24T22:14:44.155] [192.168.56.232][omm] locale: LANG=en_US.UTF-8
INFO[2024-05-24T22:14:44.767] [192.168.56.233][omm] locale: LANG=en_US.UTF-8
INFO[2024-05-24T22:14:44.856] [192.168.56.231][omm] swap memory 2162684kB, total memory 6847020kB
INFO[2024-05-24T22:14:46.652] [192.168.56.232][omm] swap memory 2162684kB, total memory 6847020kB
INFO[2024-05-24T22:14:47.726] [192.168.56.233][omm] swap memory 2162684kB, total memory 6847020kB
WARN[2024-05-24T22:14:47.783] [192.168.56.231][omm] device(sda) 'IO Request'=64, expect 256
INFO[2024-05-24T22:14:57.034] [192.168.56.231][omm] kernel version: 4.19.90-52.22.v2207.ky10.x86_64
INFO[2024-05-24T22:14:58.594] [192.168.56.232][omm] kernel version: 4.19.90-52.22.v2207.ky10.x86_64
INFO[2024-05-24T22:14:59.352] [192.168.56.233][omm] kernel version: 4.19.90-52.22.v2207.ky10.x86_64
INFO[2024-05-24T22:15:02.018] all checkers finished
INFO[2024-05-24T22:15:02.024] time elapsed: 3m52s
INFO[2024-05-24T22:15:02.032] check os success
INFO[2024-05-24T22:15:02.042] start check distro ...
INFO[2024-05-24T22:15:02.043] check distro success
INFO[2024-05-24T22:15:02.044] start check user ...
INFO[2024-05-24T22:15:09.444] check user success
INFO[2024-05-24T22:15:09.447] start check port ...
INFO[2024-05-24T22:15:09.449] checking port 26000 on host 192.168.56.231 (db listen port) ...
INFO[2024-05-24T22:15:09.450] checking port 26000 on host 192.168.56.232 (db listen port) ...
INFO[2024-05-24T22:15:09.450] checking port 26000 on host 192.168.56.233 (db listen port) ...
INFO[2024-05-24T22:15:09.544] checking port 26001 on host 192.168.56.231 (db HA port) ...
INFO[2024-05-24T22:15:15.429] checking port 26001 on host 192.168.56.232 (db HA port) ...
INFO[2024-05-24T22:15:20.154] checking port 26001 on host 192.168.56.233 (db HA port) ...
INFO[2024-05-24T22:15:33.909] check port success
INFO[2024-05-24T22:15:42.706] start prepare installation package ...
INFO[2024-05-24T22:15:42.707] installation package is ready
INFO[2024-05-24T22:15:42.709] parse installation package ...
INFO[2024-05-24T22:16:14.101] db product: MogDB, version: 5.0.6, number: 92.920, commit_id: 8b0a6ca8
INFO[2024-05-24T22:16:15.830] extract MogDB-5.0.6-Kylin-64bit.tar.gz to dir /tmp/ptk_tmp_2609185530
INFO[2024-05-24T22:16:33.343] execute command: mogdb --version
INFO[2024-05-24T22:16:34.282] parse installation package success
INFO[2024-05-24T22:16:34.285] start complete the configuration ...
INFO[2024-05-24T22:16:34.286] complete the configuration success
INFO[2024-05-24T22:16:34.286] save the topology to metadata
INFO[2024-05-24T22:16:34.294] start distribute installation package ...
> To 192.168.56.232: 136.94 MiB / 136.94 MiB [------------------------------------------------------------------------] 100.00% 614.54 KiB p/s 3m48s
> To 192.168.56.233: 136.94 MiB / 136.94 MiB [------------------------------------------------------------------------] 100.00% 620.62 KiB p/s 3m46s
INFO[2024-05-24T22:20:24.393] distrubite packages success
INFO[2024-05-24T22:20:24.395] start install logic nodes ...
INFO[2024-05-24T22:20:24.395] deploy db to omm@192.168.56.231
INFO[2024-05-24T22:20:24.396] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb
INFO[2024-05-24T22:20:24.398] deploy db to omm@192.168.56.233
⣾ executing...INFO[2024-05-24T22:20:24.397] deploy db to omm@192.168.56.232
INFO[2024-05-24T22:20:24.401] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb
INFO[2024-05-24T22:20:24.402] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb
INFO[2024-05-24T22:20:25.897] [192.168.56.231][omm] clean user omm's ipc resource
INFO[2024-05-24T22:20:27.662] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/tool,/data/mogdb/tool/ptk_tool/bin
INFO[2024-05-24T22:20:35.515] [192.168.56.231][omm] extract MogDB-5.0.6-Kylin-x86_64-all.tar.gz to dir /data/mogdb/tool
⣻ executing...INFO[2024-05-24T22:20:37.324] [192.168.56.232][omm] clean user omm's ipc resource
INFO[2024-05-24T22:20:41.769] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/tool,/data/mogdb/tool/ptk_tool/bin
INFO[2024-05-24T22:20:44.380] [192.168.56.231][omm] extract MogDB-5.0.6-Kylin-64bit-om.tar.gz to dir /data/mogdb/tool
INFO[2024-05-24T22:20:46.310] [192.168.56.233][omm] clean user omm's ipc resource
INFO[2024-05-24T22:20:48.423] [192.168.56.231][omm] try to fix psutil python lib
INFO[2024-05-24T22:20:49.669] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/tool,/data/mogdb/tool/ptk_tool/bin
INFO[2024-05-24T22:20:51.611] [192.168.56.231][omm] write file /data/mogdb/tool/script/py_pstree.py
INFO[2024-05-24T22:20:53.189] [192.168.56.231][omm] write file /data/mogdb/tool/ptk_tool/bin/README.md
INFO[2024-05-24T22:20:54.250] [192.168.56.232][omm] extract MogDB-5.0.6-Kylin-x86_64-all.tar.gz to dir /data/mogdb/tool
INFO[2024-05-24T22:20:55.600] [192.168.56.231][omm] write file /data/mogdb/tool/ptk_tool/bin/pscp
INFO[2024-05-24T22:20:58.066] [192.168.56.231][omm] write file /data/mogdb/tool/ptk_tool/bin/pssh
INFO[2024-05-24T22:21:00.292] [192.168.56.231][omm] write file /data/mogdb/tool/ptk_tool/bin/task_pool.py
INFO[2024-05-24T22:21:03.188] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/app
INFO[2024-05-24T22:21:05.545] [192.168.56.231][omm] extract MogDB-5.0.6-Kylin-64bit.tar.gz to dir /data/mogdb/app
INFO[2024-05-24T22:21:15.680] [192.168.56.233][omm] extract MogDB-5.0.6-Kylin-x86_64-all.tar.gz to dir /data/mogdb/tool
INFO[2024-05-24T22:21:23.192] [192.168.56.231][omm] change mode of /data/mogdb/app to 700
INFO[2024-05-24T22:21:24.206] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:21:25.038] [192.168.56.232][omm] extract MogDB-5.0.6-Kylin-64bit-om.tar.gz to dir /data/mogdb/tool
INFO[2024-05-24T22:21:27.954] [192.168.56.231][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:21:28.912] [192.168.56.231][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema_single_inst.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:21:29.818] [192.168.56.231][omm] write file /data/mogdb/app/bin/transfer.py
INFO[2024-05-24T22:21:31.226] [192.168.56.231][omm] set user omm profiles
INFO[2024-05-24T22:21:35.630] [192.168.56.232][omm] try to fix psutil python lib
INFO[2024-05-24T22:21:37.773] [192.168.56.231][omm] validate and try to fix ld library for gs_initdb
INFO[2024-05-24T22:21:38.852] [192.168.56.231][omm] validate and try to fix ld library for mogdb
INFO[2024-05-24T22:21:39.778] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/log/gs_profile,/data/mogdb/log/pg_log,/data/mogdb/log/pg_audit,/data/mogdb/log/bin,/data/mogdb/log/pg_log/dn_6001,/data/mogdb/log/pg_audit/dn_6001
INFO[2024-05-24T22:21:43.057] [192.168.56.232][omm] write file /data/mogdb/tool/script/py_pstree.py
INFO[2024-05-24T22:21:46.913] [192.168.56.232][omm] write file /data/mogdb/tool/ptk_tool/bin/README.md
INFO[2024-05-24T22:21:51.555] [192.168.56.233][omm] extract MogDB-5.0.6-Kylin-64bit-om.tar.gz to dir /data/mogdb/tool
INFO[2024-05-24T22:21:53.114] [192.168.56.232][omm] write file /data/mogdb/tool/ptk_tool/bin/pscp
INFO[2024-05-24T22:21:56.675] [192.168.56.232][omm] write file /data/mogdb/tool/ptk_tool/bin/pssh
INFO[2024-05-24T22:22:00.837] [192.168.56.232][omm] write file /data/mogdb/tool/ptk_tool/bin/task_pool.py
INFO[2024-05-24T22:22:00.858] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/tmp
INFO[2024-05-24T22:22:03.136] [192.168.56.231][omm] save version to upgrade_version
INFO[2024-05-24T22:22:06.459] [192.168.56.231][omm] create file cluster_manual_start
INFO[2024-05-24T22:22:07.382] [192.168.56.231][omm] generate cluster_static_config file
INFO[2024-05-24T22:22:08.558] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/app
⣾ executing...INFO[2024-05-24T22:22:08.847] [192.168.56.231][omm] make user omm's dir(s): /data/mogdb/data
INFO[2024-05-24T22:22:10.955] [192.168.56.231][omm] write file /data/mogdb/tool/.ptk_deployer
INFO[2024-05-24T22:22:13.699] [192.168.56.232][omm] extract MogDB-5.0.6-Kylin-64bit.tar.gz to dir /data/mogdb/app
INFO[2024-05-24T22:22:18.351] [192.168.56.233][omm] try to fix psutil python lib
INFO[2024-05-24T22:22:37.249] [192.168.56.233][omm] write file /data/mogdb/tool/script/py_pstree.py
INFO[2024-05-24T22:22:42.286] [192.168.56.233][omm] write file /data/mogdb/tool/ptk_tool/bin/README.md
INFO[2024-05-24T22:22:42.778] [192.168.56.232][omm] change mode of /data/mogdb/app to 700
INFO[2024-05-24T22:22:44.109] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:22:46.501] [192.168.56.232][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:22:47.028] [192.168.56.232][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema_single_inst.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:22:47.146] [192.168.56.233][omm] write file /data/mogdb/tool/ptk_tool/bin/pscp
INFO[2024-05-24T22:22:47.526] [192.168.56.232][omm] write file /data/mogdb/app/bin/transfer.py
INFO[2024-05-24T22:22:48.404] [192.168.56.232][omm] set user omm profiles
INFO[2024-05-24T22:22:51.904] [192.168.56.232][omm] validate and try to fix ld library for gs_initdb
INFO[2024-05-24T22:22:52.411] [192.168.56.232][omm] validate and try to fix ld library for mogdb
INFO[2024-05-24T22:22:52.572] [192.168.56.233][omm] write file /data/mogdb/tool/ptk_tool/bin/pssh
INFO[2024-05-24T22:22:54.794] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/log/gs_profile,/data/mogdb/log/pg_log,/data/mogdb/log/pg_audit,/data/mogdb/log/bin,/data/mogdb/log/pg_log/dn_6002,/data/mogdb/log/pg_audit/dn_6002
INFO[2024-05-24T22:22:59.960] [192.168.56.233][omm] write file /data/mogdb/tool/ptk_tool/bin/task_pool.py
INFO[2024-05-24T22:23:10.323] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/app
INFO[2024-05-24T22:23:15.672] [192.168.56.233][omm] extract MogDB-5.0.6-Kylin-64bit.tar.gz to dir /data/mogdb/app
INFO[2024-05-24T22:23:32.611] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/tmp
INFO[2024-05-24T22:23:36.447] [192.168.56.232][omm] save version to upgrade_version
INFO[2024-05-24T22:23:41.586] [192.168.56.232][omm] create file cluster_manual_start
INFO[2024-05-24T22:23:43.030] [192.168.56.232][omm] generate cluster_static_config file
INFO[2024-05-24T22:23:45.511] [192.168.56.232][omm] make user omm's dir(s): /data/mogdb/data
INFO[2024-05-24T22:23:48.866] [192.168.56.232][omm] write file /data/mogdb/tool/.ptk_deployer
INFO[2024-05-24T22:24:28.174] [192.168.56.233][omm] change mode of /data/mogdb/app to 700
INFO[2024-05-24T22:24:30.279] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:24:39.412] [192.168.56.233][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:24:42.700] [192.168.56.233][omm] copy /data/mogdb/tool/script/gspylib/etc/sql/pmk_schema_single_inst.sql to /data/mogdb/app/share/postgresql
INFO[2024-05-24T22:24:45.106] [192.168.56.233][omm] write file /data/mogdb/app/bin/transfer.py
INFO[2024-05-24T22:24:48.892] [192.168.56.233][omm] set user omm profiles
INFO[2024-05-24T22:25:20.016] [192.168.56.233][omm] validate and try to fix ld library for gs_initdb
INFO[2024-05-24T22:25:22.616] [192.168.56.233][omm] validate and try to fix ld library for mogdb
INFO[2024-05-24T22:25:23.913] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/log/gs_profile,/data/mogdb/log/pg_log,/data/mogdb/log/pg_audit,/data/mogdb/log/bin,/data/mogdb/log/pg_log/dn_6003,/data/mogdb/log/pg_audit/dn_6003
INFO[2024-05-24T22:26:15.045] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/tmp
INFO[2024-05-24T22:26:19.598] [192.168.56.233][omm] save version to upgrade_version
INFO[2024-05-24T22:26:27.948] [192.168.56.233][omm] create file cluster_manual_start
INFO[2024-05-24T22:26:30.242] [192.168.56.233][omm] generate cluster_static_config file
INFO[2024-05-24T22:26:33.843] [192.168.56.233][omm] make user omm's dir(s): /data/mogdb/data
INFO[2024-05-24T22:26:39.084] [192.168.56.233][omm] write file /data/mogdb/tool/.ptk_deployer
INFO[2024-05-24T22:26:42.658] generate certification files
INFO[2024-05-24T22:26:47.174] download certification files
INFO[2024-05-24T22:26:56.900] upload certification files to omm@192.168.56.232
INFO[2024-05-24T22:27:20.307] upload certification files to omm@192.168.56.233
INFO[2024-05-24T22:27:52.999] certification files setup success
INFO[2024-05-24T22:27:53.000] initialize db on omm@192.168.56.231
INFO[2024-05-24T22:27:53.003] initialize db on omm@192.168.56.232
INFO[2024-05-24T22:27:53.003] initialize db on omm@192.168.56.233
INFO[2024-05-24T22:27:54.072] [192.168.56.231][omm] the database is initializing, please wait a few minutes
INFO[2024-05-24T22:27:54.620] [192.168.56.232][omm] the database is initializing, please wait a few minutes
INFO[2024-05-24T22:27:57.639] [192.168.56.233][omm] the database is initializing, please wait a few minutes
INFO[2024-05-24T22:29:21.030] [192.168.56.231][omm] config postgresql.conf
INFO[2024-05-24T22:29:22.063] [192.168.56.231][omm] config pg_hba.conf
INFO[2024-05-24T22:29:23.051] [192.168.56.231][omm] copy ssl files to data dir
INFO[2024-05-24T22:30:22.968] [192.168.56.232][omm] config postgresql.conf
INFO[2024-05-24T22:30:24.905] [192.168.56.232][omm] config pg_hba.conf
INFO[2024-05-24T22:30:26.324] [192.168.56.232][omm] copy ssl files to data dir
INFO[2024-05-24T22:31:44.318] [192.168.56.233][omm] config postgresql.conf
INFO[2024-05-24T22:31:47.448] [192.168.56.233][omm] config pg_hba.conf
INFO[2024-05-24T22:31:50.401] [192.168.56.233][omm] copy ssl files to data dir
INFO[2024-05-24T22:33:23.918] logic nodes installed success
INFO[2024-05-24T22:33:23.919] generating ptkc ...
INFO[2024-05-24T22:33:50.944] start build ssh trust ...
INFO[2024-05-24T22:34:15.219] ssh trust build success
INFO[2024-05-24T22:34:15.220] start launch db ...
INFO[2024-05-24T22:34:15.221] [192.168.56.231][omm] start db using gs_ctl ...
INFO[2024-05-24T22:34:15.222] [192.168.56.231][omm] the database is starting, please wait a few minutes
INFO[2024-05-24T22:34:15.225] [192.168.56.232][omm] start db using gs_ctl ...
INFO[2024-05-24T22:34:15.226] [192.168.56.232][omm] the database is starting, please wait a few minutes
INFO[2024-05-24T22:34:15.225] [192.168.56.233][omm] start db using gs_ctl ...
⣾ executing...INFO[2024-05-24T22:34:15.230] [192.168.56.233][omm] the database is starting, please wait a few minutes
INFO[2024-05-24T22:34:26.124] [192.168.56.231][omm] start db success
INFO[2024-05-24T22:34:27.133] [192.168.56.231][omm] start alter db initial password ...
INFO[2024-05-24T22:34:28.761] [192.168.56.233][omm] start db success
INFO[2024-05-24T22:34:29.423] [192.168.56.231][omm] alter db password success
INFO[2024-05-24T22:34:31.113] [192.168.56.232][omm] start db success
INFO[2024-05-24T22:34:31.113] build standbys ...
INFO[2024-05-24T22:34:31.113] [192.168.56.232][omm] start build db ...
INFO[2024-05-24T22:34:31.113] [192.168.56.232][omm] the database is building from upstream, please wait a few minutes
INFO[2024-05-24T22:34:31.114] [192.168.56.232][omm] building database without timeout default,
you can set env 'PTK_ENABLE_TIMEOUT_WHEN_BUILD_DB=on' to enable timeout (timeout can be set with env 'PTK_CMD_EXECUTE_TIMEOUT')
INFO[2024-05-24T22:34:31.115] [192.168.56.233][omm] start build db ...
INFO[2024-05-24T22:34:31.115] [192.168.56.233][omm] the database is building from upstream, please wait a few minutes
INFO[2024-05-24T22:34:31.115] [192.168.56.233][omm] building database without timeout default,
you can set env 'PTK_ENABLE_TIMEOUT_WHEN_BUILD_DB=on' to enable timeout (timeout can be set with env 'PTK_CMD_EXECUTE_TIMEOUT')
INFO[2024-05-24T22:35:54.154] [192.168.56.233][omm] build db success
INFO[2024-05-24T22:36:13.205] [192.168.56.232][omm] build db success
INFO[2024-05-24T22:36:13.205] standbys build success
INFO[2024-05-24T22:36:13.205] launch db success
INFO[2024-05-24T22:36:13.205] clear temp dirs ...
INFO[2024-05-24T22:36:16.187] clear temp dirs success
INFO[2024-05-24T22:36:16.187] time elapsed: 25m13s
cluste_name | host | user | port | status | message
--------------+----------------+------+-------+---------------+----------
mogdb | 192.168.56.231 | omm | 26000 | start_success | success
| 192.168.56.232 | omm | 26000 | start_success | success
| 192.168.56.233 | omm | 26000 | start_success | success
查看集群列表
[root@mogdb1 ~]# ptk ls cluster_name | id | addr | user | data_dir | db_version | create_time | comment ---------------+------+----------------------+------+------------------+------------------------------+---------------------+---------- mogdb | 6001 | 192.168.56.231:26000 | omm | /data/mogdb/data | MogDB-5.0.6 (build 8b0a6ca8) | 2024-05-24T22:16:34 | | 6002 | 192.168.56.232:26000 | omm | /data/mogdb/data | | | | 6003 | 192.168.56.233:26000 | omm | /data/mogdb/data |
可以在输出表中查看如下信息:
- cluster_name: 集群名称
- id: 安装时给实例分配的ID
- addr: 实例地址列表
- user: 运行的系统用户
- data_dir: 实例的数据目录
- db_version: 数据库版本信息
- create_time: 集群创建时间
- comment: 集群备注
集群安装成功后,在之后管理集群操作时,使用 -n 参数指定集群名称。
查看集群状态
[root@mogdb1 ~]# ptk cluster -n mogdb status [ Cluster State ] cluster_name : mogdb cluster_state : Normal database_version : MogDB-5.0.6 (build 8b0a6ca8) [ Datanode State ] cluster_name | id | ip | port | user | nodename | db_role | state | uptime | upstream ---------------+------+----------------+-------+------+----------+---------+--------+----------+----------- mogdb | 6001 | 192.168.56.231 | 26000 | omm | dn_6001 | primary | Normal | 00:09:29 | - | 6002 | 192.168.56.232 | 26000 | omm | dn_6002 | standby | Normal | 00:07:58 | - | 6003 | 192.168.56.233 | 26000 | omm | dn_6003 | standby | Normal | 00:08:16 | -
集群状态定义
| 状态 | 含义 |
|---|---|
| Normal | 集群所有实例正常可用 |
| Unavailable | 集群无主不可用, 或者主库不是正常状态 |
| Degraded | 集群可用,但是部分备节点不可用 |
| Stopped | 集群全部节点停止 |
| MultiPrimary | 集群出现多个主实例 |
实例状态定义
实例状态在和数据库内核定义的列表保持一致基础上,新增
SSH Disconnect
| 状态 | 含义 |
|---|---|
| Unknown | 未知状态 |
| Normal | 正常 |
| Need repair | 复制断开,待修复 |
| Starting | 实例启动中 |
| Wait promoting | 等待角色提升 |
| Promoting | 角色提升中 |
| Demoting | 角色降级中 |
| Building | 正在重建 |
| Catchup | 正在追赶日志 |
| Coredump | 实例崩溃 |
| Stopped | 实例停止 |
| SSH Disconnect | 实例机器SSH连接失败 |
附录
建库配置文件字段说明
我们以下面这个完整的配置文件为例说明:
yaml 中,如果是字符串类型默认无需加引号,如果字符串之中包含空格或特殊字符,需要放在引号之中
global:
# # 集群名称,用户自定义
cluster_name: c1
# # 运行数据的系统用户
user: omm
# # 系统用户组,默认和用户名同名
group: omm
# # 系统用户密码,PTK在创建用户时设置,可不填。若填写需通过 ptk encrypt 加密
# user_password: ""
# # 数据库密码,需通过 ptk encrypt 加密。若不填写,在安装时会通过交互式填写
db_password: ""
# # 数据库端口
db_port: 26000
# # 数据库的安装目录
# # PTK 会在该目录下分别创建应用目录,数据目录,工具目录,日志目录以及临时目录
base_dir: /opt/mogdb
# # gs_initdb 工具支持参数列表,安装时会追加到指令中
gs_initdb_opts:
- --encoding=UTF-8
- --dbcompatibility=A
# # CM 组件的配置,该值在启用CM组件时生效
cm_option:
# # CM 的安装目录,不填写默认会在 base_dir 目录下创建 cm 目录
# dir: /opt/mogdb/cm
# # CM Server 端口
cm_server_port: 15300
# # 虚拟IP,该值需CM支持的版本才生效
db_service_vip: ""
# # CM Server 配置,会更新到 cm_server.conf 中
cm_server_conf:
# instance_heartbeat_timeout: 2
# ...
# # CM Agent 配置,会更新到 cm_agent.conf 中
cm_agent_conf:
# log_max_size: 10240
# ...
db_servers:
- host: 10.0.1.100
# # 数据库端口
db_port: 26000
# # 数据库角色,支持的选项: primary, standby, cascade_standby
role: primary
# # 可用区名称,该值在启用CM组件时生效
az_name: AZ1
# # 可用区优先级,值越小优先级越高,最小 1,该值在启用CM组件时生效
az_priority: 1
# # 级联备的上游备库IP,仅级联备时必填
upstream_host:
# # postgresql.conf 中支持的参数
db_conf:
# replication_type: 1
# # 连接服务器的SSH配置
# ssh_option:
# port: 22
# user: root
# password:
# cm 服务器列表,如果不在这里列出,在安装时会在每个 db_server 的机器上部署
# 注意此处配置不意味着安装,需在安装时指定 --install-cm 参数才会生效
cm_servers:
- host: 10.0.1.100
# # CM Server 端口,默认为 global.cm_option.cm_server_port
port: 15300
# # ssh 配置信息,如果 db_server 有相同机器配置过,则无需在此处配置
ssh_option:
Copy
整个配置文件分为两个部分:global 和 db_servers
- global: 定义集群内所有实例公用的信息及缺省值
- db_servers: 实例列表,每个元素代表一个实例信息
global 配置
| 字段名 | 解释 | 值类型 | 默认值 | 是否必填 | 备注 |
|---|---|---|---|---|---|
| cluster_name | 集群名称 | 字符串 | cluster_ 前缀,随机生成 |
是 | |
| user | 操作系统用户 | 字符串 | omm | 否 | |
| group | 操作系统用户组 | 字符串 | omm | 否 | |
| user_password | 操作系统用户密码 | 字符串 | 空 | 否 | 需通过 encrypt 指令加密后填写 |
| db_password | 数据库密码 | 字符串 | 空 | 否 | 需通过 encrypt 指令加密后填写,若不填写,安装过程也可以填写 |
| db_port | 数据库监听端口 | 整型 | 26000 | 否 | |
| base_dir | 数据库安装的基础目录 | 字符串 | /opt/mogdb | 否 | 若填写该字段,app_dir, log_dir, data_dir, tool_dir, cm_dir, tmp_dir 可不填写,自动放置到该字段指定的目录下 |
| app_dir | 数据库应用目录 | 字符串 | /opt/mogdb/app | 否 | |
| log_dir | 数据库日志存放目录 | 字符串 | /opt/mogdb/log | 否 | |
| data_dir | 数据库数据存放目录 | 字符串 | /opt/mogdb/data | 否 | |
| tool_dir | 数据库工具存放目录 | 字符串 | /opt/mogdb/tool | 否 | |
| tmp_dir | 数据库临时文件存放目录 | 字符串 | /opt/mogdb/tmp | 否 | |
| core_file_dir | 系统 corefile 路径 | 字符串 | 空 | 否 | 若填写会修改系统 kernel.core_pattern 的值 |
| gs_initdb_opts | 初始化数据库时 gs_initdb 工具的参数 | 字符串列表 | 否 | 一个元素设置一个参数,如果未设置 --locale 参数,PTK 默认设置 --no-locale |
|
| ssh_option | SSH连接认证信息 | ssh_option | 否 | 实例如果需要远程连接,但实例级别的 ssh_option 未配置时会使用 global 内的该字段 | |
| cm_option | CM组件配置参数 | cm_option | 否 | 该字段在安装时指定 --install-cm 时生效 |
db_servers 配置
| 字段名 | 解释 | 值类型 | 默认值 | 是否必填 | 备注 |
|---|---|---|---|---|---|
| host | 实例IP | 字符串 | 空 | 是 | |
| db_port | 实例端口 | 整型 | 26000 | 否 | 若未填写,使用 global 内的配置 |
| ha_ips | 实例日志复制备用IP列表 | 字符串列表 | 空 | 否 | |
| ha_port | 日志复制备用端口 | 整型 | 26001 | 否 | |
| role | 数据库实例角色 | 字符串 | 空 | 否 | 可选值: primary, standby, cascade_standby, 若不填写,集群内随机选择一个实例设置主,其余为备库 |
| upstream_host | 级联备上游备库IP | 字符串 | 空 | 级联备时必填 | |
| az_name | 可用区名 | 字符串 | AZ1 | 否 | |
| az_priority | 可用区优先级 | 整型 | 1 | 数值越小优先级越高 | |
| xlog_dir | xlog 日志目录 | 字符串 | 空 | 默认会放到 log_dir 的 pg_log 下,若配置该字段,不能为数据目录的子目录,否则启动报错 | |
| db_conf | 数据库guc 参数配置 | 字典 | 空 | 字典键为 postgresql.conf 中的参数 | |
| ssh_option | 连接实例时的ssh 连接认证信息 | ssh_option | 否 | 若未设置使用 global 内的配置 |
cm_servers 配置
| 字段名 | 解释 | 值类型 | 默认值 | 是否必填 | 备注 |
|---|---|---|---|---|---|
| host | 实例IP | 字符串 | 空 | 是 | |
| port | CM Server端口 | 整型 | 15300 | 否 | 若未填写,使用 global.cm_option.cm_server_port 的值 |
| ssh_option | 连接实例时的ssh 连接认证信息 | ssh_option | 否 | 若未设置使用 global 内的配置或db_servers 中相同IP的配置 |
cm_option
| 字段名 | 解释 | 值类型 | 默认值 | 是否必填 | 备注 |
|---|---|---|---|---|---|
| dir | CM 安装目录 | 字符串 | $base_dir/cm | 是 | |
| cm_server_port | CM server 监听端口 | 整型 | 15300 | 否 | |
| db_service_vip | 虚拟IP(需CM支持) | 字符串 | 空 | 否 | |
| cm_server_conf | CM sever 配置参数 | 字典 | 空 | 否 | 该字段下字典的键支持任何 cm_server 的参数,PTK 会将值设置到 cm_server.conf 文件中 |
| cm_agent_conf | CM agent 配置参数 | 字典 | 空 | 否 | 该字段下字典的键支持任何 cm_agent 的参数,PTK 会将值设置到 cm_agent.conf 文件中 |
ssh_option
| 字段名 | 解释 | 值类型 | 默认值 | 是否必填 | 备注 |
|---|---|---|---|---|---|
| host | 机器IP | 字符串 | 实例的IP | 否 | 如果配置为 proxy 跳板机时,该字段必填 |
| port | ssh 连接端口 | 整型 | 22 | 否 | |
| user | ssh 连接用户 | 字符串 | root | 否 | 如果连接的用户为非 root 时,需确保该用户具有免密执行 sudo 的权限 |
| password | ssh 连接密码 | 字符串 | 空 | 否 | 需通过 encrypt 指令加密后填写 |
| key_file | ssh 连接密钥文件 | 字符串 | 空 | 否 | |
| passphrase | ssh 连接密钥文件的口令 | 字符串 | 空 | 否 | |
| conn_timeout | ssh 连接超时时间 | Duration | 1m | 否 | |
| exec_timeout | 执行命令超时时间 | Duration | 10m | 否 | |
| proxy | 跳板机配置 | ssh_option | 空 | 否 | 仅支持跳一次连接 |
参考资料
https://docs.mogdb.io/zh/ptk/v1.1/overview PTK 部署运维工具




