文档中心MogDBMogDB StackUqbar
v2.0

文档:v2.0

支持的版本:

其他版本:

配置文件

PTK 的配置文件采用 YAML格式

该文件介绍了拓扑配置文件的所有参数。

在安装数据库集群时,需用户提供一个描述集群拓扑的配置文件来告诉 PTK 应该按照什么结构来部署集群。

PTK 提供了终端图形化创建配置文件的功能,通过运行下面的指令可以进入交互流程:

ptk template create --tui

你只需要按照终端提示的步骤逐步完成配置,最终会在当前文件夹下生成 config.xx.yaml 的配置文件。 另外,如果想要不使用交互式创建,直接生成一个默认配置的文件,可以运行命令:

ptk template > config.yaml

运行后可以生成一个 config.yaml 的文件,需用户根据自己的实际情况修改文件里面的字段值。

在非交互式修改时,配置文件中的系统用户密码 (user_password),数据库密码 (db_password),SSH密码 (ssh_option.password) 或密钥口令 (ssh_option.passphrase) 等敏感字段,

必须使用 PTK 提供的加密命令进行加密后填写:

// 建议使用单引号包裹要加密的字符串,避免被转义
ptk encrypt '<PASSWORD>'

Config

Config 数据库集群拓扑配置信息

示例:

  • 简单配置示例
# 集群级别的配置信息,其中 `db_port` 和 `ssh_option` 字段是 **可重用字段**
global:
    cluster_name: cluster_simple # 集群名称,PTK管理的集群的唯一标识
    db_password: pTk6MTIxOGMxOTk8QT1CPT4+PXlnYW1DdHpXb2hCX3c3UW0wWXVkNlZwMGRCakpxRXd1WWdwQ0xDUWVrb0U= # 数据库的初始用户密码,若配置文件中未填写,会在安装时通过交互式要求输入
# 集群内的数据库实例服务器配置信息
db_servers:
    - host: <ip1> # 数据库实例服务器 IP (仅支持 IPv4)
    - host: <ip2> # 数据库实例服务器 IP (仅支持 IPv4)
  • 复杂配置示例
# 集群级别的配置信息,其中 `db_port` 和 `ssh_option` 字段是 **可重用字段**
global:
    cluster_name: cluster_complex # 集群名称,PTK管理的集群的唯一标识
    user: omm # 运行数据库的操作系统用户名
    group: omm # 运行数据库的操作系统用户组
    db_password: pTk6MTIxOGMxOTk8QT1CPT4+PXlnYW1DdHpXb2hCX3c3UW0wWXVkNlZwMGRCakpxRXd1WWdwQ0xDUWVrb0U= # 数据库的初始用户密码,若配置文件中未填写,会在安装时通过交互式要求输入
    base_dir: /opt/mogdb # 数据库安装的基础目录,一般建议指定到配置文件中 ssh 用户可访问的目录下的路径,让PTK自动创建。
    # 额外新增 HBA 条目列表
    extra_hba_conf:
        - type: host # 连接类型,支持 local/host/hostssl/hostnossl
          database: all # 指定这条记录所匹配的数据库名称
          user: all # 指定这条记录匹配哪些数据库用户名
          address: <ip3> # 必填,指定这个记录匹配的客户端机器地址。
          method: sha256 # 指定当一个连接匹配这个记录时,要使用的认证方法。
    # MogDB 高可用组件 CM 配置信息,若不使用 CM 组件,则无需填写该字段
    cm_option:
        dir: /opt/mogdb/cm # CM 安装目录
        cm_server_port: 15300 # cm server 监听端口
# 集群内的数据库实例服务器配置信息
db_servers:
    - host: <ip1> # 数据库实例服务器 IP (仅支持 IPv4)
      db_port: 27000 # 数据库端口
      role: primary # 数据库实例角色,若不填,PTK 会随机选择一个实例作为主库,其余自动为备库
      az_name: BJ # Available Zone (可用区) 名称
      az_priority: 1 # 可用区使用的优先级,数值越小优先级越高, 最小为 1
      # SSH 登录信息,登录用户需为 **root** 或者具有 sudo 权限的用户
      ssh_option:
        port: 22 # SSH 服务端口
        user: root # SSH 登录用户
        password: pTk6LIBsPVplOpmxQToCPT9+PXlnYW1DdHpXb2hCX3c3UW0wWXVkNlZwMGRCakpxRXd1WWdwQ0xDUWVrb0U= # SSH 登录用户密码
        conn_timeout: 5m0s # SSH 登录连接超时时间,支持单位 m(分),s(秒)
        exec_timeout: 5m0s # SSH 执行单条命令时的超时时间,支持单位 m(分),s(秒)
    - host: <ip2> # 数据库实例服务器 IP (仅支持 IPv4)
      db_port: 27000 # 数据库端口
      role: standby # 数据库实例角色,若不填,PTK 会随机选择一个实例作为主库,其余自动为备库
      az_name: BJ # Available Zone (可用区) 名称
      az_priority: 1 # 可用区使用的优先级,数值越小优先级越高, 最小为 1
      # SSH 登录信息,登录用户需为 **root** 或者具有 sudo 权限的用户
      ssh_option:
        port: 22 # SSH 服务端口
        user: root # SSH 登录用户
        key_file: ~/.ssh/id_rsa # SSH 登录密钥文件路径
        conn_timeout: 5m0s # SSH 登录连接超时时间,支持单位 m(分),s(秒)
        exec_timeout: 5m0s # SSH 执行单条命令时的超时时间,支持单位 m(分),s(秒)
    - host: <ip3> # 数据库实例服务器 IP (仅支持 IPv4)
      db_port: 27000 # 数据库端口
      role: cascade_standby # 数据库实例角色,若不填,PTK 会随机选择一个实例作为主库,其余自动为备库
      upstream_host: <ip2> # 当实例角色为 cascade_standby 时,该字段表示要跟随的上游备库 IP
      az_name: SH # Available Zone (可用区) 名称
      az_priority: 2 # 可用区使用的优先级,数值越小优先级越高, 最小为 1
# 集群内的CM服务部署机器列表
cm_servers:
    - host: <ip1> # CM Server 服务器 IP (仅支持 IPv4)
      port: 15300 # CM Server 监听端口
    - host: <ip2> # CM Server 服务器 IP (仅支持 IPv4)
      port: 15300 # CM Server 监听端口

global

类型: Global

描述: 集群级别的配置信息,其中 db_portssh_option 字段是 可重用字段

可重用字段
如果实例级别设置了该字段,则对应实例使用实例级别的值;
如果实例级别未配置该字段,则继承 global 级别的字段的值。

新增于: v0.1

db_servers

类型: []DBServer

描述: 集群内的数据库实例服务器配置信息

新增于: v0.1

cm_servers

类型: []CMServer

描述: 集群内的CM服务部署机器列表

新增于: v0.5


Global

Global 定义配置文件中全局参数

Appears in:

cluster_name

类型: string

描述: 集群名称,PTK管理的集群的唯一标识

新增于: v0.1

user

类型: string

描述: 运行数据库的操作系统用户名
如果想一套主备在同一个服务器上部署,需在实例级别设置不同的用户来隔离环境
默认为:"omm"

新增于: v0.1

group

类型: string

描述: 运行数据库的操作系统用户组
默认和操作系统用户同名

新增于: v0.1

user_password

类型: string

描述: 运行数据库的操作系统用户密码
该字段不支持明文填写,需使用 ptk encrypt 加密
默认为空,不设置

新增于: v0.1

db_password

类型: string

描述: 数据库的初始用户密码,若配置文件中未填写,会在安装时通过交互式要求输入
该字段不支持明文填写,需使用 ptk encrypt 加密

新增于: v0.1

db_port

类型: int

描述: 数据库的运行端口
如果在单个服务器上部署主备,需在实例级别设置不同的端口号
默认值: 26000

新增于: v0.1

base_dir

类型: string

描述: 数据库安装的基础目录,一般建议指定到配置文件中 ssh 用户可访问的目录下的路径,让PTK自动创建。
如果 PTK 在执行安装时使用的为非 root 用户的话,普通用户没有权限在 /opt 目录下创建目录,所以默认值 /opt/mogdb 会出现无权创建的问题,需用户指定一个执行用户可访问的路径。
指定该目录后,app_dir,data_dir,log_dir和tool_dir 参数中若未配置的,PTK 会自动在该安装目录下会创建对应的目录;
无特殊要求情况下,我们推荐用户在安装时仅设置该参数即可
注意:若在单机上部署集群时,需在实例级别设置不同的安装目录
默认值: "/opt/mogdb"

新增于: v0.1

app_dir

类型: string

描述: 数据库部署文件、启动脚本和配置文件的存放路径
默认值: "${base_dir}/app"

新增于: v0.1

data_dir

类型: string

描述: 数据库数据存储目录
默认值: "${base_dir}/data"

新增于: v0.1

log_dir

类型: string

描述: 数据库运行日志和操作日志存储目录
默认值: "${base_dir}/log"

新增于: v0.1

tool_dir

类型: string

描述: 数据库工具目录
默认值: "${base_dir}/tool"

新增于: v0.1

tmp_dir

类型: string

描述: 数据库临时目录
默认值: 如果base_dir 不为空,值为 ${base_dir}/tmp, 否则为 /tmp

新增于: v0.1

core_file_dir

类型: string

描述: [v0.7及后面版本废弃] 该参数已废弃,不再生效,请切换超级用户后手动设置 kernel.core_pattern

新增于: v0.1

ssh_option

类型: SSHOption

描述: SSH 登录信息
不设置时为本地执行

新增于: v0.1

gs_initdb_opts

类型: []string

描述: 用户自定义配置 gs_initdb 初始化数据库时的参数。
特别地, 如果用户未配置 locale 参数, PTK 默认会设置 no-locale
支持的参数列表请查看 gs_initdb 工具文档

示例:

  • gs_initdb_opts 填写示例
gs_initdb_opts:
    - --locale=LOCALE
    - -E=UTF-8

新增于: v0.3

extra_hba_conf

类型: []HBAConf

描述: 额外新增 HBA 条目列表

新增于: v1.5

cm_option

类型: CMOption

描述: MogDB 高可用组件 CM 配置信息,若不使用 CM 组件,则无需填写该字段
仅在数据库版本 3.0 及以上生效

新增于: v0.4

dss_option

类型: DSSOption

描述: MogDB 资源池化安装配置信息,非资源池化安装,无需填写该字段

新增于: v1.1.0

env_map

类型: map[string]string

描述: 用户可根据需要增加特定的环境变量,在 global 中设置会对所有实例生效,
实例级别可单独设置,如果存在相同的 key,实例级的会覆盖 global 中的值

新增于: v1.2.0


HBAConf

HBAConf HBA 条目配置

Appears in:

示例:

  • hba config 示例
type: host # 连接类型,支持 local/host/hostssl/hostnossl
database: all # 指定这条记录所匹配的数据库名称
user: all # 指定这条记录匹配哪些数据库用户名
address: <ip3> # 必填,指定这个记录匹配的客户端机器地址。
method: sha256 # 指定当一个连接匹配这个记录时,要使用的认证方法。

type

类型: string

描述: 连接类型,支持 local/host/hostssl/hostnossl
具体含义请参考 MogDB 文档
默认值: host

新增于: v1.5.0

database

类型: string

描述: 指定这条记录所匹配的数据库名称
默认值: all

新增于: v1.5.0

user

类型: string

描述: 指定这条记录匹配哪些数据库用户名
默认值: all

新增于: v1.5.0

address

类型: string

描述: 必填,指定这个记录匹配的客户端机器地址。
如果只设置一个IPv4或IPv6地址,未配置 CIDR 掩码,则默认针对 IPv4 使用 32 的 CIDR 掩码,针对 IPv6 使用 128 的 CIDR 掩码

新增于: v1.5.0

method

类型: string

描述: 指定当一个连接匹配这个记录时,要使用的认证方法。
默认值: sha256

新增于: v1.5.0

option

类型: string

描述: 在 method 域的后面,可以是形如 name=value 的域,它们指定认证方法的选项

新增于: v1.5.0


DSSOption

Appears in:

dir

类型: string

描述: DSS 安装目录
默认值: $base_dir/dss

新增于: v1.1.0

dss_port

类型: int

描述: dssserver 进程监听端口
默认值: 26010

新增于: v1.1.0

dms_port

类型: int

描述: 数据库内部 dms 模块通信端口
默认值: 26020

新增于: v1.1.0

shm_key

类型: int

描述: 共享内存KEY,范围 [1, 64],如果单个机器上部署多个 DSS 集群时,需确保该值不同
默认值: 1

新增于: v1.1.0

log_level

类型: int

描述: DSS日志级别,范围 [0, 4087]
默认值: 519

新增于: v1.1.0

data_vg_name

类型: string

描述: 数据卷组名
默认值: data

新增于: v1.1.0

data_vg_path

类型: string

描述: 数据卷路径

新增于: v1.1.0

inst_vg_map

类型: map[string]string

描述: 每个数据库实例的私有卷路径字典,需完整配置所有实例。
配置规则:{IP: vg_path, ...}

示例:

  • inst_vg_map example
inst_vg_map:
    1.0.0.1: /dev/sdb
    1.0.0.2: /dev/sdc

新增于: v1.1.0

enable_ssl

类型: bool

描述: 是否开启 ssl 认证
默认值: off
可选值: on/off

新增于: v1.1.0

interconnect_type

类型: string

描述: DSS 进程间通信方式
默认值: TCP
可选值: TCP/RDMA

新增于: v1.7.2

interconnect_channel_num

类型: int

描述: DSS 进程间通信通道数量
默认值: 2
取值范围: [1, 32]

新增于: v1.7.2

work_thread_count

类型: int

描述: 处理通信消息的线程数量
默认值: 2
取值范围: [2, 64]

新增于: v1.7.2

io_threads

类型: int

描述: DSS 进程中工作线程池的数目
默认值: 2
取值范围: [1, 8]

新增于: v1.7.2

work_threads

类型: int

描述: DSS 进程中每个线程池中的线程数
默认值: 16
取值范围: [16, 128]

新增于: v1.7.2

storage_mode

类型: string

描述: 存储类型
默认值: CLUSTER_RAID
取值范围: CLUSTER_RAID、RAID、DISK、DISK_LOCK

新增于: v1.7.2

max_session_nums

类型: int

描述: DSS 进程支持的最大会话连接数
默认值: 8192
取值范围: [16, 166320]

新增于: v1.7.2


CMOption

Appears in:

dir

类型: string

描述: CM 安装目录
默认值: $base_dir/cm

新增于: v0.4

cm_server_port

类型: int

描述: cm server 监听端口
默认值: 15300

新增于: v0.4

db_service_vip

类型: string

描述: 数据库提供服务的虚拟IP

新增于: v0.4

cm_server_conf

类型: map[string]string

描述: cm_server.conf 中支持的配置参数, PTK 不对参数的准确性和有效性做校验

示例:

  • cm server conf
cm_server_conf:
    key: value

新增于: v0.4

cm_agent_conf

类型: map[string]string

描述: cm_agent.conf 中支持的配置参数, PTK 不对参数的准确性和有效性做校验

示例:

  • cm agent conf
cm_agent_conf:
    key: value

新增于: v0.4

cm_voting_vg_path

类型: string

描述: CM 投票卷路径(资源池化场景使用)

新增于: v1.7.2

cm_share_vg_path

类型: string

描述: CM 共享卷路径(资源池化场景使用)

新增于: v1.7.2


CMServer

CMServer CM服务配置信息

Appears in:

host

类型: string

描述: CM Server 服务器 IP (仅支持 IPv4)

新增于: v0.5

ha_ips

类型: []string

描述: 数据库冗余IP,和当前 host 对应的 db_server 中的 ha_ips 保持一致

新增于: v1.1.0

port

类型: int

描述: CM Server 监听端口
默认使用 global.cm_option.cm_server_port

新增于: v0.5

ssh_option

类型: SSHOption

描述: SSH 登录信息,登录用户需为 root 或者具有 sudo 权限的用户
不设置时为本地执行

新增于: v0.5


serverFlag


DBServer

DBServer 集群内的数据库实例服务器配置信息

Appears in:

dn_name

类型: string

描述: 一个集群中唯一标识数据实例的名称,该值将会写入配置 application_name
默认值:dn_

新增于: v1.0

host

类型: string

描述: 数据库实例服务器 IP (仅支持 IPv4)

新增于: v0.1

user

类型: string

描述: 运行数据库的操作系统用户名
如果想一套主备在同一个服务器上部署,该字段需设置为不同的用户
默认和 global.user 配置一致

新增于: v0.5

group

类型: string

描述: 运行数据库的操作系统用户组
默认和 global.group 配置一致

新增于: v0.5

user_password

类型: string

描述: 运行数据库的操作系统用户密码
该字段不支持明文填写,需使用 ptk encrypt 加密
默认和 global.user_password 配置一致

新增于: v0.5

db_port

类型: int

描述: 数据库端口
默认为空,复用全局的端口配置 26000

新增于: v0.1

ha_ips

类型: []string

描述: 数据库冗余IP,目前最多配置一个冗余IP,如果配置了该字段,所有实例都需要配置

新增于: v0.1

ha_port

类型: int

描述: 数据库主备实例日志复制端口,值固定只能为数据库端口加1,该字段无需配置

新增于: v0.1

role

类型: string

描述: 数据库实例角色,若不填,PTK 会随机选择一个实例作为主库,其余自动为备库

可选值:

  • primary
  • standby
  • cascade_standby

新增于: v0.1

upstream_host

类型: string

描述: 当实例角色为 cascade_standby 时,该字段表示要跟随的上游备库 IP

新增于: v0.1

az_name

类型: string

描述: Available Zone (可用区) 名称
默认值:"AZ1"

新增于: v0.1

az_priority

类型: int

描述: 可用区使用的优先级,数值越小优先级越高, 最小为 1
默认值:1

新增于: v0.1

xlog_dir

类型: string

描述: 数据库 Xlog 日志目录设置
默认为空,若需配置,值不能为数据目录的子目录

新增于: v0.1

db_conf

类型: map[string]string

描述: 用户根据个性化需要配置数据库参数和值,该字段配置的内容将会在数据库启动前写入到 postgresql.conf 文件中

示例:

  • db config example
db_conf:
    key: value

新增于: v0.1

env_map

类型: map[string]string

描述: 用户可根据需要针对该实例增加特定的环境变量

新增于: v1.2.0

ssh_option

类型: SSHOption

描述: SSH 登录信息,登录用户需为 root 或者具有 sudo 权限的用户
不设置时为本地执行

新增于: v0.1


SSHOption

SSHOption SSH 登录认证信息,支持密码和密钥两种方式,二者需至少设置一种

Appears in:

示例:

host: <ip>
port: 22
user: root
key_file: ~/.ssh/id_rsa

host

类型: string

描述: 要连接的目标服务器 IP
当该机器为跳板机时必填;
当为数据库所在机器时可以留空,会继承 db_server 的 IP
默认为空

新增于: v0.1

port

类型: int

描述: SSH 服务端口
默认值:22

新增于: v0.1

user

类型: string

描述: SSH 登录用户
默认值:root

新增于: v0.1

password

类型: string

描述: SSH 登录用户密码
该字段不支持明文填写,需使用 ptk encrypt 加密后填写

示例:

  • ssh 密码示例
password: pTk6MTIxOGMxOTk8QT1CPT4+PXlnYW1DdHpXb2hCX3c3UW0wWXVkNlZwMGRCakpxRXd1WWdwQ0xDUWVrb0U=

新增于: v0.1

key_file

类型: string

描述: SSH 登录密钥文件路径
默认为空

示例:

  • ssh密钥示例
key_file: ~/.ssh/id_rsa

新增于: v0.1

passphrase

类型: string

描述: SSH 登录密钥文件口令
该字段不支持明文填写,需使用 ptk encrypt 加密后填写
默认为空

新增于: v0.1

conn_timeout

类型: Duration

描述: SSH 登录连接超时时间,支持单位 m(分),s(秒)
默认值: "1m"

新增于: v0.1

exec_timeout

类型: Duration

描述: SSH 执行单条命令时的超时时间,支持单位 m(分),s(秒)
默认值: "10m"

新增于: v0.1

proxy

类型: SSHOption

描述: 跳板服务器登录信息,如果目标服务器无法直连时,支持通过中间跳板机方式连接

新增于: v0.1

Copyright © 2011-2024 www.enmotech.com All rights reserved.