前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >openGauss主备搭建方法详解

openGauss主备搭建方法详解

原创
作者头像
炒香菇的书呆子
发布2025-01-11 23:57:36
发布2025-01-11 23:57:36
2490
举报

OpenGauss 主备搭建全攻略

在当今数字化时代,数据库的高可用性至关重要,OpenGauss 作为一款高性能、高可靠的开源关系型数据库,其主备搭建能有效保障数据的安全性与业务的连续性。本文将详细介绍 OpenGauss 主备搭建的方法,帮助大家深入了解这一关键技术实践。

一、环境准备

  1. 硬件需求
  • 至少两台服务器,配置根据实际业务需求而定,但建议 CPU、内存、磁盘有一定冗余,以满足数据库运行需求。例如,主节点可以配置 4 核 8GB 内存及 500GB 磁盘空间,备节点配置相似或稍低一档,如 4 核 4GB 内存与 300GB 磁盘空间,确保在主节点故障时备节点能迅速接管负载。
  1. 软件需求
  • 操作系统:推荐使用 Linux 发行版,如 CentOS 7.x 或 Ubuntu 18.04 等,确保系统内核更新到稳定版本,安装必要的系统工具如net-tools(用于网络配置查看)、vim(文本编辑)等。
  • OpenGauss 安装包:从官方渠道下载适配操作系统版本的安装包,注意检查版本兼容性与安全补丁信息。

二、网络配置

  1. 确保主备节点能互相 ping 通,在防火墙层面开放数据库通信端口,OpenGauss 默认使用的端口是 5432,配置iptables或firewalld规则,例如在 CentOS 7 上使用firewalld:
代码语言:bash
复制
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
  1. 为保证数据同步的稳定性,建议主备节点处于同一局域网内,低延迟、高带宽的网络环境有助于减少数据同步延迟,避免因网络问题导致主备数据不一致。

三、安装 OpenGauss

  1. 在主节点上解压安装包:
代码语言:bash
复制
tar -zxvf openGauss-x.x.x.tar.gz

其中x.x.x为下载的 OpenGauss 具体版本号。

  1. 进入解压后的目录,执行安装脚本:
代码语言:bash
复制
cd openGauss-x.x.x
./install.sh -w password -p 5432

这里-w指定数据库初始密码,-p指定端口,可根据实际需求调整。安装过程中会提示输入一些配置信息,如数据库实例名、数据存储路径等,按规划填写。

  1. 备节点安装步骤与主节点类似,但在配置时有细微差别。安装完成后,先不要启动备节点的数据库服务,后续进行主备同步配置时再按需启动。

四、主备配置核心步骤

  1. 配置主节点参数
  • 编辑主节点的postgresql.conf文件(通常位于数据库数据目录下的pgdata子目录内),找到并修改以下关键参数:
代码语言:bash
复制
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。
  1. 配置备节点参数
  • 在备节点同样编辑postgresql.conf文件,修改以下参数:
代码语言:bash
复制
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
  • hot_standby = on允许备节点在恢复模式下提供只读查询服务,提升可用性;max_standby_streaming_delay和wal_receiver_status_interval用于优化备节点的日志接收与状态反馈机制,减少延迟与确保同步状态及时更新。
  1. 创建主备复制槽
  • 在主节点登录数据库(使用安装时设置的用户名和密码,默认用户名可能是omm):
代码语言:bash
复制
psql -U omm -d postgres
  • 在数据库命令行中创建复制槽:
代码语言:bash
复制
SELECT * FROM pg_create_physical_replication_slot('standby1_slot');

这一步为备节点与主节点的 WAL 日志同步建立关联通道。

  1. 基础备份与恢复
  • 在主节点执行基础备份命令,将数据目录备份到备节点可访问的位置,例如通过scp命令传输到备节点指定目录:
代码语言:bash
复制
gs_basebackup -D /backup_path -Ft -p 5432 -U omm -X stream -R
  • 其中/backup_path为备份路径,-R参数会自动在备份目录生成recovery.conf文件,包含主节点连接信息用于备节点恢复。在备节点将备份数据移动到合适的数据库数据目录位置(假设为/pgdata_standby),并修改recovery.conf文件中可能不准确的路径信息。

五、启动与验证

  1. 启动备节点数据库服务:
代码语言:bash
复制
gs_ctl start -D /pgdata_standby
  1. 在主节点查看复制状态:
代码语言:bash
复制
SELECT * FROM pg_stat_replication;

如果看到类似包含备节点连接信息、WAL 发送位点等详细记录,则表明主备复制正在正常进行。

  1. 在备节点查看同步状态:
代码语言:bash
复制
SELECT pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn();

比较这两个 LSN(Log Sequence Number)值,若差值稳定在较小范围内,说明备节点同步正常,数据一致性有保障。

六、故障切换与维护

  1. 故障切换场景:当主节点发生硬件故障、操作系统崩溃或数据库进程异常退出等情况时,需要手动触发备节点切换为主节点。在确认主节点无法恢复后,登录备节点执行切换命令:
代码语言:bash
复制
gs_ctl promote -D /pgdata_standby

这会使备节点晋升为主节点,对外提供读写服务,原主节点修复后需重新配置为备节点加入集群。

  1. 日常维护:定期检查主备节点的磁盘空间、内存使用、数据库日志等,及时清理过期的 WAL 日志文件(在主节点可通过配置参数控制日志保留策略),优化数据库参数(如根据业务负载动态调整shared_buffers等内存参数),确保主备系统长期稳定运行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OpenGauss 主备搭建全攻略
    • 一、环境准备
    • 二、网络配置
    • 三、安装 OpenGauss
    • 四、主备配置核心步骤
    • 五、启动与验证
    • 六、故障切换与维护
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档