1、PTK 简介
PTK (Provisioning Toolkit)是一款针对 MogDB 数据库开发的软件安装和运维工具,旨在帮助用户更便捷地安装部署MogDB数据库。
如果用户想要运行 MogDB 或者 MogDB 的相关组件时,仅需要执行一行命令即可实现。
2、使用场景
- 开发人员快速启动多个本地MogDB环境
- 用户通过PTK快速安装部署MogDB
- DBA日常运维使用
- 第三方运维平台集成
3、开始安装
3.1、安装准备
有关环境要求和操作系统配置详情,请参见环境要求和操作系统配置。
MogDB安装环境要求
3.2、下载安装 PTK
3.2.1、在线安装PTK
该指令会自动将 PTK 安装在用户的家目录 $HOME/.ptk 目录下,该目录以后会作为 PTK 工具的工作目录, 其产生的缓存文件、数据文件以及集群的配置信息,备份信息等文件均会存储到该目录下。 同时,安装指令会自动将 $HOME/.ptk/bin 的路径加入到对应 SHELL Profile 文件的 PATH 环境变量中, 这样在用户登录到服务器后就可以直接使用 ptk 指令了。curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh source ~/.bash_profile ptk --version
复制
安装完成后会提示如下信息(根据运行 PTK 的 SHELL 类型不同,信息会有所差异),输出结果如下:
[root@mogdb01 ~]# 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 [root@mogdb01 ~]# source ~/.bash_profile [root@mogdb01 ~]# ptk --version PTK Version: v0.8.3 release Go Version: go1.19.4 Build Date: 2023-06-05T16:19:02 Git Hash: 048219f OS/Arch: linux/amd64 [root@mogdb01 ~]#
复制
3.2.2、PTK生成配置文件
[root@mogdb01 ~]# ptk template >config.yaml [root@mogdb01 ~]# cat config.yaml |grep -v '#' global: cluster_name: bose user: omm group: omm db_port: 26000 base_dir: /opt/mogdb db_servers: - host: <replace host ip here> role: primary az_name: AZ1 az_priority: 1 ssh_option: port: 22 user: root key_file: "" passphrase: "" - host: <replace host ip here> role: standby az_name: AZ1 az_priority: 1 ssh_option: port: 22 user: root key_file: "" passphrase: "" [root@mogdb01 ~]#
复制
最终配置文件如下:
# config.yaml global: cluster_name: mogdb1 user: omm group: omm base_dir: /opt/mogdb db_servers: - host: 127.0.0.1 db_port: 26000
复制
如果全部使用默认值,则PTK 执行以下操作:
- 在本机安装数据库;
- 运行数据库的操作系统用户为omm ,用户组名称也是omm,该用户没有默认密码;
- 数据库安装在 /opt/mogdb目录下,在该目录下会创建4个目录:app, data, log, tool,分别用于存储数据库软件、数据文件、数据库日志和数据库相关工具;
- 数据库监听端口为26000;
3.3、检查本机系统
ptk checkos -f config.yaml ptk checkos -f config.yaml --detail
复制
确保输出的检查结果均为 OK 或者 Warning ,如果有 Abnormal 或 ExecuteError出现,需用户根据日志提示先修正系统参数。
如果有 Abnormal 检查项,ptk 会自动生成一个 root_fix_***.sh 文件,可用于快速修正系统参数;如果有 ExecuteError 检查项,代表 ptk 执行失败,需要用户根据错误信息调整系统环境。
[root@mogdb01 ~]# ptk checkos -f config.yaml INFO[2023-06-13T20:24:58.083] prechecking dependent tools... WARN[2023-06-13T20:24:58.156] [192.168.31.55][omm] net.ipv4.tcp_tw_recycle=0, expect 1 WARN[2023-06-13T20:24:58.174] [192.168.31.55][omm] net.ipv4.tcp_keepalive_time=7200, expect 30 WARN[2023-06-13T20:24:58.186] [192.168.31.55][omm] net.ipv4.tcp_max_syn_backlog=256, expect 65535 WARN[2023-06-13T20:24:58.210] [192.168.31.55][omm] net.ipv4.tcp_keepalive_intvl=75, expect 30 WARN[2023-06-13T20:24:58.218] [192.168.31.55][omm] net.ipv4.tcp_retries2=15, expect 12 WARN[2023-06-13T20:24:58.230] [192.168.31.55][omm] net.ipv4.tcp_rmem=4096 87380 6291456, expect 8192 250000 16777216 ERRO[2023-06-13T20:24:58.236] [192.168.31.55][omm] net.core.rmem_max=212992, expect 1048576 ERRO[2023-06-13T20:24:58.242] [192.168.31.55][omm] kernel.sem=250 32000 32 128, expect 250 6400000 1000 25600 WARN[2023-06-13T20:24:58.253] [192.168.31.55][omm] net.core.netdev_max_backlog=1000, expect 65535 WARN[2023-06-13T20:24:58.267] [192.168.31.55][omm] net.ipv4.tcp_tw_reuse=0, expect 1 WARN[2023-06-13T20:24:58.273] [192.168.31.55][omm] net.ipv4.tcp_retries1=3, expect 5 WARN[2023-06-13T20:24:58.279] [192.168.31.55][omm] net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216 ERRO[2023-06-13T20:24:58.286] [192.168.31.55][omm] net.core.wmem_max=212992, expect 1048576 ERRO[2023-06-13T20:24:58.292] [192.168.31.55][omm] net.core.wmem_default=212992, expect 262144 WARN[2023-06-13T20:24:58.306] [192.168.31.55][omm] vm.min_free_kbytes=67584, expect 407757 WARN[2023-06-13T20:24:58.327] [192.168.31.55][omm] net.ipv4.tcp_syn_retries=6, expect 5 WARN[2023-06-13T20:24:58.333] [192.168.31.55][omm] net.core.somaxconn=128, expect 65535 ERRO[2023-06-13T20:24:58.339] [192.168.31.55][omm] net.core.rmem_default=212992, expect 262144 INFO[2023-06-13T20:24:58.345] [192.168.31.55][omm] check kernel.core_pattern INFO[2023-06-13T20:24:58.360] [192.168.31.55][omm] check removeIPC value INFO[2023-06-13T20:24:58.438] [192.168.31.55][omm] check port 26000 INFO[2023-06-13T20:24:58.454] [192.168.31.55][omm] port 26000 is free INFO[2023-06-13T20:24:58.461] [192.168.31.55][omm] locale: LANG=en_US.UTF-8 INFO[2023-06-13T20:24:58.467] [192.168.31.55][omm] timezone: +0800 INFO[2023-06-13T20:24:58.474] [192.168.31.55][omm] swap memory 8257532kB, total memory 8155140kB INFO[2023-06-13T20:24:58.507] [192.168.31.55][omm] platform: centos_7_64bit WARN[2023-06-13T20:24:58.526] [192.168.31.55][omm] device(/dev/sda) readahead value=8192, expect 16384. WARN[2023-06-13T20:24:58.572] [192.168.31.55][omm] device(sda) 'IO Request'=128, expect 256 WARN[2023-06-13T20:24:58.572] [192.168.31.55][omm] device(sr0) 'IO Request'=128, expect 256 WARN[2023-06-13T20:24:58.572] [192.168.31.55][omm] device(dm-0) 'IO Request'=128, expect 256 WARN[2023-06-13T20:24:58.572] [192.168.31.55][omm] device(dm-1) 'IO Request'=128, expect 256 WARN[2023-06-13T20:24:58.572] [192.168.31.55][omm] device(dm-2) 'IO Request'=128, expect 256 INFO[2023-06-13T20:24:58.592] [192.168.31.55][omm] kernel version: 3.10.0-957.el7.x86_64 ERRO[2023-06-13T20:25:03.985] [192.168.31.55][omm] not found package: numactl INFO[2023-06-13T20:25:03.985] all checkers finished INFO[2023-06-13T20:25:03.985] write fix os script to root_fix_os.2023.0613.202503.sh success INFO[2023-06-13T20:25:03.985] time elapsed: 6s # 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 | Warning A6.Check_SysCtl_Parameter | Abnormal A7.Check_FileSystem_Configure | OK A8.Check_Disk_Configure | OK A9.Check_BlockDev_Configure | Warning A9.Check_Logical_Block | OK A10.Check_Asynchronous_IO_Request | OK A10.Check_IO_Configure | OK A10.Check_IO_Request | Warning 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 A17.Check_Port | OK A18.Check_Selinux | OK A19.Check_User_Ulimit | OK Total count 22, abnormal count 2, warning count 3 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.[TIMESTAMP].sh for commands to resolve. -- 执行修复脚本 [root@mogdb01 ~]# sh root_fix_os.2023.0613.202503.sh net.core.rmem_max = 1048576 kernel.sem = 250 6400000 1000 25600 net.core.wmem_max = 1048576 net.core.wmem_default = 262144 net.core.rmem_default = 262144 kernel.core_pattern = /var/log/coredump/%e.%p.%u.%t.core Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn Resolving Dependencies --> Running transaction check ---> Package numactl.x86_64 0:2.0.12-5.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================================= Package Arch Version Repository Size ========================================================================================================================================================================================= Installing: numactl x86_64 2.0.12-5.el7 base 66 k Transaction Summary ========================================================================================================================================================================================= Install 1 Package Total download size: 66 k Installed size: 141 k Downloading packages: warning: /var/cache/yum/x86_64/7/base/packages/numactl-2.0.12-5.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for numactl-2.0.12-5.el7.x86_64.rpm is not installed numactl-2.0.12-5.el7.x86_64.rpm | 66 kB 00:00:00 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : numactl-2.0.12-5.el7.x86_64 1/1 Verifying : numactl-2.0.12-5.el7.x86_64 1/1 Installed: numactl.x86_64 0:2.0.12-5.el7 Complete! [root@mogdb01 ~]# --再次检测,结果可以满足安装 # 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.31.55]: | | swap memory (8257532 KB) is lager than total memory (8155140 KB) A6.Check_SysCtl_Parameter | Warning | [192.168.31.55]: | | Warning: net.ipv4.tcp_keepalive_time=7200, expect 30 | | Warning: net.ipv4.tcp_rmem=4096 87380 6291456, expect 8192 250000 16777216 | | Warning: net.ipv4.tcp_retries2=15, expect 12 | | Warning: net.ipv4.tcp_wmem=4096 16384 4194304, expect 8192 250000 16777216 | | Warning: net.ipv4.tcp_tw_reuse=0, expect 1 | | Warning: net.ipv4.tcp_keepalive_intvl=75, expect 30 | | Warning: net.ipv4.tcp_max_syn_backlog=256, expect 65535 | | Warning: net.ipv4.tcp_syn_retries=6, expect 5 | | Warning: net.core.somaxconn=128, expect 65535 | | Warning: net.ipv4.tcp_retries1=3, expect 5 | | Warning: net.core.netdev_max_backlog=1000, expect 65535 | | Warning: net.ipv4.tcp_tw_recycle=0, expect 1 | | Warning: vm.min_free_kbytes=67584, expect 407757 A7.Check_FileSystem_Configure | OK | A8.Check_Disk_Configure | OK | A9.Check_BlockDev_Configure | Warning | [192.168.31.55]: | | device(/dev/sda) readahead value=8192, expect 16384. A9.Check_Logical_Block | OK | A10.Check_IO_Request | Warning | [192.168.31.55]: | | Warning: device(dm-2) 'IO Request'=128, expect 256 | | Warning: device(sda) 'IO Request'=128, expect 256 | | Warning: device(sr0) 'IO Request'=128, expect 256 | | Warning: device(dm-0) 'IO Request'=128, expect 256 | | Warning: device(dm-1) 'IO Request'=128, expect 256 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 | Warning | [192.168.31.55]: | | 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 A16.Check_CPU_Instruction_Set | OK | A17.Check_Port | OK | A18.Check_Selinux | OK | A19.Check_User_Ulimit | OK | Total count 22, abnormal count 0, warning count 5
复制
3.4、执行安装
默认会安装当前已经正式发布的 MogDB 最新版本,版本号可以在 MogDB 官网下载页面查询。安装过程中会提示用户输入数据库初始用户的密码,请用户自行记录并安全保存。PTK 自动完成所有安装操作后,会启动数据库实例。ptk install -f config.yaml ptk ls
复制
PTK 也支持自定义安装包,可以通过手工下载安装包,指定安装。例如执行以下命令,将使用当前目录下的该安装包进行数据库安装。
ptk install -f config.yaml --pkg ./MogDB-3.0.1-openEuler-arm64.tar.gz
复制
安装成功后,可以通过 ptk ls 来查看安装的实例信息。
[root@mogdb01 ~]# ptk ls cluster_name | id | addr | user | data_dir | db_version | create_time | comment ---------------+------+---------------------+------+-----------------+------------------------------+---------------------+---------- mogdb1 | 6001 | 192.168.31.55:26000 | omm | /opt/mogdb/data | MogDB 3.0.4 (build cc068866) | 2023-06-13T20:40:57 | [root@mogdb01 ~]#
复制
3.4、登录数据库
[root@mogdb01 ~]# su - omm [omm@mogdb01 ~]$ gsql -d postgres -p 26000 gsql ((MogDB 3.0.4 build cc068866) compiled at 2023-03-03 17:47:05 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. MogDB=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges | Compatibility -----------+-------+----------+---------+-------+-------------------+--------------- postgres | omm | UTF8 | C | C | | A template0 | omm | UTF8 | C | C | =c/omm +| A | | | | | omm=CTc/omm | template1 | omm | UTF8 | C | C | =c/omm +| A | | | | | omm=CTc/omm | (3 rows) MogDB=# \q [omm@mogdb01 ~]$
复制
3.4、通过PTK卸载MogDB
注意:数据库卸载后无法恢复,请谨慎操作。
[root@mogdb01 ~]# ptk uninstall -n mogdb1 INFO[2023-06-13T21:03:39.010] PTK Version: 0.8.3 release Cluster Name: "mogdb1" +--------------+---------------+-------------+-------+---------+-----------------+----------+ | az(priority) | ip | user(group) | port | role | data dir | upstream | +--------------+---------------+-------------+-------+---------+-----------------+----------+ | AZ1(1) | 192.168.31.55 | omm(omm) | 26000 | primary | /opt/mogdb/data | - | +--------------+---------------+-------------+-------+---------+-----------------+----------+ ? Do you really want to uninstall this cluster? Please confirm carefully(default=n) Yes ? Do you want to delete db data(default=n) Yes ? Do you want to delete os user(default=n) Yes INFO[2023-06-13T21:03:44.273] [192.168.31.55][omm] check db dirs owner INFO[2023-06-13T21:03:44.313] [192.168.31.55][omm] check db process status INFO[2023-06-13T21:03:44.359] [192.168.31.55][omm] remove files: /opt/mogdb/app,/opt/mogdb/tool,/opt/mogdb/tmp,/opt/mogdb/data,/opt/mogdb/log INFO[2023-06-13T21:03:44.498] [192.168.31.55][omm] clearing /etc/cron.allow INFO[2023-06-13T21:03:44.501] [192.168.31.55][omm] clearing /etc/security/limits.conf INFO[2023-06-13T21:03:44.507] [192.168.31.55][omm] remove base dir if empty: /opt/mogdb WARN[2023-06-13T21:03:44.515] [192.168.31.55][omm] rm: cannot remove ‘/opt/mogdb’: Device or resource busy WARN[2023-06-13T21:03:44.515] [192.168.31.55][omm] ignore error: exit status 1: rm: cannot remove ‘/opt/mogdb’: Device or resource busy INFO[2023-06-13T21:03:44.515] [192.168.31.55][omm] kill user "omm" process INFO[2023-06-13T21:03:44.537] [192.168.31.55][omm] delete user "omm" INFO[2023-06-13T21:03:44.597] uninstall successfully [root@mogdb01 ~]# [root@mogdb01 mogdb]# ptk ls cluster_name | id | addr | user | data_dir | db_version | create_time | comment ---------------+----+------+------+----------+------------+-------------+---------- [root@mogdb01 mogdb]#
复制
订阅号:DongDB手记
墨天轮:https://www.modb.pro/u/231198
最后修改时间:2023-06-13 21:07:38
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。