PostgreSQL主备同步详解
在PostgreSQL中,主备同步通常是通过流复制实现的。以下是设置流复制的基本步骤:
- 在主服务器上配置
postgresql.conf
,启用archive模式和wal发送需要的参数。 - 创建复制用户并授权。
- 在备服务器上配置
recovery.conf
或通过SQL命令设置复制源。
以下是相关的示例配置和命令:
主服务器的postgresql.conf
配置:
wal_level = replica
archive_mode = on
archive_command = 'cp %p /path_to_archive_directory/%f'
max_wal_senders = 3 # 可以有多个备服务器
创建复制用户:
CREATE ROLE replica LOGIN PASSWORD 'replica_password';
GRANT REPLICATION SLAVE ON DATABASE yourdb TO replica;
备服务器的recovery.conf
(或者通过SQL命令):
primary_conninfo = 'host=master_ip port=5432 user=replica password=replica_password sslmode=prefer sslcompression=1'
primary_slot_name = 'replica_slot'
或者通过SQL命令:
SELECT * FROM pg_create_physical_replication_slot('replica_slot');
然后启动流复制:
START_REPLICATION SLOT 'replica_slot' PASSWORD 'replica_password' FROM 'timestamp';
这里的timestamp
是同步的起始时间,可以是一个特定的时间点或者latest
以从最新的WAL记录开始同步。
注意:在实际部署中,还需要考虑网络配置、权限管理、监控和故障转移等方面的因素。
评论已关闭