PolarDB PostgreSQL轻量版使用PolarFlex软件栈部署,根据您的业务需求,一键部署单节点、一主一备和一主多备集群。
前提条件
购买商业化服务获取PolarDB PostgreSQL轻量版相关软件包。
您可联系我们在未启用License情况下免费使用PolarDB PostgreSQL轻量版单节点版本30天,后续自动限流。
环境要求
硬件需求
安装PolarDB PostgreSQL轻量版应具备基本的硬件要求。在此基础上,您可以根据实际业务需求、数据规模以及期望的数据库响应速度规划硬件配置。
需求项 | 配置要求 |
服务器架构 | 支持X86和ARM架构。 |
硬盘 |
|
CPU | >=2核。 |
内存 | >=8 GB。 |
网络 | 千兆以上以太网。 |
软件需求
需求项 | 配置要求 |
操作系统 | Linux CentOS 7.2或以上,以及Redhat系的国产化操作系统(麒麟、龙蜥等)和Debian系的国产化操作系统(统信等)。 说明 建议字符集设置为LANG=en_US.UTF-8。 |
文件系统 | 本地盘文件系统为Ext4。 |
glibc版本 | glibc版本为2.15或以上。 说明 您可通过执行以下命令获取当前glibc版本号列表,返回结果中包含GLIBC_2.15或以上版本即可。
|
安装集群管理工具pdbcli
pdbcli
是安装部署的客户端组件,作为整个PolarDB PostgreSQL轻量版集群的管理客户端,可通过命令行进行集群部署、集群重启、高可用切换、版本升级、集群状态检查等操作。详细的pdbcli
使用帮助,请参见pdbcli使用说明。
获取目标版本polarflex-${version}-${build-date}.tar.gz的安装包,并将其发送至客户端主机。
登录客户端主机,根据当前软件版本,设置version变量,例如:
version=2.2.2.3
创建工作目录,解压安装文件。
mkdir -p polarflex-${version}/ tar -C polarflex-${version}/ -xf polarflex-${version}-${build-date}.tar.gz
进入工作目录并开始安装,执行./scripts/install.sh,该命令需要
root
权限。cd polarflex-${version}/ ./scripts/install.sh
安装完成后,执行如下命令确认安装的版本,版本无误即表明安装正确:
pdbcli version
安装部署PolarDB PostgreSQL轻量版
预配置操作系统
关闭操作系统的透明大页功能。请执行以下语句以检查当前透明大页的配置:
cat /sys/kernel/mm/transparent_hugepage/enabled
如返回结果为always madvise [never]
则表示已关闭透明大页。否则,请执行以下操作以关闭透明大页。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
配置文件检查
pdbcli配置文件包括主机存储、端口配置和数据库参数等内容,是安装数据库的重要配置文件。默认使用的配置文件为polarflex-${version}/
文件夹下的config.yaml
。
为便于您选择config.yaml的配置,在相同目录下提供了不同场景的配置文件模板。
配置文件模板 | 说明 |
| 一主两备集群的配置文件模板。一主两备形态可保证高可用,RTO(恢复时间目标)小于60秒,同时确保RPO(恢复点目标)为0。 |
| 一主一备集群的配置文件模板。一主一备形态可保证高可用,RTO(恢复时间目标)小于60秒,但无法保证RPO(恢复点目标)为0。 |
| 单节点集群的配置文件模板。单节点形态无法保证高可用和高可靠,不建议在生产环境中使用。 |
如果使用一键部署脚本polarflex-deploy.sh搭建一主两备集群并需要修改参数时,请修改config_template.yaml
模板文件中的参数。同理,使用该脚本搭建单节点集群,请修改config_single_node.yaml
模板文件中的参数。polarflex-deploy.sh
脚本运行中会自动根据模板生成config.yaml
。
需要注意的是,以下两个参数必须在创建集群之前完成配置,创建集群后将无法进行修改。
兼容模式
PolarDB PostgreSQL轻量版包括Postgres兼容与Oracle兼容两种兼容模式。
默认为Postgres兼容模式。如需启用Oracle兼容模式,必须在配置文件模板的末尾设置
compatibility_mode: ora
。文件目录
数据库文件目录默认位于
/var/lib/thirdDB
的子目录。您可以通过配置文件中的polardb_data_root_dir
参数进行修改。由于默认目录的磁盘空间可能较小,强烈建议根据主机的磁盘容量和预计的数据库文件数量选择合适的目录。
配置文件示例
请根据实际部署环境的具体情况,调整配置文件中的相关内容。修改完成后,可执行pdbcli validate验证配置的正确性。
配置文件必须符合YAML格式,不得包含⇥
(制表符)等字符。
# 以下配置文件示例展示了如何搭建一个由三台主机构建的集群,主机IP分别为10.XX.XX.1、
# 10.XX.XX.2、10.XX.XX.3。请您根据实际情况进行配置。
all:
children:
cm:
hosts:
host01: null
host02: null
host03: null
var: null
db:
hosts:
host01:
polardb_polar_hostid: 1
host02:
polardb_polar_hostid: 2
polardb_node_type: standby
host03:
polardb_polar_hostid: 3
polardb_node_type: standby
vars:
polardb_custom_params:
- max_standby_streaming_delay = 900000
- max_connections = 3300
- superuser_reserved_connections = 15
- polar_max_super_conns = 1500
polardb_service_restart_sec: 5
hugepage_enabled: off
proxy:
hosts:
host01: null
host02: null
var: null
hosts:
host01:
ansible_host: 10.XX.XX.1 # HOST01_IP 【必填】
host02:
ansible_host: 10.XX.XX.2 # HOST02_IP 【必填】
host03:
ansible_host: 10.XX.XX.3 # HOST03_IP 【必填】
vars:
ansible_group_priority: 99
ansible_python_interpreter: /usr/bin/{{python}}
cluster_id: polardb1
cm_consensus_port: 7001
cm_service_port: 5001
cm_tls_service_port: 6001
cm_db_sync_mode: SYNC
polardb_data_root_dir: /var/lib/thirdDB
polardb_enable_direct_io: false
polardb_multi_instance_per_host: true
polardb_polar_enable_pfs_mode: false
polardb_port: 1523 # 数据库直连端口
polardb_proxy_port: 12369 # 代理强一致性端口
polardb_proxy_port_rwlb: 12370 # 代理读写分离端口
polardb_proxy_admin_port: 12371
polardb_storage_mode: local_filesystem_mode
polardb_user: polar1
primary_db_host: host01
ue_node_driver_service_port: 12355
compatibility_mode: pg # 如果需要使用Oracle兼容模式,需要在安装之前把pg改为ora
安装并创建集群
polarflex
目录下提供了一键安装脚本polarflex-deploy.sh
。根据需要创建的集群节点数量执行以下命令:
创建一主两备集群,默认使用
config_template.yaml
配置文件。bash polarflex-deploy.sh -m "10.XX.XX.1" -p 'password' -m "10.XX.XX.2" -p 'password' -m "10.XX.XX.3" -p 'password'
创建一主一备集群,默认使用
config_master_slave.yaml
配置文件。bash polarflex-deploy.sh -m "10.XX.XX.1" -p 'password' -m "10.XX.XX.2" -p 'password'
创建单节点集群,默认使用
config_single_node.yaml
配置文件。bash polarflex-deploy.sh -m "10.XX.XX.1" -p 'password'
其中,-m
为服务器主机地址,-p
为对应服务器主机root
密码。您可按需添加-w
参数实现一键部署prometheus
和grafana
,访问执行polarflex-deploy.sh
所在机器的3000端口即可查看集群监控。
bash polarflex-deploy.sh -m "10.XX.XX.1" -p 'password' -m "10.XX.XX.2" -p 'password' -m "10.XX.XX.3" -p 'password' -w
该脚本在运行时将执行以下步骤:
根据指定的安装机器IP地址及其
root
密码,配置SSH免密登录。根据配置模板(例如
config_template.yaml
等)生成配置文件config.yaml
。执行
pdbcli install cluster
安装集群所需的依赖。执行
pdbcli create cluster
创建数据库集群。
当前的一键部署方案依赖于已获取的主机root
密码,我们在附录中为您提供手动安装方法。
部署后检查
在完成数据库的安装与部署后,需进行安装后检查,以确认集群状态的健康性。
集群状态检查
执行pdbcli status
检查集群状态。返回cluster_manager
、master
、standby
和proxy
节点状态均为RUNNING即安装成功,且work_path
为配置文件中的文件目录。
数据库检查
在集群启动后,您可以通过PolarDB PostgreSQL轻量版内核二进制包中内置的psql
客户端进行连通性测试。
创建集群时默认创建以下资源:
用户admin,密码为postgres。
数据库admin_db。
集群默认访问端口1523。执行以下命令检查集群连通性:
PGPASSWORD=postgres /u01/polardb_pg/bin/psql -h localhost -p1523 -U admin -d admin_db -c 'SHOW polardb_version'
如果返回PolarDB PostgreSQL轻量版集群内核小版本号,如PolarDB V2.0.14.13.26.0
,则说明数据库安装成功,且数据库内核版本检查正常。
兼容性模式检查
在集群启动后,您可以通过PolarDB PostgreSQL轻量版内核二进制包中内置的psql
客户端查询当前使用的PolarDB引擎兼容模式。
PGPASSWORD=postgres /u01/polardb_pg/bin/psql -h localhost -p1523 -U admin -d admin_db -c 'SHOW polar_compatibility_mode'
返回结果如下:
pg
:为Postgres兼容模式。ora
:为Oracle兼容模式。
进程检查
PolarDB PostgreSQL轻量版集群成功启动后,将在数据库目录下生成一个名为postmaster.pid
的文件。该文件的第一行内容为PolarDB引擎守护进程的进程ID(pid)。您可以通过执行命令ps -ef | grep <pid>
来获取所有PolarDB PostgreSQL轻量版集群进程信息,常见的辅助进程如下:
postgres: logger
:PolarDB打印日志进程。postgres: checkpointer
:PolarDB周期性检查点进程。postgres: background writer
:PolarDB周期性刷脏进程。postgres: walwriter
:PolarDB定期WAL 日志刷盘进程。postgres: autovacuum launcher
:PolarDB自动清理调度进程。postgres: stats collector
:PolarDB统计信息收集进程。
集群卸载
如安装部署PolarDB PostgreSQL轻量版异常需要删除残留,请执行以下命令删除集群并卸载软件栈后重新安装。
pdbcli delete cluster && pdbcli uninstall cluster
附录
完成集群管理工具pdbcli安装和预配置操作系统后,如您无法获取服务器主机root
密码,可按照以下步骤进行PolarDB PostgreSQL轻量版集群手动部署。
完成
pdbcli
客户端主机和服务器主机之间配置SSH免密登录。# 生成ssh key ssh-keygen -t rsa # 复制公钥到所有部署机器上 ssh-copy-id -i ~/.ssh/id_rsa.pub <目标用户>@$HOST
准备配置文件
config.yaml
。修改polarflex-${version}/
文件夹下的config.yaml
,根据实际部署环境的具体情况,调整配置文件中相关内容。修改完成后,可执行pdbcli validate验证配置正确性。安装PolarFlex软件栈。
pdbcli install cluster
安装PolarDB PostgreSQL轻量版集群和组件。
pdbcli create cluster
安装成功后,进行部署后检查,确认集群运行状态。