PostgreSQL 9.3 Make pg_receivexlog and pg_basebackup -X stream work across timeline switches.

Allow pg_receivexlog and pg_basebackup --xlog-method to handle streaming timeline switches (Heikki Linnakangas)

Make pg_receivexlog and pg_basebackup -X stream work across timeline switches.

This mirrors the changes done earlier to the server in standby mode. When
receivelog reaches the end of a timeline, as reported by the server, it
fetches the timeline history file of the next timeline, and restarts
streaming from the new timeline by issuing a new START_STREAMING command.

When pg_receivexlog crosses a timeline, it leaves the .partial suffix on the
last segment on the old timeline. This helps you to tell apart a partial
segment left in the directory because of a timeline switch, and a completed
segment. If you just follow a single server, it won't make a difference, but
it can be significant in more complicated scenarios where new WAL is still
generated on the old timeline.

This includes two small changes to the streaming replication protocol:
First, when you reach the end of timeline while streaming, the server now
sends the TLI of the next timeline in the server's history to the client.
pg_receivexlog uses that as the next timeline, so that it doesn't need to
parse the timeline history file like a standby server does. Second, when
BASE_BACKUP command sends the begin and end WAL positions, it now also sends
the timeline IDs corresponding the positions.

PostgreSQL 9.3 对流复制协议的改进, 

http://blog.163.com/digoal@126/blog/static/1638770402013482399908/

同时对pg_basebackup和pg_receivexlog使用流复制协议复制xlog时增加了对时间线文件的复制支持.

这种情况可能发生在对端是一台standby, 但是对端promote了, 或者其他standby promote了, 对端的standby 的xlog也随之更新了.

在没有归档和配置recovery.conf restore_command的情况下, 无需人为的拷贝history文件.

[参考]

1. http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=0b6329130e8e4576e97ff763f0e773347e1a88af

2. http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=3684a534efbd2ffd72e2c4cbd21f9752be3efaf1

3. http://www.postgresql.org/message-id/flat/50F56245.8050802@vmware.com#50F56245.8050802@vmware.com

时间: 2025-01-31 05:42:31

PostgreSQL 9.3 Make pg_receivexlog and pg_basebackup -X stream work across timeline switches.的相关文章

PostgreSQL 9.3 Allow a streaming replication standby to follow a timeline switch

Allow a streaming replication standby to follow a timeline switch. Before this patch, streaming replication would refuse to start replicating if the timeline in the primary doesn't exactly match the standby. The situation where it doesn't match is wh

元旦技术大礼包 - 2017金秋将要发布的PostgreSQL 10.0已装备了哪些核武器?

标签 PostgreSQL , 10.0 , 金秋 , 元旦 , 大礼包 , commitfest 背景 早上送给大家的新年大礼包,一年一个大版本是PostgreSQL社区的传统,虽然发布时间通常为秋天,还有一段时间,但是已经迫不及待地想看看2017金秋将要发布的10.0版本已经装备了哪些核武器. 放心,还会有一波又一波的feature和增强搭上开往2017金秋的列车,本文提到的可能只是其中的某一节车厢沃,PGer是不是开始有一点振奋人心的感觉啦. 1. 并行计算专属动态共享内存区,(加速索引扫

PostgreSQL 10 新特性, 流式接收端在线压缩redo

标签 PostgreSQL , redo 在线压缩 , wal 在线压缩 , 接收端压缩 , pg_receivexlog , pg_basebackup , 断点续传 背景 虽然现在磁盘已经很廉价,大多数时候不需要压缩了. 但是在一些嵌入式系统,或者一些未扩容的产品环境中,压缩还是非常有必要的. 特别是数据变化大.或者数据增量大的场景,例如物联网(IoT),每天单库可能新增TB级的增量. 比如 <PostgreSQL 如何潇洒的处理每天上百TB的数据增量> 指的就是IoT场景. 这样的场景,

PostgreSQL安装、配置及简单使用方法_PostgreSQL

一.PostgreSQL简介 1.什么是PostgreSQL PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON何JSONB类型,数组类型)和自定义类型.而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数.触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python.PL/Tcl,等等. 2.PostgreSQL数

PostgreSQL primary-standby failback tools : pg_rewind(have bug)

将要加入PostgreSQL 9.5了 http://hlinnaka.iki.fi/2015/03/23/pg_rewind-in-postgresql-9-5/ https://github.com/vmware/pg_rewind 在数据库变得比较大时, 例如上TB, 如果部署了PostgreSQL primary-standby 流复制或者log shipping HA. 当发生了failover, old primary节点可能因为某些原因需要重新同步数据.  在广域网上, 由于网络异

PostgreSQL HOT STANDBY using log shipping

PostgreSQL HOT STANDBY by log shipping 测试:一.准备硬件1. 主节点硬件配置DISK : 146GB*6MEM : 14GBCPU : 2.83GHz*82. standby节点硬件配置DISK : 146GB*4MEM : 8GBCPU : 2.0GHz*8 二.准备环境1. 系统Red Hat Enterprise Linux Server release 5.5 (Tikanga) x642. 时钟同步8 * * * * /usr/sbin/ntpd

PostgreSQL 9.0 流复制介绍

PostgreSQL9提供了一个非常兴奋的功能,hot-standby,功能与ORACLE 11G的ACTIVE STANDBY类似.并且增加了流复制的功能,这个与oracle 的standby redo log功能类似,大大的缩短了备份库与主库的事务间隔. HOT-STANDBY可以提供容灾,恢复的同时可以把数据库打开,提供查询功能.以前的版本恢复的时候是不能打开的. 首先看一张postgreSQL的高可用,负载均衡,复制特征矩阵图 这里有一个很好的特性 Slaves accept read-

PostgreSQL 9.3 Have pg_basebackup --write-recovery-conf output a minimal recovery.conf

Have pg_basebackup --write-recovery-conf output a minimal recovery.conf (Zoltán B?sz?rményi, Magnus Hagander) This simplifies setting up a standby server. 个人感觉没有太大的意义. [测试] -- 命令行帮助 pg93@db-172-16-3-33-> pg_basebackup --help pg_basebackup takes a bas

PostgreSQL central stream replication unlinked use (scp, cp, pg_basebackup ...)

前面介绍了集中式PITR备份的架构. http://blog.163.com/digoal@126/blog/static/163877040201451711013770/ 本文介绍一下不使用虚拟机的情况下, 稍微细节的东西, 即创建基础数据时规避文件夹冲突问题. 创建基础备份的方法比较多, 例如scp, cp或者pg_basebackup , 下面分别介绍一下. 1. 使用scp      -r      Recursively copy entire directories.  Note