OpenGauss 主备搭建全攻略
在当今数字化时代,数据库的高可用性至关重要,OpenGauss 作为一款高性能、高可靠的开源关系型数据库,其主备搭建能有效保障数据的安全性与业务的连续性。本文将详细介绍 OpenGauss 主备搭建的方法,帮助大家深入了解这一关键技术实践。
一、环境准备
- 硬件需求
- 至少两台服务器,配置根据实际业务需求而定,但建议 CPU、内存、磁盘有一定冗余,以满足数据库运行需求。例如,主节点可以配置 4 核 8GB 内存及 500GB 磁盘空间,备节点配置相似或稍低一档,如 4 核 4GB 内存与 300GB 磁盘空间,确保在主节点故障时备节点能迅速接管负载。
- 软件需求
- 操作系统:推荐使用 Linux 发行版,如 CentOS 7.x 或 Ubuntu 18.04 等,确保系统内核更新到稳定版本,安装必要的系统工具如net-tools(用于网络配置查看)、vim(文本编辑)等。
- OpenGauss 安装包:从官方渠道下载适配操作系统版本的安装包,注意检查版本兼容性与安全补丁信息。
二、网络配置
- 确保主备节点能互相 ping 通,在防火墙层面开放数据库通信端口,OpenGauss 默认使用的端口是 5432,配置iptables或firewalld规则,例如在 CentOS 7 上使用firewalld:
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
- 为保证数据同步的稳定性,建议主备节点处于同一局域网内,低延迟、高带宽的网络环境有助于减少数据同步延迟,避免因网络问题导致主备数据不一致。
三、安装 OpenGauss
- 在主节点上解压安装包:
tar -zxvf openGauss-x.x.x.tar.gz
其中x.x.x为下载的 OpenGauss 具体版本号。
- 进入解压后的目录,执行安装脚本:
cd openGauss-x.x.x
./install.sh -w password -p 5432
这里-w指定数据库初始密码,-p指定端口,可根据实际需求调整。安装过程中会提示输入一些配置信息,如数据库实例名、数据存储路径等,按规划填写。
- 备节点安装步骤与主节点类似,但在配置时有细微差别。安装完成后,先不要启动备节点的数据库服务,后续进行主备同步配置时再按需启动。
四、主备配置核心步骤
- 配置主节点参数
- 编辑主节点的postgresql.conf文件(通常位于数据库数据目录下的pgdata子目录内),找到并修改以下关键参数:
wal_level = replica
max_wal_senders = 5
wal_keep_segments = 50
synchronous_standby_names = 'standby1'
- wal_level设置为replica确保生成足够的 WAL(Write-Ahead Logging)日志用于主备同步;max_wal_senders指定允许的最大 WAL 发送进程数,用于向备节点传输日志;wal_keep_segments保留足够的 WAL 段,防止备节点因日志缺失无法同步;synchronous_standby_names定义同步备节点名称,这里假设备节点名为standby1。
- 配置备节点参数
- 在备节点同样编辑postgresql.conf文件,修改以下参数:
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
- hot_standby = on允许备节点在恢复模式下提供只读查询服务,提升可用性;max_standby_streaming_delay和wal_receiver_status_interval用于优化备节点的日志接收与状态反馈机制,减少延迟与确保同步状态及时更新。
- 创建主备复制槽
- 在主节点登录数据库(使用安装时设置的用户名和密码,默认用户名可能是omm):
SELECT * FROM pg_create_physical_replication_slot('standby1_slot');
这一步为备节点与主节点的 WAL 日志同步建立关联通道。
- 基础备份与恢复
- 在主节点执行基础备份命令,将数据目录备份到备节点可访问的位置,例如通过scp命令传输到备节点指定目录:
gs_basebackup -D /backup_path -Ft -p 5432 -U omm -X stream -R
- 其中/backup_path为备份路径,-R参数会自动在备份目录生成recovery.conf文件,包含主节点连接信息用于备节点恢复。在备节点将备份数据移动到合适的数据库数据目录位置(假设为/pgdata_standby),并修改recovery.conf文件中可能不准确的路径信息。
五、启动与验证
- 启动备节点数据库服务:
gs_ctl start -D /pgdata_standby
- 在主节点查看复制状态:
SELECT * FROM pg_stat_replication;
如果看到类似包含备节点连接信息、WAL 发送位点等详细记录,则表明主备复制正在正常进行。
- 在备节点查看同步状态:
SELECT pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn();
比较这两个 LSN(Log Sequence Number)值,若差值稳定在较小范围内,说明备节点同步正常,数据一致性有保障。
六、故障切换与维护
- 故障切换场景:当主节点发生硬件故障、操作系统崩溃或数据库进程异常退出等情况时,需要手动触发备节点切换为主节点。在确认主节点无法恢复后,登录备节点执行切换命令:
gs_ctl promote -D /pgdata_standby
这会使备节点晋升为主节点,对外提供读写服务,原主节点修复后需重新配置为备节点加入集群。
- 日常维护:定期检查主备节点的磁盘空间、内存使用、数据库日志等,及时清理过期的 WAL 日志文件(在主节点可通过配置参数控制日志保留策略),优化数据库参数(如根据业务负载动态调整shared_buffers等内存参数),确保主备系统长期稳定运行。