2. PostgreSQL 流复制

来源:这里教程网 时间:2026-03-14 20:16:52 作者:

1. PostgreSQL 流复制3 个主要进程:wal sender, wal receiver , startup 2. 配置流复制:step 1:在master 端创建用于流复制的用户replicatorcreate user replicator with replication encrypted password 'replicator';创建完成后可以在psql中通过\du命令查看创建的用户 step 2:在master 的参数配置,下面这些参数需要配置ALTER SYSTEM SET wal_level TO 'hot_standby';ALTER SYSTEM SET archive_mode TO 'ON';ALTER SYSTEM SET max_wal_senders TO '5';ALTER SYSTEM SET wal_keep_segments TO '10';ALTER SYSTEM SET listen_addresses TO '*';ALTER SYSTEM SET hot_standby TO 'ON';ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'; 配置完这些参数后需要重启数据库pg_ctl restart, 可以在$PGDATA目录下的postgresql.auto.conf文件查看参数是否生效。 step 3:在$PGDATA目录的pg_hba.conf文件中添加slave主机的信息host replication replicator 192.168.1.66/32 md5配置完成后需要重新加载pg_ctl reload。 step 4:复制master库到备库,可以通过如下方法:pg_basebackup -h 192.168.1.70 -U replicator -p 5432 -D $PGDATA -P -Xs -R当前只是做测试,没有数据,此步操作很快,会在slave端生成所有的文件,同时还会包含recovery.conf文件。 step 5:启动slave端pg数据库 pg_ctl start 检查master端进程:-bash-4.2$ ps -ef | grep senderpostgres  6515  5852  0 14:55 ?        00:00:00 postgres: wal sender process replicator 192.168.1.66(50228) streaming 0/6000060 检查slave端进程:-bash-4.2$ ps -ef | grep receiverpostgres 19052 19046  0 14:55 ?        00:00:00 postgres: wal receiver process   streaming 0/6000060-bash-4.2$ ps -ef | grep startuppostgres 19048 19046  0 14:55 ?        00:00:00 postgres: startup process   recovering 000000010000000000000006 也可以在master端通过视图检查: 至此一个简单的PostgreSQL 流复制配置完成,其中的知识点:

1. 流复制设计三个进程 wal sender, wal receiver , startup,在配置完成后可以通过下面命令查看。ps -ef | grep senderps -ef | grep receiverps -ef | grep startup也可以在Master端通过视图pg_stat_replication查看。select * from pg_stat_replication; 2.  会涉及到postgresql.conf, pg_hba.conf两个参数文件的配置,都是在master端进行配置。postgresql.conf文件需要配置的参数有:ALTER SYSTEM SET wal_level TO 'hot_standby';ALTER SYSTEM SET archive_mode TO 'ON';ALTER SYSTEM SET max_wal_senders TO '5';ALTER SYSTEM SET wal_keep_segments TO '10';ALTER SYSTEM SET listen_addresses TO '*';ALTER SYSTEM SET hot_standby TO 'ON';ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'; pg_hba.conf 文件需要配置slave端的信息: host replication replicator 192.168.1.66/32 md5 3. pg_basebackup工具的使用 在进行stream replication配置是需要将master端的数据同步到slave端,需要使用pg_basebackup工具将数据同步到slave端。 pg_basebackup 工具的使用可以作为一个单独的章节。

相关推荐