创建 PostgreSQL 9.5 副本时出现问题

创建 PostgreSQL 9.5 副本时出现问题

我正在尝试为 PostgreSQL 9.5 主服务器创建热备用副本。

我使用的基本过程是在主服务器上启动备份:

SELECT pg_start_backup('label', true)

然后,在从属服务器上运行 pg_basebackup:

pg_basebackup -h <master ip> -D /data/pgsql/9.5/data -U replicator -v -P  --xlog-method=stream

完成后,我执行命令停止主服务器上的备份:

SELECT pg_stop_backup()

此时,我在 STDOUT 上得到了以下内容:

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments.

这种情况会持续下去并且不会退出。

主服务器上的归档命令设置为:

rsync -a %p <replica ip>:/data/wal-archive/%f

最初,这不起作用,因为需要接受服务器密钥。一旦我手动完成此操作,rsync 就会启动,我可以看到 /data/wal-archive 中有大量文件(到目前为止约为 15GB)。

这是一个 20TB 的数据库,所以我真的不想因为弄乱某些东西而重新开始这个过程。

退出发出警告的终端是否安全?我在其他帖子中读到,archive_mode 只需要在将数据库流式传输到副本的过程中打开,以便设置副本,除此之外不需要。

在这种情况下,我可以在终端上按 CTRL-C 然后继续配置副本吗?

那么我可以关闭主机上的archive_mode吗?

答案1

是的,按 CTRL-C 退出 pg_stop_backup() 是安全的。

/data/wal_archive 目录中文件的建立源于主服务器上的 archive_command。

一旦在从属服务器上启动了 postgres 服务,这些“日志”就会被使用(即写入从属服务器上的数据库)然后被删除。

相关内容