--wal-method=stream不适用于Postgresql10.3



我只是在学习使用postgres Db的流复制,试图达到这里所描述的目标:https://cloud.google.com/community/tutorials/setting-up-postgres-hot-standby

我已经完成了主服务器和备用服务器的所有配置。但在我的情况下,我使用的是Postgres版本10.3。

因此,在运行带有选项--wal-method=stream的pg_basebackup命令时,我得到了以下错误:-

[vagrant@postgres1 bin]$ ./pg_basebackup -h /tmp/ -p 5432 -D /home/vagrant/postgres/data2  -P -v --wal-method=stream
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/2D000028 on timeline 1
pg_basebackup: starting background WAL receiver
33824/33824 kB (100%), 1/1 tablespace
pg_basebackup: write-ahead log end point: 0/2D0000F8
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: could not send copy-end packet: no COPY in progress
pg_basebackup: child process exited with error 1
pg_basebackup: removing data directory "/home/vagrant/postgres/data2"

但是在使用--wal-method=fetch选项执行pg_basebackup时,它成功地完成了

[vagrant@postgres1 bin]$ ./pg_basebackup -h /tmp/ -p 5432 -D /home/vagrant/postgres/data2  -P -v --wal-method=fetch
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/2F000028 on timeline 1
50209/50209 kB (100%), 1/1 tablespace
pg_basebackup: write-ahead log end point: 0/2F0000F8
pg_basebackup: base backup completed

但我想要的是从主服务器到辅助服务器的实时复制,这可以通过--wal-method=stream选项实现。

如果有人对此有任何意见,请告诉我。

提前感谢:(

"stream"是wal-method的默认值。跳过这部分。

在不使用--wal-method=stream的情况下运行以下命令

./pg_basebackup -h /tmp/ -p 5432 -D /home/vagrant/postgres/data2  -P -v

最新更新