文档中心MogDBMogDB StackUqbar
v1.1

文档:v1.1

支持的版本:

其他版本:

创建配置文件

手动配置

在安装数据库之前,需通过 PTK 来创建一个配置文件,用于描述期望的数据库集群拓扑结构。

如果要安装单实例数据库,可以通过以下命令生成配置文件:

ptk template -l > config.yaml

如果要安装多实例集群,则可以通过以下命令生成配置文件:

ptk template > config.yaml

运行后会在当前文件夹内生成 config.yaml 文件,用户需修改文件内 db_server 相关的字段。

如果存在密码字段,用户需通过 ptk encrypt 指令加密后写入配置文件。

注意: 如果您希望 PTK 使用非 root 用户来连接目标机器操作, 请确保该用户在目标机器上具有免密执行 sudo 的权限, 配置方式:可在目标机器上的 /etc/sudoers 文件中新增如下一行(USERNAME 替换为SSH连接用户名) : [USERNAME] ALL=(ALL) NOPASSWD:ALL

交互式创建

PTK 也支持通过交互式方式创建配置文件,只需执行如下命令:

ptk template create

执行后,会进入交互式终端,用户只需根据提示的问题,逐个填写即可。

注意,在填写 db_server 时,SSH 的链接信息如果相同可重复使用。

当交互式终端退出后,会自动在当前文件夹下创建一个 config.yaml 的文件。

交互式创建示例

默认情况下,大部分字段可使用系统生成的默认值,回车即可,密码字段需用户手动输入。

下面是创建一主一备的配置文件的示例,假设主在本机,备机IP为 192.168.1.100

$ ptk template create
请输入集群名称: (default: cluster_igiltry)
请输入系统用户名: (default: omm)
请输入用户组名: (default: omm)
请输入数据库初始密码(需8到16位)
请再次输入数据库密码确认:
请输入数据库监听端口,取值范围 [1024~65535]: (default: 26000)
请输入CM sever的监听端口, 取值范围[1024~65535]: (default: 15300)
请输入数据库要安装的目录(需确保为空): (default: /opt/mogdb)
接下来, 我们来添加一些数据库实例服务器
================db server 1================
请输入服务器IP(仅支持IPv4):  127.0.0.1
请选择数据库角色:
  1: primary
  2: standby
  3: cascade_standby
请输入选项编号:  1
请输出数据库的 available zone 名称: (default: AZ1)
================ end ================
Do you want to add another db server?[Y|Yes](default=N) y
================db server 2================
请输入服务器IP(仅支持IPv4):  192.168.1.100
请选择数据库角色:
  1: primary
  2: standby
  3: cascade_standby
请输入选项编号:  2
请输出数据库的 available zone 名称: (default: AZ1)
[SSH] 请输入 SSH 登录用户: (default: root)
[SSH] 请输入 SSH 端口: (default: 22)
[SSH] 请选择验证方式:
  1: Password
  2: KeyFile
请输入选项编号:  1
[SSH] 请输入 SSH 登录密码:
================ end ================
Do you want to add another db server?[Y|Yes](default=N) n
Generate /Users/vimiix/Home/enmotech/ptk/ptk_repo/config.yaml successfully

配置文件字段说明

我们以下面这个完整的配置文件为例说明:

yaml 中,如果是字符串类型默认无需加引号,如果字符串之中包含空格或特殊字符,需要放在引号之中

global:
  # # 集群名称,用户自定义
  cluster_name: c1
  # # 运行数据的系统用户
  user: omm
  # # 系统用户组,默认和用户名同名
  group: omm
  # # 系统用户密码,PTK在创建用户时设置,可不填。若填写需通过 ptk encrypt 加密
  # user_password: ""
  # # 数据库密码,需通过 ptk encrypt 加密。若不填写,在安装时会通过交互式填写
  db_password: ""
  # # 数据库端口
  db_port: 26000
  # # 数据库的安装目录
  # # PTK 会在该目录下分别创建应用目录,数据目录,工具目录,日志目录以及临时目录
  base_dir: /opt/mogdb
  # # gs_initdb 工具支持参数列表,安装时会追加到指令中
  gs_initdb_opts:
  - --encoding=UTF-8
  - --dbcompatibility=A
  # # CM 组件的配置,该值在启用CM组件时生效
  cm_option:
    # # CM 的安装目录,不填写默认会在 base_dir 目录下创建 cm 目录
    # dir: /opt/mogdb/cm
    # # CM Server 端口
    cm_server_port: 15300
    # # 虚拟IP,该值需CM支持的版本才生效
    db_service_vip: ""
    # # CM Server 配置,会更新到 cm_server.conf 中
    cm_server_conf:
      # instance_heartbeat_timeout: 2
      # ...
    # # CM Agent 配置,会更新到 cm_agent.conf 中
    cm_agent_conf:
      # log_max_size: 10240
      # ...

db_servers:
  - host: 10.0.1.100
    # # 数据库端口
    db_port: 26000
    # # 数据库角色,支持的选项: primary, standby, cascade_standby
    role: primary
    # # 可用区名称,该值在启用CM组件时生效
    az_name: AZ1
    # # 可用区优先级,值越小优先级越高,最小 1,该值在启用CM组件时生效
    az_priority: 1
    # # 级联备的上游备库IP,仅级联备时必填
    upstream_host:
    # # postgresql.conf 中支持的参数
    db_conf:
      # replication_type: 1
    # # 连接服务器的SSH配置
    # ssh_option:
    #    port: 22
    #    user: root
    #    password: 
# cm 服务器列表,如果不在这里列出,在安装时会在每个 db_server 的机器上部署
# 注意此处配置不意味着安装,需在安装时指定 --install-cm 参数才会生效
cm_servers:
  - host: 10.0.1.100
    # # CM Server 端口,默认为 global.cm_option.cm_server_port
    port: 15300 
    # # ssh 配置信息,如果 db_server 有相同机器配置过,则无需在此处配置
    ssh_option:

整个配置文件分为两个部分:globaldb_servers

  • global: 定义集群内所有实例公用的信息及缺省值
  • db_servers: 实例列表,每个元素代表一个实例信息

global 配置

字段名 解释 值类型 默认值 是否必填 备注
cluster_name 集群名称 字符串 cluster_ 前缀,随机生成
user 操作系统用户 字符串 omm
group 操作系统用户组 字符串 omm
user_password 操作系统用户密码 字符串 需通过 encrypt 指令加密后填写
db_password 数据库密码 字符串 需通过 encrypt 指令加密后填写,若不填写,安装过程也可以填写
db_port 数据库监听端口 整型 26000
base_dir 数据库安装的基础目录 字符串 /opt/mogdb 若填写该字段,app_dir, log_dir, data_dir, tool_dir, cm_dir, tmp_dir 可不填写,自动放置到该字段指定的目录下
app_dir 数据库应用目录 字符串 /opt/mogdb/app
log_dir 数据库日志存放目录 字符串 /opt/mogdb/log
data_dir 数据库数据存放目录 字符串 /opt/mogdb/data
tool_dir 数据库工具存放目录 字符串 /opt/mogdb/tool
tmp_dir 数据库临时文件存放目录 字符串 /opt/mogdb/tmp
core_file_dir 系统 corefile 路径 字符串 若填写会修改系统 kernel.core_pattern 的值
gs_initdb_opts 初始化数据库时 gs_initdb 工具的参数 字符串列表 一个元素设置一个参数,如果未设置 --locale 参数,PTK 默认设置 --no-locale
ssh_option SSH连接认证信息 ssh_option 实例如果需要远程连接,但实例级别的 ssh_option 未配置时会使用 global 内的该字段
cm_option CM组件配置参数 cm_option 该字段在安装时指定 --install-cm 时生效

db_servers 配置

字段名 解释 值类型 默认值 是否必填 备注
host 实例IP 字符串
db_port 实例端口 整型 26000 若未填写,使用 global 内的配置
ha_ips 实例日志复制备用IP列表 字符串列表
ha_port 日志复制备用端口 整型 26001
role 数据库实例角色 字符串 可选值: primary, standby, cascade_standby, 若不填写,集群内随机选择一个实例设置主,其余为备库
upstream_host 级联备上游备库IP 字符串 级联备时必填
az_name 可用区名 字符串 AZ1
az_priority 可用区优先级 整型 1 数值越小优先级越高
xlog_dir xlog 日志目录 字符串 默认会放到 log_dir 的 pg_log 下,若配置该字段,不能为数据目录的子目录,否则启动报错
db_conf 数据库guc 参数配置 字典 字典键为 postgresql.conf 中的参数
ssh_option 连接实例时的ssh 连接认证信息 ssh_option 若未设置使用 global 内的配置

cm_servers 配置

字段名 解释 值类型 默认值 是否必填 备注
host 实例IP 字符串
port CM Server端口 整型 15300 若未填写,使用 global.cm_option.cm_server_port 的值
ssh_option 连接实例时的ssh 连接认证信息 ssh_option 若未设置使用 global 内的配置或db_servers 中相同IP的配置

cm_option

字段名 解释 值类型 默认值 是否必填 备注
dir CM 安装目录 字符串 $base_dir/cm
cm_server_port CM server 监听端口 整型 15300
db_service_vip 虚拟IP(需CM支持) 字符串
cm_server_conf CM sever 配置参数 字典 该字段下字典的键支持任何 cm_server 的参数,PTK 会将值设置到 cm_server.conf 文件中
cm_agent_conf CM agent 配置参数 字典 该字段下字典的键支持任何 cm_agent 的参数,PTK 会将值设置到 cm_agent.conf 文件中

ssh_option

字段名 解释 值类型 默认值 是否必填 备注
host 机器IP 字符串 实例的IP 如果配置为 proxy 跳板机时,该字段必填
port ssh 连接端口 整型 22
user ssh 连接用户 字符串 root 如果连接的用户为非 root 时,需确保该用户具有免密执行 sudo 的权限
password ssh 连接密码 字符串 需通过 encrypt 指令加密后填写
key_file ssh 连接密钥文件 字符串
passphrase ssh 连接密钥文件的口令 字符串
conn_timeout ssh 连接超时时间 Duration 1m
exec_timeout 执行命令超时时间 Duration 10m
proxy 跳板机配置 ssh_option 仅支持跳一次连接
Copyright © 2011-2024 www.enmotech.com All rights reserved.