postgresql流复制
时间: 2025-05-12 20:51:40 浏览: 10
### PostgreSQL 流复制配置与实现
#### 修改主库配置文件 `postgresql.conf`
为了使流复制正常工作,需要编辑主服务器上的`postgresql.conf`文件。具体路径通常位于 `/var/lib/postgresql/data/`目录下[^1]。
```bash
cd /var/lib/postgresql/data/
vi postgresql.conf
```
在该文件中应做如下调整:
- 设置最大连接数以允许来自备用节点的连接:`max_wal_senders = (number of standby servers)`。
- 启用日志归档和预写式日志(WAL)发送功能:`wal_level = replica` 或者更高版本中的 `logical`级别。
- 开启热备份选项以便于读取操作可以在备库执行:`hot_standby = on`【此参数实际上是在备库配置】[^3]。
#### 备份初始化数据
完成以上更改之后,在继续之前应当创建一个基础备份用于初始同步到所有的从属实例上。这一步骤可以通过物理拷贝整个集群的数据目录或者利用pg_basebackup工具来简化过程。
#### 配置备库
对于每一个作为副本运行的服务端而言,除了要确保其自身的`postgresql.conf`已正确设定外,还需要指定指向主服务器的信息。这部分内容被定义在一个名为`recovery.conf`的新文件里(新版本可能直接放在`postgresql.auto.conf`),其中至少包含以下几项设置:
```plaintext
standby_mode = 'on'
primary_conninfo = 'host=primary_ip port=5432 user=replication_user password=replication_password'
trigger_file = '/tmp/pg_failover_trigger'
```
这里特别注意的是`primary_conninfo`字段用来告知当前节点如何找到上游源;而可选的`trigger_file`则可用于触发自动故障转移机制。
#### 启动服务并验证状态
当所有必要的改动都完成后就可以重启PostgreSQL进程让新的参数生效了。如果一切顺利的话,现在应该能够看到从机开始接收到来自主机的日志条目更新[^4]。
```bash
sudo systemctl start postgresql
```
最后建议定期检查系统的健康状况以及确认复制链路是否稳定可靠。例如查看`pg_stat_replication`视图获取有关正在进行着的复制活动详情。
阅读全文
相关推荐


















