---
title: PostgreSQL 时间点恢复(PITR) 基于 WAL 与基础备份实战
keywords: PITR, wal_level, archive_mode, archive_command, pg_basebackup, restore_command,
recovery.signal
description: 配置 WAL 归档与基础备份,使用 restore_command 与 recovery.signal 执行时间点恢复,保障数据库可回滚能力。
tags:
- PITR
- PostgreSQL
- archive_command
- archive_mode
- pg_basebackup
- recovery.signal
- restore_command
- wal_level
- 备份
- 数据库
categories:
- 文章资讯
- 技术教程
---
启用 WAL 归档(postgresql.conf):
wal_level = replica
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/wal_archive/%f'
执行基础备份:
pg_basebackup -h 127.0.0.1 -p 5432 -U replicator -D /backups/base_2025_11_26 -X fetch -P
准备恢复目录与参数:
echo 'restore_command = "cp /var/lib/postgresql/wal_archive/%f %p"' >> /backups/base_2025_11_26/postgresql.auto.conf
touch /backups/base_2025_11_26/recovery.signal
echo "recovery_target_time = '2025-11-26 10:00:00+00'" >> /backups/base_2025_11_26/postgresql.auto.conf
启动使用备份的数据目录:
pg_ctl -D /backups/base_2025_11_26 start

发表评论 取消回复