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