暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用PTK安装MogDB单机及集群数据库

由迪 2024-03-13
457

原作者:曹碧碧

1 PTK简介

PTK (Provisioning Toolkit)是一款针对 MogDB 数据库开发的软件安装和运维工具,旨在帮助用户更便捷地安装部署MogDB数据库。

如果用户想要运行 MogDB 或者 MogDB 的相关组件时,仅需要执行一行命令即可实现。

1.1 使用场景

  • 开发人员快速启动多个本地MogDB环境
  • 用户通过PTK快速安装部署MogDB
  • DBA日常运维使用
  • 第三方运维平台集成

1.2 推荐部署架构

2 PTK安装

PTK 作为一个部署管理工具,并不需要和数据库实例安装到一起。

推荐使用一个中控管理机器来安装PTK,然后通过该中控机去部署管理数据库实例到其他服务器,这样的话,可以避免数据库实例机器的故障造成 PTK 不可用。

2.1 在线安装

  1. 执行以下命令安装PTK(非windows系统):
curl --proto '=https' --tlsv1.2 -sSf https://cdn-mogdb.enmotech.com/ptk/install.sh | sh
  1. 安装完成后会提示如下信息(根据运行PTK的 SHELL 类型不同,信息会有所差异)
解释info: downloading ptk package

Detected shell: bash

Shell profile:  /root/.bashrc

ptk has been added to PATH in /root/.bashrc

open a new terminal or source /root/.bashrc to active it

Installed path: /root/.ptk/bin/ptk
  1. 通过提示的 source 指令或打开一个新的终端窗口来使 PTK PATH 环境变量生效。以 bash 为例:
source $HOME/.bashrc

2.2 离线安装

  1. 下载PTK安装包

根据CPU和操作系统类型下载合适的PTK安装包。

下载链接:https://mogdb.io/downloads/ptk/all

注:若在下载列表中未找到支持的PTK安装包,可以将PTK安装在支持的第三台机器上,通过第三台机器远程部署MogDB数据库。

  1. 上传并解压缩安装包
tar -zxvf ptk_1.2.0_linux_x86_64.tar.gz
  1. 配置PTK环境变量(推荐将ptk放在在线安装的默认路径)
mkdir -p /root/.ptk/bin

echo "export PATH=/root/.ptk/bin:\$PATH"  >>/root/.bash_profile

source /root/.bash_profile

2.3 PTK工作目录

目录结构

解释

[root@centos .ptk]# ls -al

total 8

drwxr-xr-x  6 root root   73 Feb  1 02:02 .

dr-xr-x---. 8 root root 4096 Feb  1 02:02 ..

drwxr-xr-x  2 root root   39 Feb  1 02:02 bin

drwx------  2 root root    6 Feb  1 02:02 cache

drwx------  2 root root    6 Feb  1 02:02 data

drwx------  2 root root    6 Feb  1 02:03 log

-rw-r--r--  1 root root   95 Feb  1 02:03 metadata.yml

[root@centos .ptk]#

bin:ptk二进制文件目录,包含ptk可执行文件及当前官网最新版本号。

cache:缓存文件目录,ptk在线下载的安装存放在该目录。

data:数据文件,存储纳管的集群信息,以被纳管的集群名称作为下一次文件夹名称。

Log:日志文件,存储ptk运行日志,如在安装过程中ptk的debug级别日志存放在该路径下。

meta.yaml:ptk元数据文件

3 使用PTK安装MogDB数据库

3.1 准备配置文件

3.1.1 单节点配置文件

使用ptk template --local生成单机数据库安装配置文件

解释

[root@node1 ~]# ptk template --local > config.yaml

[root@node1 ~]#

[root@node1 ~]# cat config.yaml

global:

  # cluster name (required)

  cluster_name: perlman

  # system user for running database

  user: omm

  # system user group

  group: omm

  # base directory for installing database server

  base_dir: /opt/mogdb




db_servers:

  - host: 127.0.0.1

    # database port

    db_port: 26000

[root@node1 ~]#

注:如果全部使用默认值,则PTK 执行以下操作:

  • 在本机安装数据库;
  • 运行数据库的操作系统用户为omm ,用户组名称也是omm,该用户没有默认密码;
  • 数据库安装在 /opt/mogdb目录下,在该目录下会创建4个目录:app, data, log, tool,分别用于存储数据库软件、数据文件、数据库日志和数据库相关工具;
  • 数据库监听端口为26000。

3.1.2 主备节点配置文件

使用ptk template l生成主备数据库安装配置文件

解释[root@node1 ~]# ptk template > config.yaml

[root@node1 ~]#

[root@node1 ~]# cat config.yaml

global:

  # cluster name

  cluster_name: shirley

  # system user for running db

  user: omm

  # system user group, same as username if not given

  group: omm

  # (Optional) system user password, use 'ptk encrypt' to encrypt it if not empty

  user_password: "" # ptk encrypted password

  # database password, use 'ptk encrypt' to encrypt it if not empty

  db_password: ""  # ptk encrypted password

  # database port

  db_port: 26000

  # base directory for installing database server,

  # if any of app_dir,data_dir,log_dir and tool_dir not set,

  # PTK will create corresponding directory under base_dir

  base_dir: /opt/mogdb

  # (Optional) application directory of database

  # app_dir: ""

  # (Optional) log directory of database

  # log_dir: ""

  # (Optional) data directory of database

  # data_dir: ""

  # (Optional) tool directory of database

  # tool_dir: ""

  # (Optional) temporary directory of database

  # tmp_dir: ""




db_servers:

  - host: <replace host ip here>

    # # database role, options: primary, standby, cascade_standby

    role: primary

    # available zone name

    az_name: AZ1

    # available zone priority, diffrent az should have diffrent priority

    az_priority: 1

    # (Optional) parameters in postgresql.conf

    # db_conf:

    #   key1: value1

    #   key2: value2

    # (Optional) gs_initdb custom options

    # gs_initdb_opts:

    # - --encoding=UTF-8

    # - --dbcompatibility=A

    # SSH connection configuration

    ssh_option:

      port: 22

      user: root

      password: ""  # ptk encrypted password

      key_file: ""

      passphrase: ""

  - host: <replace host ip here>

    role: standby

    az_name: AZ1

    az_priority: 1

    # db_conf:

    #   key1: value1

    #   key2: value2

    ssh_option:

      port: 22

      user: root

      password: "" # ptk encrypted password

      key_file: ""

      passphrase: ""

[root@node1 ~]#

注:配置文件中需要填写密码的部分需使用PTK加密之后,填写密文密码,不可填写明文密码。

3.2 使用PTK检查并修复本机系统

1、使用ptk checkos -f config.yaml检查本机操作系统。检查项列表如下:

类别编号 类别 检查项 说明
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 值是否满足数据库要求(系统用户存在时)

2、PTK检查结果分类

PTK 的检查结果分为四个等级:

  • OK:符合预期值,满足安装需求。
  • Warning: 不符合预期值,但不影响安装(预期值主要针对生产环境进行的建议)。
  • Abnormal: 不满足安装要求,可能会导致安装过程失败,需根据 PTK 给出的修改建议脚本,人工执行修改。
  • ExecuteError: 执行错误,该等级表示 PTK 在检查时执行命令失败,可能为用户环境工具缺失或内部BUG,需根据实际错误提示进行修正。

在安装数据库之前,需确保所有的检查项都在 OK 或 Warning 级别,如果存在 Abnormal 的检查结果,在安装时会中断退出。

3、修复系统

PTK 在执行了 checkos 的命令后,如果存在 Abnormal 项目,会在当前目录下生成一个以 root_fix_os 为前缀,后面跟着时间戳的 shell 脚本文件。

该文件内容包含了 PTK 针对 Abnormal 项目给出的修复建议。可以手动执行里面的修复指令,也可以通过 PTK 自动在集群内所有机器上执行该脚本来进行系统修复。

修复的指令一般都需要超级用户权限,所以在通过 exec 指令修复时,提供的 config.yaml 中的SSH 用户需为 root 或具有 sudo 免密执行的权限。

ptk exec -f config.yaml -s <root_fix_os.xxx.sh>

注:

1、默认不输出 Warning 级别的修复建议,如果需要修复,需在 checkos 执行时,指定 --gen-warning-fix 选项。

2、集群环境下使用ptk exec执行修复脚本是可以自动修复所有节点的系统环境,直接手动执行修复脚本时需要在每个节点单独手动执行。

3.3 执行安装

使用PTK安装数据库。

  • 在线安装
ptk install -f config.yaml
  • 离线安装
ptk install -f config.yaml --pkg ./MogDB-5.0.3-Kylin-x86_64-all.tar.gz

注:在线安装默认会安装当前已经正式发布的 MogDB 最新版本,版本号可以在 MogDB 官网下载页面查询。安装过程中会提示用户输入数据库初始用户的密码,此密码一般为与操作系统用户名相同的数据库初始用户密码。PTK自动完成所有安装操作后,会启动数据库实例。

3.4 验证安装

安装成功后,PTK会启动数据库实例,可以通过 ptk ls 来查看安装的实例信息。使用ptk cluster -n cluster_name status 查看实例运行状态。

4 使用PTK卸载MogDB数据库

卸载时,PTK会检测集群是否处于运行状态,运行中是不允许被卸载的,需先将集群停止后再进行卸载操作。

数据库集群的卸载仅需在 PTK 所在的服务器上执行:

ptk uninstall -n cluster_name

执行卸载时需指定要卸载的集群名称,可以通过ptk ls来查看集群名称。

在卸载中,PTK 会和用户确认卸载的内容,以确认要删除的集群拓扑信息,确认是否要连带删除系统用户,以及确认是否要连带删除数据库数据。

在 PTK 执行数据库卸载操作时,如果指定了删除数据目录,PTK 仅会删除数据目录,不会删除数据目录所在的父目录,需用户手动清理父目录(即安装配置文件中的base_dir)。

参考文档

https://docs.mogdb.io/zh/mogdb/v5.0/ptk-based-installatio

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论