PostgreSQL promote过程 和 一主多备 时间线对接详解
背景
PostgreSQL的physical standby数据库的promote过程,数据库会在pg_xlog目录产生3个文件。
例如将备库1 promote,它将在pg_xlog目录产生如下文件:
A.partial (xlog)
NEWTL_A (xlog)
NEWTL.history (history file)
例如备库1当前已接收到的XLOG位置是 00000001000000000000002D 文件中的某个位置 0/2D15D7D0,现在promote它 。
将会在pg_xlog目录中产生3个文件:
00000001000000000000002D.partial
00000002000000000000002D
(00000001000000000000002D.partial 的内容会拷贝到 00000002000000000000002D)
00000002.history
1 0/2D15D7D0 no recovery target specified
假设还有一个备库叫备库2,备库2如何能顺利的对接到已激活的备库1呢?
有个前提条件
1. 备库2在TL1这条时间线上,还没有接收到00000001000000000000002D 这个文件。
把00000002.history拷贝到备库2的pg_xlog。
备库2会在应用完00000001000000000000002C后请求下一个时间线的 00000002000000000000002D 文件。
这样就能完美对接。