找不到“时间轴历史记录文件”以使复制正常工作


5

我正在运行PostgreSQL 9.4,试图使复制继续进行。

我在做什么,从Wiki文档中说明中获得启发:

  1. SELECT pg_start_backup('clone', true);
  2. rsync 数据库到可能的副本
  3. SELECT pg_stop_backup();
  4. rsync将该pg_xlog文件夹复制到可能的副本中

我开始复制,它说:

LOG:  fetching timeline history file for timeline 3 from primary server
FATAL:  could not receive timeline history file from the primary server:
    ERROR:  could not open file "pg_xlog/00000003.history": No such file or directory

自然,我在两台服务器上都在寻找.history文件pg_xlog/,但是没有。

我浏览了一下文档以了解

要使用备份,您将需要保留在文件系统备份期间和之后生成的所有WAL段文件。为了帮助您做到这一点,pg_stop_backup函数创建一个备份历史文件,该文件将立即存储在WAL归档区域中。该文件以文件系统备份所需的第一个WAL段文件命名。例如,如果起始WAL文件为0000000100001234000055CD,则备份历史记录文件的名称将类似于0000000100001234000055CD.007C9330.backup。

但是,碰巧的是,在我执行pg_stop_backup()此操作之后pg_xlog/,在或任何地方仍然没有类似的东西。

那么,我在哪里可以得到这个“时间轴历史文件”呢?

Answers:


2

按照“ 六对二”的发布,您也许可以创建一个文件,然后继续进行复制设置,但是本质上,这是一个PostgresSQL错误,即使该文件不适用或已删除,也需要该文件。操作。

当PostgreSQL升级一个新的主服务器时,它会以一个放置在WAL文件目录中的小文本文件的形式创建一个时间线分割标记。在某些相当复杂的故障转移和故障回复方案下,此文件可以实现时间点恢复。

因此,看来您将不得不重新创建文件。您可以 在Postgres Wiki上找到.history文件的 非常不错的摘要。由于该信息位于.pdf中,因此它往往更难以索引,因此如果您尚不知道文档的位置,则可能难以找到该文档。

但是我们永远不会回到那个时间表,因为它是在升级之前。我们需要重新创建丢失的文件的数量足够多。您可以通过运行以下命令获得一个:

# SELECT pg_current_xlog_location();
 pg_current_xlog_location
--------------------------
 1/38F70328
(1 row)

使用这些值在WAL目录中模拟一个.history文件,等等。副本将立即能够启动。

资源

用这些(以上)结果创建文件,但使用每个错误的预期名称。


更多资源

  • 了解PostgreSQL时间轴

  • 系统管理功能

    名称: pg_current_xlog_location()

    返回类型: 文字

    说明: 获取当前事务日志的写入位置

    pg_current_xlog_location以上述功能使用的相同格式显示当前事务日志的写入位置。同样,pg_current_xlog_insert_location显示当前事务日志的插入点。插入点在任何时候都是事务日志的“逻辑”末端,而写入位置是实际从服务器内部缓冲区中写入的内容的末端。写入位置是可以从服务器外部检查的内容的结尾,并且如果您对归档部分完整的事务日志文件感兴趣,通常是您想要的位置。插入点主要用于服务器调试目的。这些都是只读操作,不需要超级用户权限。

    您可以用于pg_xlogfile_name_offset从上述任何函数的结果中提取相应的事务日志文件名和字节偏移。

    同样,pg_xlogfile_name仅提取事务日志文件名。当给定的事务日志位置恰好位于事务日志文件边界时,这两个函数都将返回前一个事务日志文件的名称。这通常是管理事务日志归档行为的理想行为,因为前一个文件是当前需要归档的最后一个文件。

    资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.