1、关于PTK工具

MogDB数据库是云和恩墨基于openGauss开源数据库打造,安稳易用的企业级关系型数据库。

PTK是云和恩墨出品的一款工具,帮助用户更便捷地部署管理MogDB数据库。

同理ptk是否也适用于openGauss数据库呢?据我从roger得到的答案是肯定的。

1.1 使用场景

开发人员快速启动多个本地 MogDB 环境

用户通过 PTK 快速安装部署 MogDB

DBA 日常运维使用

第三方运维平台集成

1.2 推荐部署架构

PTK 的定位是一个中心化多集群管理软件,作为一个中控软件的角色,通过 SSH 的方式远程管理多个数据库集群,所以,我们推荐您将PTK部署在单独的一台控制服务器上,然后将数据库部署到数据库专属的服务器上,如下图。当然,PTK也支持本地部署,您可以根据您的机器情况自行安排安装位置。

(注:PTK依赖本地元数据来进行集群管理,不同操作系统用户安装的PTK相互独立不可见)

+-----------+
                   |    PTK    |
                   +-----------+
         /---ssh-----/   |    \---ssh----\
        /               ssh               \
       /                 |                 \
+-----------+      +-----------+      +-----------+
|   MogDB   |      |   MogDB   |      |   MogDB   |
+-----------+      +-----------+      +-----------+ 作者:Gauss松鼠会 https://www.bilibili.com/read/cv38650046/?spm_id_from=333.999.0.0 出处:bilibili

1.3 PTK 支持部署 MogDB 的操作系统

最新列表请通过 ptk candidate os 查看

软件下载地址:https://www.mogdb.io/downloads/ptk/all

PTK软件使用说明书:https://docs.mogdb.io/zh/ptk/v2.0/overview

云和恩墨的软件许可看得出,这家软件还是比较宽松的,允许大家进行测试,这点十分的友好。

MogDB: Privacy下面是截取的一段说明:

云和恩墨授予您非排他性、不可转让的、不可再许可、不可分许可且可撤销的有限许可,允许您在遵守本协议所述限制的前提下,仅出于开发、测试、原型设计和演示您的应用程序的目的,并且仅在您的应用程序未用于任何数据处理、业务、商业或生产目的的情况下,且不得用于任何其他目的。您可以允许您的承包商使用程序,前提是他们代表您行使本协议中授予的许可权利,并且您及您的承包商有责任在此类使用中遵守本协议。您将与您的承包商签订书面协议,严格限制他们使用程序的权利,并以其他方式保护云和恩墨及【MogDB】软件的知识产权,其程度不得低于本协议。您可以在合理必要的范围内复制程序,以行使本协议中授予的许可权利。若云和恩墨发现您允诺使用程序的承包商有不符合要求或使用限制的,云和恩墨可单方中断承包商的使用权限。

目前最新的PTK版本是V1.7.0,在8月30号刚刚发布。

2、安装PTK

2.1 在线安装

注:命令行安装方式不支持 Windows 系统

在终端中,执行以下指令即可自动完成安装:

curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh 

该指令会自动将 PTK 安装在用户的家目录 $HOME/.ptk 目录下,该目录以后会作为 PTK 工具的工作目录, 其产生的缓存文件、数据文件以及集群的配置信息,备份信息等文件均会存储到该目录下。同时,安装指令会自动将 $HOME/.ptk/bin 的路径加入到对应 SHELL Profile 文件(安装日志的末尾会显示)的 PATH 环境变量中, 这样在用户登录到服务器后就可以直接使用 ptk 指令了。

执行安装完成后,用户重新打开终端即可激活 ptk 命令。

2.2 离线安装

如果您的服务器无法直接访问互联网或者是需要在 Windows 系统上使用 PTK 工具,此时可以通过手动方式进行安装。

请按照以下操作步骤进行安装:

先从下面链接页面下载对应服务器架构的安装包:

🔗 https://www.mogdb.io/downloads/ptk/all

将安装包上传到目标服务器上解压即可

mkdir -p $HOME/.ptk/bin
tar -xvf ptk_1.7.0_linux_x86_64.tar.gz -C $HOME/.ptk/bin
echo "export PATH=$HOME/.ptk/bin:$PATH" >> $HOME/.bashrc
source $HOME/.bashrc

3、使用PTK一键部署openGauss

3.1 安装前准备

整体安装过程如下:

1、生成模板文件

2、检查操作系统是否满足要求并生成整改文件脚本

3、执行安装

另外说一句,执行之前需要提前配置好主机名及hosts文件,只有这些!

这里示例使用的环境如下:

操作系统:银河麒麟V10

数据库版本:openGauss 5.02 for openEuler 22.03

3.2 生成模板文件

使用ptk template 命令即可,以上是命令帮助

[root@ogserver ~]# ptk template -h
生成配置模板

Usage:
  ptk template [flags]

Available Commands:
  create      交互式创建配置文件
  mogha       生成 MogHA 配置
  scale-out   生成扩容配置

Flags:
  -d, --base-dir string       指定数据库要安装的基目录 (default "/opt/mogdb")
  -n, --cluster-name string   指定集群名称, 默认会随机生成
  -g, --group string          指定系统用户组 (default "omm")
  -l, --local                 生成安装本地数据库的配置文件
  -p, --port int              指定数据库端口 (default 26000)
  -u, --user string           指定系统用户名 (default "omm")

Global Flags:
      --disable-color         禁用彩色日志
      --disable-debug-log     不生成调试日志文件
      --disable-progressbar   全局不显示进度条
  -h, --help                  打印帮助信息
      --log-file string       指定运行日志文件路径
      --log-format string     指定运行日志的输出格式, 可选项: [text, json] (default "text")
      --log-level string      指定运行日志级别, 可选项: [debug, info, warning, error, panic] (default "info")
      --silence               不打印日志到标准输出
      --skip-fix-ssh          无需通过交互修复 ssh 连接

Examples:
# 生成本地单实例配置模板
ptk template -l > config.yml

# 生成多实例集群的配置模板
ptk template > config.yml

# 自定义部分配置字段的值
ptk template -n <CLUSTER_NAME> -u <OS_USER> -g <OS_USERGROUP> -d <BASE_DIR> -p <DB_PORT> > config.yml

Support from: v0.2

Use "ptk template [command] --help" for more information about a command. 

如果你是小白,推荐使用ptk template create 执行交互式创建,下面是示例:

[root@ogserver ~]# ptk template create
✔ 请输入集群名称 (默认: swirles): dbserver
✔ 请输入系统用户名 (默认: omm): omm
✔ 请输入用户组名 (默认: omm): dbgroup
✔ 请输入数据库密码 (8~15 个字符, 3 种类型): **********
✔ 再次输入数据库密码: **********
✔ 请输入数据库端口 (范围 1024~65535) (默认: 26000): 15400
✔ 请输入数据库基础目录 (需为空目录) (默认: /opt/mogdb): /data/openGauss█
✔ 是否要安装CM组件 (默认 n) [y/n]: y
✔ 是否要安装CM组件 (默认 n) [y/n]: y
接下来, 我们来添加一些数据库实例服务器
================db server 1================
✔ 请输入服务器 IP (仅支持 IPv4): 192.168.100.10
✔ 请选择数据库角色: primary        //此处会提示你是primaty 还是standby,可以按光标选择
✔ 请输入可用区的名称 (默认: AZ1):
✔ 请输入可用区 ("AZ1") 的优先级 (默认: 1):
================ end ================
✔ 您想添加另一个数据库实例吗 (默认 n) [y/n]: n
Generate /root/config.2024-09-03T15_51_58.yaml successfully 

3.3 执行安装前检查

执行ptk checkos -f <模板文件> --detail就会显示出检查情况,并详细列出哪有不符合Abnormal,哪里是告警Warning建议调整。

这里示例执行输出如下,随后会自动生成 个修改脚本,只要执行一下,就可以完成abnormal项的修改。

[root@ogserver ~]# ptk checkos -f /root/config.2024-09-03T15_51_58.yaml  --detail
INFO[2024-09-03T16:00:52.374] 预检查依赖工具...
INFO[2024-09-03T16:00:52.434] [192.168.100.10][omm] platform: kylin_V10_64bit
INFO[2024-09-03T16:00:52.437] [192.168.100.111][omm] 交换内存 4132860kB,总内存 2952948kB
ERRO[2024-09-03T16:00:52.453] [192.168.100.111][omm] net.core.rmem_default=212992, expect 262144
ERRO[2024-09-03T16:00:52.460] [192.168.100.111][omm] kernel.sem=32000 1024000000 500 32000, expect 250 6400000 1000 25600
WARN[2024-09-03T16:00:52.463] [192.168.100.111][omm] net.ipv4.tcp_max_syn_backlog=128, expect 65535
WARN[2024-09-03T16:00:52.469] [192.168.100.111][omm] net.ipv4.tcp_syn_retries=6, expect 5
WARN[2024-09-03T16:00:52.472] [192.168.100.111][omm] net.core.somaxconn=128, expect 65535
ERRO[2024-09-03T16:00:52.475] [192.168.100.111][omm] net.core.wmem_default=212992, expect 262144
ERRO[2024-09-03T16:00:52.485] [192.168.100.111][omm] net.core.wmem_max=212992, expect 1048576
WARN[2024-09-03T16:00:52.491] [192.168.100.111][omm] net.ipv4.tcp_keepalive_intvl=75, expect 30
WARN[2024-09-03T16:00:52.498] [192.168.100.111][omm] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216
WARN[2024-09-03T16:00:52.500] [192.168.100.111][omm] net.ipv4.tcp_keepalive_time=7200, expect 30
WARN[2024-09-03T16:00:52.503] [192.168.100.111][omm] net.ipv4.tcp_retries1=3, expect 5
WARN[2024-09-03T16:00:52.505] [192.168.100.111][omm] net.ipv4.tcp_retries2=15, expect 12
WARN[2024-09-03T16:00:52.507] [192.168.100.111][omm] net.core.netdev_max_backlog=1000, expect 65535
WARN[2024-09-03T16:00:52.513] [192.168.100.111][omm] vm.min_free_kbytes=67584, expect 147647
ERRO[2024-09-03T16:00:52.517] [192.168.100.111][omm] net.core.rmem_max=212992, expect 1048576
WARN[2024-09-03T16:00:52.521] [192.168.100.111][omm] net.ipv4.tcp_tw_reuse=2, expect 1
WARN[2024-09-03T16:00:52.523] [192.168.100.111][omm] net.ipv4.tcp_rmem=4096 131072 6291456, expect 8192 250000 16777216
INFO[2024-09-03T16:00:52.530] [192.168.100.111][omm] 检查 kernel.core_pattern
INFO[2024-09-03T16:00:52.534] [192.168.100.111][omm] 检查 RemoveIPC 的值
INFO[2024-09-03T16:00:52.541] [192.168.100.111][omm] 检查 KillUserProcesses 的值
ERRO[2024-09-03T16:00:52.554] [192.168.100.111][omm] selinux mode in /etc/selinux/config is 'enforcing'
INFO[2024-09-03T16:00:55.427] [192.168.100.111][omm] 内核版本: 4.19.90-52.22.v2207.ky10.x86_64
WARN[2024-09-03T16:00:55.449] [192.168.100.111][omm] device(/dev/sda) readahead value=8192, expect 16384.
INFO[2024-09-03T16:00:55.458] [192.168.100.111][omm] 检查端口 15400
INFO[2024-09-03T16:00:55.467] [192.168.100.111][omm] 端口 15400 空闲
INFO[2024-09-03T16:00:55.474] [192.168.100.111][omm] 时区: +0800
WARN[2024-09-03T16:00:55.485] [192.168.100.111][omm] device(sda) 'IO Request'=254, expect 256
ERRO[2024-09-03T16:00:55.501] [192.168.100.111][omm] firewall status='enabled', expect 'disabled'.
INFO[2024-09-03T16:00:55.501] 完成所有检查项
INFO[2024-09-03T16:00:55.501] 将修复 OS 脚本写入 root_fix_os.0903.160055.sh 成功
INFO[2024-09-03T16:00:55.501] 用时: 4s
# Check Results
                Item                |  Level   |                                   Message
------------------------------------+----------+------------------------------------------------------------------------------
  A1.Check_OS_Version               | OK       |
  A2.Check_Kernel_Version           | OK       |
  A3.Check_Unicode                  | OK       |
  A4.Check_TimeZone                 | OK       |
  A5.Check_Swap_Memory_Configure    | Warning  | [192.168.100.111]:
                                    |          | swap memory (4132860 KB) is lager than total memory (2952948 KB)
  A6.Check_SysCtl_Parameter         | Abnormal | [192.168.100.111]:
                                    |          | Abnormal: net.core.rmem_default=212992, expect 262144
                                    |          | Abnormal: kernel.sem=32000 1024000000 500 32000, expect 250 6400000 1000 25600
                                    |          | Warning: net.ipv4.tcp_max_syn_backlog=128, expect 65535
                                    |          | Warning: net.ipv4.tcp_syn_retries=6, expect 5
                                    |          | Warning: net.core.somaxconn=128, expect 65535
                                    |          | Abnormal: net.core.wmem_default=212992, expect 262144
                                    |          | Abnormal: net.core.wmem_max=212992, expect 1048576
                                    |          | Warning: net.ipv4.tcp_keepalive_intvl=75, expect 30
                                    |          | Warning: net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216
                                    |          | Warning: net.ipv4.tcp_keepalive_time=7200, expect 30
                                    |          | Warning: net.ipv4.tcp_retries1=3, expect 5
                                    |          | Warning: net.ipv4.tcp_retries2=15, expect 12
                                    |          | Warning: net.core.netdev_max_backlog=1000, expect 65535
                                    |          | Warning: vm.min_free_kbytes=67584, expect 147647
                                    |          | Abnormal: net.core.rmem_max=212992, expect 1048576
                                    |          | Warning: net.ipv4.tcp_tw_reuse=2, expect 1
                                    |          | Warning: net.ipv4.tcp_rmem=4096 131072 6291456, expect 8192 250000 16777216
  A7.Check_FileSystem_Configure     | OK       |
  A8.Check_Disk_Configure           | OK       |
  A9.Check_BlockDev_Configure       | Warning  | [192.168.100.111]:
                                    |          | device(/dev/sda) readahead value=8192, expect 16384.
  A9.Check_Logical_Block            | OK       |
  A10.Check_Asynchronous_IO_Request | OK       |
  A10.Check_IO_Configure            | OK       |
  A10.Check_NR_Request              | Warning  | [192.168.100.111]:
                                    |          | device(sda) 'IO Request'=254, expect 256
  A11.Check_Network_Configure       | OK       |
  A12.Check_Time_Consistency        | OK       |
  A13.Check_Firewall_Status         | Abnormal | [192.168.100.111]:
                                    |          | firewall status='enabled', expect 'disabled'.
  A14.Check_THP_Status              | OK       |
  A15.Check_Dependent_Package       | Warning  | [192.168.100.111]:
                                    |          | Warning: not found package: flex
                                    |          | Warning: not found package: bison
                                    |          | Warning: not found package: ncurses-devel
  A16.Check_CPU_Instruction_Set     | OK       |
  A17.Check_Port                    | OK       |
  A18.Check_Selinux                 | Abnormal | [192.168.100.111]:
                                    |          | selinux mode in /etc/selinux/config is 'enforcing'
  A19.Check_User_Ulimit             | OK       |
  A20.Check_Directory               | OK       |
Total count 23, abnormal count 3, warning count 4
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.0903.160055.sh for commands to resolve.

这里我们执行一下脚本,修正不符合的参数。

[root@ogserver ~]# sh root_fix_os.0903.160055.sh
++ ip addr
++ grep -v 'inet6\|127.0.0.1\|grep'
++ awk '{print $2}'
++ awk -F / '{print $1}'
++ grep inet
+ local_ips='192.168.100.111
192.168.233.134
192.168.122.1'
+ for ip in ${local_ips}
+ [[ 192.168.100.111 == \1\9\2\.\1\6\8\.\1\0\0\.\1\1\1 ]]
+ sed -i /net.core.rmem_default/d /etc/sysctl.conf
+ echo net.core.rmem_default = 262144
+ sed -i /kernel.sem/d /etc/sysctl.conf
+ echo kernel.sem = 250 6400000 1000 25600
+ sed -i /net.core.wmem_default/d /etc/sysctl.conf
+ echo net.core.wmem_default = 262144
+ sed -i /net.core.wmem_max/d /etc/sysctl.conf
+ echo net.core.wmem_max = 1048576
+ sed -i /net.core.rmem_max/d /etc/sysctl.conf
+ echo net.core.rmem_max = 1048576
+ sysctl -p
kernel.sysrq = 0
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.core.rmem_default = 262144
kernel.sem = 250 6400000 1000 25600
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.core.rmem_max = 1048576
+ sudo sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
+ systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
+ systemctl stop firewalld
+ for ip in ${local_ips}
+ [[ 192.168.233.134 == \1\9\2\.\1\6\8\.\1\0\0\.\1\1\1 ]]
+ for ip in ${local_ips}
+ [[ 192.168.122.1 == \1\9\2\.\1\6\8\.\1\0\0\.\1\1\1 ]] 

改完可以再检查一遍,几乎都修复完了,我就省略一下只显示结果

Total count 23, abnormal count 0, warning count 5 

关于warning的选项也可根据提示手动修改。这里就不演示了。

3.4 安装openGauss数据库

执行命令,一键安装

[root@ogserver ~]#  ptk install -f /root/config.2024-09-03T15_51_58.yaml -p /root/kylinv10sp3_openGauss-5.0.2-openEuler-64bit-all_x86.tar.gz
INFO[2024-09-03T16:15:04.983] PTK 版本: 1.7.0 release
INFO[2024-09-03T16:15:04.983]/root/config.2024-09-03T15_51_58.yaml 加载配置
如果您选择继续安装软件,
就代表您接受该软件的许可协议。

  [Y]: 接受并继续
  [C]: 显示许可协议内容
  [N]: 中止安装并退出

✔ 请输入 (默认: Y): y
集群名:"dbserver"
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
| az(priority) |       ip        | user(group)  | port  |  role   |       data dir       | upstream |
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
| AZ1(1)       | 192.168.100.111 | omm(dbgroup) | 15400 | primary | /data/openGauss/data | -        |
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
✔ 集群配置是否正确 (默认 n) [y/n]: y
INFO[2024-09-03T16:15:15.644] 检查主机名 ...
INFO[2024-09-03T16:15:15.647] 主机名检查成功
INFO[2024-09-03T16:15:15.647] 检查操作系统 ...
INFO[2024-09-03T16:15:15.647] 预检查依赖工具...
INFO[2024-09-03T16:15:15.672] [192.168.100.111][omm] platform: kylin_V10_64bit
INFO[2024-09-03T16:15:15.674] [192.168.100.111][omm] 内核版本: 4.19.90-52.22.v2207.ky10.x86_64
INFO[2024-09-03T16:15:15.678] [192.168.100.111][omm] 时区: +0800
WARN[2024-09-03T16:15:15.685] [192.168.100.111][omm] device(/dev/sda) readahead value=8192, expect 16384.
INFO[2024-09-03T16:15:15.693] [192.168.100.111][omm] 交换内存 4132860kB,总内存 2952948kB
WARN[2024-09-03T16:15:15.696] [192.168.100.111][omm] net.ipv4.tcp_max_syn_backlog=128, expect 65535
WARN[2024-09-03T16:15:15.706] [192.168.100.111][omm] net.ipv4.tcp_retries2=15, expect 12
WARN[2024-09-03T16:15:15.719] [192.168.100.111][omm] net.ipv4.tcp_keepalive_intvl=75, expect 30
WARN[2024-09-03T16:15:15.721] [192.168.100.111][omm] net.ipv4.tcp_rmem=4096 131072 6291456, expect 8192 250000 16777216
WARN[2024-09-03T16:15:15.723] [192.168.100.111][omm] net.core.netdev_max_backlog=1000, expect 65535
WARN[2024-09-03T16:15:15.784] [192.168.100.111][omm] vm.min_free_kbytes=67584, expect 147647
WARN[2024-09-03T16:15:15.920] [192.168.100.111][omm] net.ipv4.tcp_keepalive_time=7200, expect 30
WARN[2024-09-03T16:15:15.994] [192.168.100.111][omm] net.ipv4.tcp_retries1=3, expect 5
WARN[2024-09-03T16:15:15.998] [192.168.100.111][omm] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216
WARN[2024-09-03T16:15:16.005] [192.168.100.111][omm] net.ipv4.tcp_syn_retries=6, expect 5
WARN[2024-09-03T16:15:16.011] [192.168.100.111][omm] net.ipv4.tcp_tw_reuse=2, expect 1
WARN[2024-09-03T16:15:16.018] [192.168.100.111][omm] net.core.somaxconn=128, expect 65535
INFO[2024-09-03T16:15:16.020] [192.168.100.111][omm] 检查 kernel.core_pattern
INFO[2024-09-03T16:15:16.024] [192.168.100.111][omm] 检查 RemoveIPC 的值
INFO[2024-09-03T16:15:16.032] [192.168.100.111][omm] 检查 KillUserProcesses 的值
INFO[2024-09-03T16:15:18.426] [192.168.100.111][omm] 检查端口 15400
INFO[2024-09-03T16:15:18.439] [192.168.100.111][omm] 端口 15400 空闲
WARN[2024-09-03T16:15:18.471] [192.168.100.111][omm] device(sda) 'IO Request'=254, expect 256
INFO[2024-09-03T16:15:18.509] 完成所有检查项
INFO[2024-09-03T16:15:18.509] 用时: 3s
INFO[2024-09-03T16:15:18.509] 操作系统检查成功
INFO[2024-09-03T16:15:18.509] 检查系统发行版 ...
INFO[2024-09-03T16:15:18.509] 发行版检查成功
INFO[2024-09-03T16:15:18.509] 检查用户 ...
INFO[2024-09-03T16:15:18.518] 检查用户成功
INFO[2024-09-03T16:15:18.518] 检查端口 ...
INFO[2024-09-03T16:15:18.518] checking port 15400 on host 192.168.100.111 (db listen port) ...
INFO[2024-09-03T16:15:18.526] checking port 15401 on host 192.168.100.111 (db HA port) ...
INFO[2024-09-03T16:15:18.532] 端口检查成功
INFO[2024-09-03T16:15:18.535] [192.168.100.111][omm] 创建操作系统用户omm, 组dbgroup
INFO[2024-09-03T16:15:18.560] [192.168.100.111][omm] set ulimit configs
INFO[2024-09-03T16:15:18.563] 准备安装包 ...
INFO[2024-09-03T16:15:18.563] 安装包已经就绪
INFO[2024-09-03T16:15:18.563] parse installation package ...
INFO[2024-09-03T16:16:12.448] 数据库产品: openGauss, 版本: 5.0.2, number: 92.861, commit_id: 48a25b11
INFO[2024-09-03T16:16:12.800] 将 openGauss-5.0.2-openEuler-64bit.tar.bz2 提取到目录/tmp/ptk_tmp_2235563565
INFO[2024-09-03T16:16:31.188] execute command: gaussdb --version
INFO[2024-09-03T16:16:31.241] parse installation package success
INFO[2024-09-03T16:16:31.241] 开始完善配置 ...
INFO[2024-09-03T16:16:31.241] 完善配置成功
INFO[2024-09-03T16:16:31.241] save the topology to metadata
INFO[2024-09-03T16:16:31.242] 开始分发安装包...
INFO[2024-09-03T16:16:31.420] 安装包分发成功
INFO[2024-09-03T16:16:31.420] 开始安装逻辑节点 ...
INFO[2024-09-03T16:16:31.421] 部署数据库到 omm@192.168.100.111
INFO[2024-09-03T16:16:31.422] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss
INFO[2024-09-03T16:16:31.835] [192.168.100.111][omm] 清除用户 omm 的 IPC 资源
INFO[2024-09-03T16:16:31.911] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/tool,/data/openGauss/tool/ptk_tool/bin
INFO[2024-09-03T16:16:33.218] [192.168.100.111][omm] 将 kylinv10sp3_openGauss-5.0.2-openEuler-64bit-all_x86.tar.gz 提取到目录/data/openGauss/tool
INFO[2024-09-03T16:16:34.078] [192.168.100.111][omm] 将 openGauss-5.0.2-openEuler-64bit-om.tar.gz 提取到目录/data/openGauss/tool
INFO[2024-09-03T16:16:34.864] [192.168.100.111][omm] 尝试修复psutil Python库
INFO[2024-09-03T16:16:35.444] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/script/py_pstree.py
INFO[2024-09-03T16:16:35.588] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/ptk_tool/bin/README.md
INFO[2024-09-03T16:16:35.838] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/ptk_tool/bin/pscp
INFO[2024-09-03T16:16:36.123] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/ptk_tool/bin/pssh
INFO[2024-09-03T16:16:36.262] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/ptk_tool/bin/task_pool.py
INFO[2024-09-03T16:16:36.682] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/app
INFO[2024-09-03T16:16:36.914] [192.168.100.111][omm] 将 openGauss-5.0.2-openEuler-64bit.tar.bz2 提取到目录/data/openGauss/app
INFO[2024-09-03T16:16:57.317] [192.168.100.111][omm]/data/openGauss/app 的权限更改为 700
INFO[2024-09-03T16:16:57.442] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/app/share/postgresql
INFO[2024-09-03T16:16:57.793] [192.168.100.111][omm]/data/openGauss/tool/script/gspylib/etc/sql/pmk_schema.sql 复制到 /data/openGauss/app/share/postgresql
INFO[2024-09-03T16:16:57.866] [192.168.100.111][omm]/data/openGauss/tool/script/gspylib/etc/sql/pmk_schema_single_inst.sql 复制到 /data/openGauss/app/share/postgresql
INFO[2024-09-03T16:16:57.920] [192.168.100.111][omm] 写入文件 /data/openGauss/app/bin/transfer.py
INFO[2024-09-03T16:16:58.077] [192.168.100.111][omm] 设置用户omm的配置文件
INFO[2024-09-03T16:16:58.530] [192.168.100.111][omm] 验证并尝试修复 gs_initdb 的 ld 库
INFO[2024-09-03T16:16:58.582] [192.168.100.111][omm] 验证并尝试修复 gaussdb 的 ld 库
INFO[2024-09-03T16:16:58.654] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/log/gs_profile,/data/openGauss/log/pg_log,/data/openGauss/log/pg_audit,/data/openGauss/log/bin,/data/openGauss/log/pg_log/dn_6001,/data/openGauss/log/pg_audit/dn_6001
INFO[2024-09-03T16:17:01.316] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/tmp
INFO[2024-09-03T16:17:01.519] [192.168.100.111][omm] 将版本保存为 upgrade_version
INFO[2024-09-03T16:17:01.868] [192.168.100.111][omm] 创建文件 cluster_manual_start
INFO[2024-09-03T16:17:01.956] [192.168.100.111][omm] 生成 cluster_static_config 文件
INFO[2024-09-03T16:17:02.045] [192.168.100.111][omm] 创建用户omm的目录:/data/openGauss/data
INFO[2024-09-03T16:17:02.302] [192.168.100.111][omm] 写入文件 /data/openGauss/tool/.ptk_deployer
INFO[2024-09-03T16:17:02.691] 生成认证文件
INFO[2024-09-03T16:17:03.917] 下载认证文件
INFO[2024-09-03T16:17:04.867] 认证文件安装成功
INFO[2024-09-03T16:17:04.867] 在 omm@192.168.100.111 上初始化数据库
INFO[2024-09-03T16:17:04.867] [192.168.100.111][omm] 数据库正在初始化, 请稍等一会儿
INFO[2024-09-03T16:17:16.636] [192.168.100.111][omm] 配置 postgresql.conf 文件
INFO[2024-09-03T16:17:16.739] [192.168.100.111][omm] 配置 pg_hba.conf 文件
INFO[2024-09-03T16:17:16.808] [192.168.100.111][omm] 将 SSL 文件复制到数据目录
INFO[2024-09-03T16:17:16.893] 逻辑节点安装成功
INFO[2024-09-03T16:17:16.900] 生成 PTKC ...
INFO[2024-09-03T16:17:17.054] 开始构建 SSH 互信 ...
INFO[2024-09-03T16:17:18.154] SSH 互信构建成功
INFO[2024-09-03T16:17:18.154] 启动数据库 ...
INFO[2024-09-03T16:17:18.154] [192.168.100.111][omm] 使用 gs_ctl 启动数据库中 ...
INFO[2024-09-03T16:17:18.154] [192.168.100.111][omm] 数据库正在启动,请稍等一会儿
INFO[2024-09-03T16:17:19.245] [192.168.100.111][omm] 数据库启动成功
INFO[2024-09-03T16:17:19.245] 数据库启动成功
INFO[2024-09-03T16:17:19.245] 正在清理临时目录 ...
INFO[2024-09-03T16:17:19.271] 临时目录清理成功
INFO[2024-09-03T16:17:19.271] 用时: 2m9s

  cluste_name |      host       | user | port  |    status     | message
--------------+-----------------+------+-------+---------------+----------
  dbserver    | 192.168.100.111 | omm  | 15400 | start_success | success 

只用时2m9s安装完毕。

4、使用PTK管理数据库

这里简单演示一下简单的管理命令

4.1 启停集群

主要是通过ptk cluster命令来管理集群

[root@ogserver ~]# ptk cluster -h
管理集群

Usage:
  ptk cluster [flags]

Available Commands:
  start                     启动数据库实例或集群
  stop                      停止数据库实例或集群
  restart                   重启数据库实例或集群
  status                    显示集群或实例的状态信息
  build                     重建数据库数据
  switchover                主备切换,升级备库为主库,降主库为备库
  failover                  提升一个备库为主库
  inspect                   返回关于集群的内部信息
  install-plugin            安装 MogDB 插件
  list-plugins              列出集群中的插件
  install-mogha             为 MogDB 安装 MogHA
  uninstall-mogha           卸载 MogHA
  scale-in                  对一个MogDB集群进行缩容
  scale-out                 对一个MogDB集群进行扩容
  show-hba                  打印数据库 pg_hba.conf 内容
  set-hba                   设置并重新加载数据库的 pg_hba.conf
  show-guc                  打印数据库参数
  set-guc                   设置并重新加载数据库参数
  show-config               打印集群拓扑配置文件
  modify-comment            修改指定集群的备注
  shell                     执行 shell 命令或脚本
  refresh                   更新集群配置
  promote                   将一个数据库实例从备库提升为主库, 或从级联备库提升为备库
  demote                    将数据库角色从 Primary 降级为 Standby,或从 Standby 降级为 Cascade Standby
  upgrade                   升级集群的数据库版本
  upgrade-commit            确认提交升级操作(!提交后不能回滚)
  upgrade-rollback          回滚升级操作
  is-in-upgrade             查看集群是否处于升级过程中
  install-kerberos-server   安装 kerberos 服务器
  uninstall-kerberos-server 卸载 kerberos 服务
  add-kerberos-auth         添加 kerberos 认证
  del-kerberos-auth         删除 kerberos 认证
  load-cm-vip               管理 CM 的虚拟IP (仅 Mogdb v5.0.4+ 支持)
  gen-cert-files            生成ssl证书文件
  install-cm                安装 CM 组件
  uninstall-cm              卸载 CM 组件
  takeover                  添加一个新的实例到PTK的元数据
  throwout                  从PTK的元数据中移除实例
  rename                    重命名集群
  install-mogila            安装mogila示例数据
  install-compat-tools      安装compat-tools
  uninstall-compat-tools    Uninstall compat-tools
  createdb                  创建Database

Flags:
  -n, --name string   集群名称

Global Flags:
      --disable-color         禁用彩色日志
      --disable-debug-log     不生成调试日志文件
      --disable-progressbar   全局不显示进度条
  -h, --help                  打印帮助信息
      --log-file string       指定运行日志文件路径
      --log-format string     指定运行日志的输出格式, 可选项: [text, json] (default "text")
      --log-level string      指定运行日志级别, 可选项: [debug, info, warning, error, panic] (default "info")
      --silence               不打印日志到标准输出
      --skip-fix-ssh          无需通过交互修复 ssh 连接

Support from: v0.1

Use "ptk cluster [command] --help" for more information about a command. 

PTK可以代替gs_om命令来启停集群,示例如下

[root@ogserver ~]# ptk cluster -n dbserver  status
[   Cluster State   ]
cluster_name                   : dbserver
cluster_state                  : Normal
database_version               : openGauss 5.0.2 (build 48a25b11)

[  Datanode State   ]
  cluster_name |  id  |       ip        | port  | user | nodename | db_role | state  |  uptime  | upstream
---------------+------+-----------------+-------+------+----------+---------+--------+----------+-----------
  dbserver     | 6001 | 192.168.100.111 | 15400 | omm  | dn_6001  | primary | Normal | 00:02:29 | -
[root@ogserver ~]# ptk cluster -n dbserver  stop
INFO[2024-09-03T16:19:52.916] 操作: stop
INFO[2024-09-03T16:19:52.916] ========================================
INFO[2024-09-03T16:19:53.643] 数据库[192.168.100.111:15400]停止中 ...
INFO[2024-09-03T16:19:54.807] 数据库[192.168.100.111:15400]停止成功
INFO[2024-09-03T16:19:54.807] ========================================
INFO[2024-09-03T16:19:54.807] 停止成功
[root@ogserver ~]# ptk cluster -n dbserver  start
INFO[2024-09-03T16:20:02.251] checking cluster state before start
INFO[2024-09-03T16:20:02.699] 操作: start
INFO[2024-09-03T16:20:02.699] ========================================
INFO[2024-09-03T16:20:02.699] 数据库[192.168.100.111:15400]启动中 ...
INFO[2024-09-03T16:20:03.993] 数据库[192.168.100.111:15400]启动成功
INFO[2024-09-03T16:20:04.245] ========================================
INFO[2024-09-03T16:20:04.245] 集群启动成功 

4.2 卸载集群

卸载前需要先停止停群,然后执行ptk uninstall -n <集群名>

[root@ogserver ~]# ptk uninstall -n dbserver
INFO[2024-09-03T16:23:05.516] PTK 版本: 1.7.0 release
集群名:"dbserver"
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
| az(priority) |       ip        | user(group)  | port  |  role   |       data dir       | upstream |
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
| AZ1(1)       | 192.168.100.111 | omm(dbgroup) | 15400 | primary | /data/openGauss/data | -        |
+--------------+-----------------+--------------+-------+---------+----------------------+----------+
✔ 您确实要卸载该集群吗? 请仔细确认 (默认 n) [y/n]: y
✔ 是否要删除数据库数据 (默认 n) [y/n]: y
✔ 是否要删除操作系统用户 (默认 n) [y/n]: y
INFO[2024-09-03T16:23:08.856] [192.168.100.111][omm] 检查数据库目录属主
INFO[2024-09-03T16:23:09.217] [192.168.100.111][omm] 检查数据进程状态
INFO[2024-09-03T16:23:09.376] [192.168.100.111][omm] 删除文件: /data/openGauss/app,/data/openGauss/tool,/data/openGauss/tmp,/data/openGauss/data,/data/openGauss/log
INFO[2024-09-03T16:23:09.739] [192.168.100.111][omm] 终止用户 "omm" 现有的进程: [krb5kdc]
INFO[2024-09-03T16:23:10.142] [192.168.100.111][omm] 从cron.allow中移除用户"omm"
INFO[2024-09-03T16:23:10.148] [192.168.100.111][omm] 移除用户"omm"的ulimits设置
INFO[2024-09-03T16:23:10.176] [192.168.100.111][omm] 如果 "/data/openGauss" 为空,则删除
INFO[2024-09-03T16:23:10.189] [192.168.100.111][omm] 终止用户 "omm" 的所有进程
INFO[2024-09-03T16:23:10.222] [192.168.100.111][omm] 删除用户"omm"
INFO[2024-09-03T16:23:10.255] 卸载成功

5 总结

要做一个好的数据库,好用的工具是必不可少的,这点MogDB确实优秀,PTK命令工具十分简洁方便,简单上手。

看了一下MogDB官网还有好几实用的工具,都可以用来进行测试。这次先测到这里,回头再详细使用。

作者简介:
徐sir:公众号”徐sir的IT之路“主理人,从事IT系统集成工作10+年,青学会MOP技术社区联合创始人、中国OCMU成员、中国ACDU成员、墨天轮2023年十大优秀作者、Oracle 11g ocm、Oracle ACE-A、PGCM,欢迎关注公众号:徐sir的IT之路

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐