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操作,查看备库是否能够实时同步这些更改。
  • 检查主库和备库的日志文件,确认没有错误或警告信息。
  • 进行故障转移测试,确保在主库故障时能够顺利切换到备库。
相关推荐
Hsu_kk1 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境1 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n1 小时前
MYSQL库的操作
数据库·mysql
包饭厅咸鱼2 小时前
QML----复制指定下标的ListModel数据
开发语言·数据库
生命几十年3万天2 小时前
redis时间优化
数据库·redis·缓存
Elastic 中国社区官方博客2 小时前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理
力姆泰克2 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克2 小时前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
Lionhacker2 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
eternal__day2 小时前
MySQL_聚合函数&分组查询
数据库·mysql