PostgreSQL promote过程 和 一主多备 时间线对接详解

less than 1 minute read

背景

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 文件。

这样就能完美对接。

Flag Counter

digoal’s 大量PostgreSQL文章入口