PostgreSQL 9.6 错误:资源管理器 ID 无效

roo*_*e09 2 postgresql postgresql-9.6

我在 PostgreSQL 9.6 服务器日志文件中遇到这样的错误消息(在尝试时pg_rewind):

LOG: invalid resource manager ID 119 at 0/910CE68
Run Code Online (Sandbox Code Playgroud)

什么是 (PostgreSQL) 资源管理器以及为什么它必须在 WAL 文件中标识?

roo*_*e09 5

我现在得出的结论是,这是 PostgreSQL 遇到格式错误的 WAL 的症状。这些错误消息似乎也相关:

LOG: invalid record length ...
LOG: record with incorrect prev-link ...
Run Code Online (Sandbox Code Playgroud)

根本原因显然是对的调用pg_basebackup -X stream没有终止。(这显然是一个标题为 PostgreSQL 9.2 中"pg_basebackup -x stream from the standby gets stuck if there is no traffic in the database"已解决的问题,但可能再次出现。)当我不得不使用 中断调用时,这可能会留下格式错误的 WAL。CTRL-C

我现在正在使用pg_basebackup -c fast -X fetch它,效果很好。鉴于此以及出于我当前的目的,不再需要了解有关 (PostgreSQL) 资源管理器的详细信息。