三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

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

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

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

目录
  • Postgresql基础备份+增量归档日志实现PITR
    • 一、What is PITR
    • 二、PITR的工作流程
    • 三、使用前提
      • 四、具体实现步骤
        • 1、生成基础备份

一、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
← 返回列表