1、关于PTK工具
MogDB数据库是云和恩墨基于openGauss开源数据库打造,安稳易用的企业级关系型数据库。
PTK是云和恩墨出品的一款工具,帮助用户更便捷地部署管理MogDB数据库。
1.1 使用场景
- 开发人员快速启动多个本地 MogDB 环境
- 用户通过 PTK 快速安装部署 MogDB
- DBA 日常运维使用
- 第三方运维平台集成
1.2 推荐部署架构
PTK 的定位是一个中心化多集群管理软件,作为一个中控软件的角色,通过 SSH 的方式远程管理多个数据库集群,所以,我们推荐您将PTK部署在单独的一台控制服务器上,然后将数据库部署到数据库专属的服务器上,如下图。当然,PTK也支持本地部署,您可以根据您的机器情况自行安排安装位置。
(注:PTK依赖本地元数据来进行集群管理,不同操作系统用户安装的PTK相互独立不可见)
+-----------+
| PTK |
+-----------+
/---ssh-----/ | \---ssh----\
/ ssh \
/ | \
+-----------+ +-----------+ +-----------+
| MogDB | | MogDB | | MogDB |
+-----------+ +-----------+ +-----------+
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官网还有好几实用的工具,都可以用来进行测试。这次先测到这里,回头再详细使用。