- 关于PTK
- 快速入门
- 使用指南
- 使用参考
- 配置文件示例
- 命令介绍
- ptk
- ptk completion
- ptk view-static-config
- ptk init-cluster
- ptk collect
- ptk rec-guc
- ptk cache
- ptk gen-ptkc
- ptk manage
- ptk demo
- ptk meta
- ptk version
- ptk self
- ptk gen-om-xml
- ptk env
- ptk gen-static-config
- ptk cluster
- ptk cluster createdb
- ptk cluster uninstall-compat-tools
- ptk cluster install-compat-tools
- ptk cluster install-mogila
- ptk cluster rename
- ptk cluster throwout
- ptk cluster takeover
- ptk cluster uninstall-cm
- ptk cluster install-cm
- ptk cluster gen-cert-files
- ptk cluster load-cm-vip
- ptk cluster del-kerberos-auth
- ptk cluster add-kerberos-auth
- ptk cluster uninstall-kerberos-server
- ptk cluster install-kerberos-server
- ptk cluster is-in-upgrade
- ptk cluster upgrade-rollback
- ptk cluster upgrade-commit
- ptk cluster upgrade
- ptk cluster demote
- ptk cluster promote
- ptk cluster refresh
- ptk cluster shell
- ptk cluster modify-comment
- ptk cluster show-config
- ptk cluster set-guc
- ptk cluster show-guc
- ptk cluster set-hba
- ptk cluster show-hba
- ptk cluster scale-out
- ptk cluster scale-in
- ptk cluster uninstall-mogha
- ptk cluster install-mogha
- ptk cluster list-plugins
- ptk cluster install-plugin
- ptk cluster inspect
- ptk cluster failover
- ptk cluster switchover
- ptk cluster build
- ptk cluster status
- ptk cluster restart
- ptk cluster stop
- ptk cluster start
- ptk uninstall
- ptk ls
- ptk install
- ptk exec
- ptk template
- ptk encrypt
- ptk checkos
- ptk download
- ptk candidate
- 故障排查
- FAQ
- 发布记录
- 社区
- 附录:YAML语法
部署数据库集群
推荐流程
在部署数据库集群时,建议您按照如下流程来进行操作:
数据库集群安装
说明
由于 PTK 的所有行为都是基于 SSH 连接来进行指令下发的,所以在配置文件中我们要求为每个数据库服务器都需要配置 ssh_option
字段,当然如果所有服务器拥有相同的连接用户、端口和密码的话,仅需要在 global
块中配置一份 ssh_option
即可。
对于在 ssh_option
中的登录用户,我们推荐您直接配置 root 用户或者具有 sudo 免密权限的用户,由于数据库作为一个基础软件,其对系统的要求相对于应用来说,可能更为苛刻,所以需要借助超级用户权限来给运行数据库的系统用户设置更宽容的 ulimit 配置,同时,提供超级用户的话,您无需提前创建运行数据库的操作系统用户,只需在配置文件中定义好用户名,PTK会自动为您创建好相应的用户,并设置好 ulimit 配置。
当然,如果处于企业安全性强制要求下的话,有可能无法满足 root 用户直接登录的条件,也是可以使用 PTK 进行部署的。这种情况下,您需要提前做以下 3 步:
-
提前在服务器上创建好用于运行数据库的操作系统用户(假设用户名为
omm
) -
在
/etc/security/limits.conf
文件末尾为该用户增加以下配置项(omm
替换为您创建的用户名):omm soft as unlimited omm hard as unlimited omm soft nproc unlimited omm hard nproc unlimited omm soft nofile 1000000 omm hard nofile 1000000 omm soft stack unlimited omm hard stack unlimited
-
在配置文件中的
ssh_option
配置修改SSH登录的用户为omm
ssh_option:
user: omm
...
注:如果使用非超级用户进行集群管理,部分依赖超级权限的命令后续也无法使用,比如
install-mogha
在线安装
安装仅需一行指令即可完成:
ptk install -f config.yaml
该命令会自动从网络上下载 MogDB 的最新的 LTS 版本数据库安装包进行安装,如果您希望自己指定 MogDB 的版本,可以通过 --db-version
参数进行指定,例如:
ptk install -f config.yaml --db-version 5.0.7
可以通过 ptk candidate db
查看 PTK 支持自动下载的 MogDB 版本列表。
在安装完数据库集群后,PTK 默认会将数据库集群启动,如果您不希望安装完成后自动启动集群,可以在命令行指定 --skip-launch-db
参数。
离线安装
如果您提前下载好了安装包,可以通过 -p
参数指定本地安装包进行离线安装:
ptk install -f config.yaml -p <安装包>
同时部署 CM 集群
PTK 支持在部署数据库集群的同时一同把 CM 集群部署好,您仅需在安装的命令中增加一个 --install-cm
参数即可:
集群最少 2 节点才生效
ptk install -f config.yaml --install-cm
默认 PTK 会将 CM server
和数据库实例部署在一起,和数据库的数量保持一致。如果集群的数量大于 3 个以上时,由于 CM 高可用采用的多数派选举算法要求,默认我们推荐是部署奇数个 CM server
节点,所以当部署偶数个数据库实例时, PTK 会通过交互来让您选择一个节点不部署 CM server
。您如果仍希望 CM server
和数据库实例的个数保持一致,可以通过在安装命令里增加 --not-limit-cm-nodes
参数来取消该限制。
资源池化部署(beta)
虽然目前内核资源池化的特性还处于深度研发中,但 PTK 在 1.2.0 版本开始就逐渐支持了资源池化的部署。资源池化的部署方式,提供主备机共享一份存储的能力,实现基于磁阵设备的资源池化HA部署形态,解决传统HA部署下存储容量较单机翻倍的问题,同时备机支持实时一致性读。
资源池化架构图如下图所示 (图片来源:openGauss 官网):
PTK 支持资源池化场景的部署,由于资源池化的架构中新增了 DSS
模块,同时依赖 CM 对于集群的高可用管理,所以我们需要在配置文件中增加 dss_option
和 cm_option
的配置,以下为一个示例配置:
global:
cluster_name: c1
user: omm
db_password: pTk6Y2I1OWFiZjI8RT1FPUE9RFZfVTUzTy0zUlR5TDZUTmh1STE4VkQ0T2RDYXBNMThoSlNhZDY3UHB4WVE=
db_port: 26000
base_dir: /data/mogdb
ssh_option:
port: 22
user: root
password: pTk6ZDJmZjZlZjI8RT1FPUE9RUs4WEh1OUJRQURfM29GUjZyb3gzZGU3LVRmLTM3Mm5ySmZ5anJXVkNOTUE=
cm_option:
dir: /data/mogdb/cm
cm_server_port: 15300
dss_option:
dir: /data/mogdb/dss
dss_port: 26010
dms_port: 26020
data_vg_name: data
data_vg_path: /dev/data_shared
inst_vg_map:
172.23.1.28: /dev/data_private_28
172.23.1.45: /dev/data_private_45
cm_share_vg_path: /dev/cm_shared
cm_voting_vg_path: /dev/cm_vote
enable_ssl: on
db_servers:
- host: 172.23.1.28
role: primary
- host: 172.23.1.45
role: standby
其他配置和普通安装一样,我们重点看下 dss_option
字段。
在 dss_option
字段中,有以下配置:
字段名 | 说明 |
---|---|
dir | dss 模块的安装目录 |
dss_port | dssserver 进程运行时监听的端口,默认 26010 |
dms_port | 资源池化模式时数据库内核之间通信的端口, 默认 26020 |
data_vg_name | 自定义共享数据卷名,默认为 data |
data_vg_path | 共享数据卷磁盘设备路径 |
inst_vg_map | 每个数据库实例的私有盘路口映射,键为数据库实例IP,值为对应实例的私有数据盘路径 |
cm_share_vg_path | CM 共享盘设备路径 |
cm_voting_vg_path | CM 投票盘设备路径 |
enable_ssl | 是否使用 SSL 加密通信 |
准备好配置文件后,仅需在安装的命令中增加 --enable-dss
参数即可:
ptk install -f config.yaml --enable-dss
更多参数
以上文档举例给出来不同使用场景的一些参数组合,PTK 的 install
命令还支持很多的参数,可以通过查看命令文档来进一步的了解。
安装结果状态
状态 | 说明 |
---|---|
precheck_success | 安装前预检查成功 |
precheck_failed | 安装前预检查失败 |
setup_db_success | 数据库实例安装成功 |
setup_db_failed | 数据库实例安装失败 |
setup_cm_success | CM组件实例安装成功 |
setup_cm_failed | CM组件实例安装失败 |
init_dss_failed | 初始化DSS组件失败 |
init_dss_success | 初始化DSS组件成功 |
initdb_failed | 初始化数据库失败 |
initdb_success | 初始化数据库成功 |
rollback_success | 安装步骤回滚成功 |
need_rollback_manually | 需要手动回滚 |
start_success | 数据库启动成功 |
start_failed | 数据库启动失败 |
need_start_manually | 需要手动启动 |