PostgreSQL主备环境配置

配置 PostgreSQL 的主备环境通常涉及以下步骤:

  1. 安装和配置主服务器 (Primary)。
  2. 安装和配置备服务器 (Standby)。
  3. 在主服务器上配置流复制。
  4. 启动流复制进程。

一、安装PostgreSQL软件

  1. 下载与安装:
  • 可以从PostgreSQL官网下载适合操作系统的安装包或使用包管理器(如yum、apt等)进行安装。
  • 如果是源码安装,需要下载源码包,解压缩,配置,编译并安装。
  1. 初始化数据库:
  • 使用initdb命令初始化数据库目录。
  • 创建PostgreSQL用户和组(如果需要的话),并设置数据库目录的权限。

二、配置主库

  1. 修改postgresql.conf:
  • listen_addresses = '*':设置PostgreSQL监听所有IP地址。
  • wal_level = hot_standby:启用热备模式,以便支持实时复制。
  • max_wal_senders = 2:设置最多可以同时发送WAL(Write-Ahead Logging)数据的客户端数量。
  • wal_keep_segments = 32:设置保留的WAL文件段数,每个段通常16MB。
  • max_connections = 100:设置最大连接数。
  • 其他可能需要设置的参数,如checkpoint_timeout、archive_mode等,根据实际需求配置。
  1. 修改pg_hba.conf:
  • 添加或修改规则以允许备库通过特定的用户、IP地址和认证方法连接到主库。例如:
bash 复制代码
host replication replica 192.168.222.12/24 md5

其中replica是连接用户名,192.168.222.12/24是备库的IP地址段,md5是认证方法。

  1. 创建复制用户:
  • 在主库上创建一个具有复制权限的用户,用于备库连接到主库。
sql 复制代码
CREATE ROLE replica LOGIN REPLICATION ENCRYPTED PASSWORD 'replica';
  1. 重启PostgreSQL服务:
  • 应用上述更改后,需要重启PostgreSQL服务。

三、配置备库

  1. 安装与初始化:
  • 在备库上安装PostgreSQL软件,但不需要初始化数据库目录。
  1. 数据同步:
  • 使用pg_basebackup工具从主库同步基础数据到备库。
bash 复制代码
pg_basebackup -D $PGDATA -h 主库IP -p 5432 -U replica -X stream -P
  • 确保备库的数据目录具有正确的权限。
  1. 修改postgresql.conf:
  • 在备库的postgresql.conf文件中,设置一些关键的参数以支持热备模式。
  • 注意,从PostgreSQL 12开始,recovery.conf文件已经被移除,相关配置已合并到postgresql.conf中。
  • 配置hot_standby = on,以及其他与复制相关的参数,如primary_conninfo。
  1. 创建standby.signal文件(如果版本要求):
  • 在备库的数据目录下创建一个名为standby.signal的空文件,以表明该数据库实例是备库。
  1. 启动备库:
  • 使用pg_ctl start命令启动备库。

四、验证与测试

  • 在主库上执行一些DML操作,查看备库是否能够实时同步这些更改。
  • 检查主库和备库的日志文件,确认没有错误或警告信息。
  • 进行故障转移测试,确保在主库故障时能够顺利切换到备库。
相关推荐
工业甲酰苯胺23 分钟前
Redis性能优化的18招
数据库·redis·性能优化
没书读了1 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
i道i2 小时前
MySQL win安装 和 pymysql使用示例
数据库·mysql
小怪兽ysl2 小时前
【PostgreSQL使用pg_filedump工具解析数据文件以恢复数据】
数据库·postgresql
wqq_9922502772 小时前
springboot基于微信小程序的食堂预约点餐系统
数据库·微信小程序·小程序
爱上口袋的天空2 小时前
09 - Clickhouse的SQL操作
数据库·sql·clickhouse
聂 可 以4 小时前
Windows环境安装MongoDB
数据库·mongodb
web前端神器4 小时前
mongodb多表查询,五个表查询
数据库·mongodb
门牙咬脆骨4 小时前
【Redis】redis缓存击穿,缓存雪崩,缓存穿透
数据库·redis·缓存
门牙咬脆骨4 小时前
【Redis】GEO数据结构
数据库·redis·缓存