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操作,查看备库是否能够实时同步这些更改。
  • 检查主库和备库的日志文件,确认没有错误或警告信息。
  • 进行故障转移测试,确保在主库故障时能够顺利切换到备库。
相关推荐
夏玉林的学习之路13 分钟前
正则表达式
数据库·c++·qt·mysql·正则表达式
JIngJaneIL28 分钟前
财务管理|基于SprinBoot+vue的个人财务管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·财务管理系统
JIngJaneIL1 小时前
口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·口腔医疗小程序
白帽子黑客罗哥1 小时前
常见Web安全漏洞全解析:从原理到防御的实战指南
数据库·web安全·渗透测试·漏洞利用·权限提升
寒山李白3 小时前
IDEA连接MySQL服务器数据库指南
java·数据库·mysql·intellij-idea·idea·database
亿坊电商6 小时前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
韩立学长6 小时前
基于Springboot的影视评论网站的设计与实现58py6238(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
未来之窗软件服务7 小时前
未来之窗昭和仙君(四十七)开发商品进销存——东方仙盟筑基期
数据库·进销存·仙盟创梦ide·东方仙盟·昭和仙君·东方仙盟架构
IDOlaoluo8 小时前
TinyRDM 1.2.3 Windows版安装教程(附Redis客户端下载及详细步骤)
数据库·redis·缓存
小光学长8 小时前
基于微信小程序的背单词系统x1o5sz72(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序