PostgreSQL 数据库灾备要点与举例说明
数据库灾备(Disaster Recovery, DR)是确保业务连续性的核心环节,其目标是在主生产环境遭遇计划外中断(如硬件故障、自然灾害、人为错误、数据损坏)时,能快速恢复数据和服务。PostgreSQL 因其强大和开源特性,提供了多种高效的灾备方案。
一、灾备核心目标:RPO 与 RTO
在制定灾备方案前,必须明确两个关键指标:
- RPO(Recovery Point Objective):恢复点目标。指业务能容忍的最大数据丢失量。例如,RPO=15分钟,意味着灾难发生时,最多允许丢失15分钟的数据。
- RTO(Recovery Time Objective):恢复时间目标。指灾难发生到系统恢复服务所需的最长时间。例如,RTO=1小时,意味着必须在1小时内恢复服务。
不同的灾备技术可以实现不同的 RPO 和 RTO。
二、PostgreSQL 主要灾备技术要点
以下是 PostgreSQL 实现灾备的几种关键技术,各有其适用场景和优缺点。
1. 基于日志文件传输的物理复制(流复制)
这是 PostgreSQL 最核心、最常用的高可用和灾备方案。
-
要点:
- 原理:主库(Master)将预写日志(WAL)记录通过 TCP 连接实时或异步地传输到一个或多个备用库(Standby)。