Postgresql基础备份+增量归档日志实现PITR

Postgresql基础备份+增量归档日志实现PITR

一、What is PITR

PITR是PostgreSQL中的一个重要功能特性,全称为Point-In-Time Recovery(基于时间点恢复)。它从PostgreSQL 8.0版本开始引入,该特性实现了基础备份+连续归档日志将数据库实例恢复到任意时间点。归档日志即WAL日志,WAL是PostgreSQL中用于保证数据完整性和可靠性的日志系统,它记录了所有对数据库所做的更改。在PITR中,我们需要开启WAL日志的归档(archiving)功能。

二、PITR的工作流程

  • 1.从backup_label文件获取checkpoint位点值
  • 2.从postgresql.conf(版本11之前是recovery.conf)获取restore_command、recovery_target_lsn\recovery_target_time\recovery_target_xid参数值
  • 3.通过restore_command 获取wal日志文件,然后从基础备份中的checkpoint位点开始回放wal日志
  • 4.回放完成后,会生成时间线历史文件,如:000000×.history

三、使用前提

主库需要开启归档,且wal日志级别为replica或者logical

wal_level = replica
archive_mode = on
archive_command = 'test ! -f /data/pgdata16/archive/%f && cp %p /data/pgdata16/archive/%f'

四、具体实现步骤

1、生成基础备份

[postgres@pgserver1]$ pg_basebackup -D /data/postgres/data -Fp -Xs -v -P -h 192.168.10.145 -p 3372 -U replication
posted @ 2026-05-18 10:30  数据库小白(专注)  阅读(13)  评论(0)    收藏  举报