备份与恢复测试:IT 团队的实用指南
2026-08-12
2026-08-12
2026-08-07
2026-08-04
PostgreSQL 是一款流行的开源对象关系型数据库管理系统 (RDBMS)。对于任何以 PostgreSQL 驱动的企业来说,稳健的 PostgreSQL 备份策略对于保护数据免受人为错误、系统故障、勒索软件攻击以及确保合规性都是必不可少的。
在本指南中,我们将通过 6 种方法为您介绍备份和恢复 PostgreSQL 数据库的最可靠方式:命令行、pgAdmin 4 图形界面、快速转储、Cron 任务和 i2Backup(企业级备份解决方案)。
命令行界面 (CLI) 是管理 PostgreSQL 备份的常用方式。它使用两个原生工具:用于创建备份的 pg_dump 和用于恢复数据的 psql 或 pg_restore。此方法支持备份特定表,并可放入脚本中进行调度。但它不支持时间点恢复。
详细步骤如下:
步骤 1. 导航到 PostgreSQL bin 文件夹。通常位于:C:\Program Files\PostgreSQL\16\。
步骤 2. 找到 “bin” 文件夹,右键单击它,选择 “Open in Terminal“。
步骤 3. 要创建单个数据库的标准备份,请使用以下结构:
pg_dump -U [username] -W -F t [database] > c:\[backup location]

步骤 4. 系统将提示您输入密码。输入密码并按 “Enter“。备份完成后,前往备份位置检查备份文件。
注意:
1. 如果要备份所有 PostgreSQL,请使用 ./pg_dumpall。如果只想备份 schema,请使用 ./pg_dumpall。
2. 如果您使用 Docker,要在 Docker 中备份 PostgreSQL 数据库:
3. 如果要备份 PostgreSQL 到 AWS S3,请配置 AWS CLI:
要恢复 PostgreSQL,您可以使用以下脚本。
1. 恢复纯文本 (.sql) 文件:
psql -U [username] -d [target_database] < [backup_file].sql
2. 恢复自定义/压缩 (.dump) 文件:
如果使用了 -Fc 标志则需要此方法。
pg_restore -U [username] -d [target_database] [backup_file].dump
pgAdmin 4 提供了管理备份的强大图形化方式。此方法非常适合一次性备份、初学者或希望直观选择特定数据库对象的开发人员。但 pgAdmin 较难自动化;对于非常大的数据库速度较慢。
请按照以下步骤操作:
步骤 1. 打开 pgAdmin,展开 “Servers” 树,找到您要备份的数据库。
步骤 2. 右键单击数据库名称,从上下文菜单中选择 “Backup…“。
步骤 3. 然后配置设置:
步骤 4. 在 Options 选项卡中,如果不需要完整备份,可以选择 “Only Data” 或 “Only Schema“。
步骤 5. 单击 Backup 执行。您可以在右下角的 “Processes” 仪表板中监控进度。

要从 pgAdmin4 恢复数据库,请按照以下步骤操作:
步骤 1. 创建一个新的空目标数据库
步骤 2. 右键单击目标数据库并选择 “Restore…“。
步骤 3. 选择文件:
步骤 4. 在 Options 选项卡下,如果您想在重新创建之前删除现有对象,启用 “Clean before restore” 会很有用。
步骤 5. 单击 “Restore“。完成后会显示通知。
DBeaver 深受开发人员喜爱,因为它是一个通用工具,几乎可以与任何数据库引擎配合使用。虽然它提供了流畅的 “Quick Dumps” 界面,但它依赖您本地的 PostgreSQL 安装来执行实际操作。
DBeaver 具有直观的 UI,适用于快速数据导出,但由于是基于 Java 构建的,不太适合调度保护且资源占用较高。
以下是使用 DBeaver 的步骤。
准备完成后,请按照以下步骤操作。
步骤 1. 右键单击您的数据库名称,导航到 “Tools“,然后选择 “Backup“。
步骤 2. 选择要包含的特定 schema 或表。
步骤 3. 选择格式——Plain 或 Custom
步骤 4. 选择目标位置(本地磁盘或外部驱动器),然后单击 “Start“。

手动备份适合一次性任务,但生产数据库需要自动化。在 Linux 和 macOS 上,调度备份最可靠的方式是使用 Cron Jobs。但如果您不熟悉 Cron Jobs,操作起来可能比较困难。
Cron 任务在后台运行,因此它们无法在被提示时 “输入” 密码。您有两个专业选项来处理此问题:
与其将长命令直接放在 crontab 中,不如创建一个简单的 bash 脚本 (backup_db.sh)。这允许您添加日期戳和自动清理等功能。
#!/bin/bash
# 配置
DB_NAME="my_database"
BACKUP_DIR="/home/user/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
# 创建备份(压缩)
export PGPASSWORD='your_secure_password'
pg_dump -U postgres -d $DB_NAME | gzip > $BACKUP_DIR/db_backup_$DATE.sql.gz
# 可选:删除 30 天前的旧备份以节省空间
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +30 -delete
Crontab 是您告诉系统何时运行脚本的调度表。
步骤 1. 打开编辑器:crontab -e
步骤 2. 在底部添加一行以调度备份。例如,要每天晚上 2:00 运行:
00 02 * * * /home/user/scripts/backup_db.sh >> /home/user/logs/backup.log 2>&1
Cron 调度说明:
虽然手动脚本和开源 GUI 对于小型项目有效,但拥有海量数据集和严格正常运行时间要求的企业环境通常需要更强大、”无人值守” 的解决方案。
对于无法承受数据丢失或手动配置错误风险的组织,英方软件的 i2Backup 提供了一种专业且简单的方式,为所有关键的 PostgreSQL 数据库创建调度备份。它支持多种备份存储,如本地/外部磁盘、ZFS、NAS、重复数据删除存储、AWS S3 存储等。
i2Backup for PostgreSQL 的关键功能和优势:
对比:i2Backup vs. 手动方法
| 功能 | 手动脚本 (Cron/CLI) | i2Backup (企业级) |
|---|---|---|
| 设置 | 每台服务器需大量手动工作 | 快速、基于策略的部署 |
| 数据传输 | 通常仅完整转储 | 支持真正的增量备份 |
| 监控 | 手动检查日志 | 自动化告警和报告 |
| 可扩展性 | 大规模管理困难 | 可扩展备份节点,支持增长 |
如何使用 i2Backup 备份 PostgreSQL 数据库:
步骤 1. 申请 i2Backup 免费试用,英方软件的工程师将帮助您在环境中安装和部署 i2Backup。
步骤 2. 在仪表板上,单击 “Backup & Restore” > “App Protect” > “Backup Rule“。然后单击 “New” 按钮。

步骤 3. 在基本参数窗格中,输入 名称,选择 “PostgreSQL” 作为规则类型。然后根据需要填写其他参数。单击 “Next“。

步骤 4. 在此步骤中,选择 “Backup Client“,然后选择一个存储作为 “Backup Target“。单击 “Next“。

步骤 5. 在 “Backup content & Parameters” 窗口中选择一个实例。在 “Backup Schedule” 窗口中,可以设置 “备份计划”,包括备份类型和保留规则。

步骤 6. 如果需要,在 “Advanced” 中配置压缩和加密规则。然后 “确认并提交” 备份任务。

选择正确的方法来备份 PostgreSQL 数据库完全取决于您的环境和数据的价值。对于开发人员和小型项目,原生命令行工具和 pgAdmin 等 GUI 提供了一种可靠、免费的方式来管理手动快照和简单的自动化。这些方法提供了本地开发和小型生产任务所需的灵活性,且无需额外成本。
然而,随着数据规模的增长,手动脚本通常会因 “不可见” 故障和高存储需求而成为隐患。对于关键任务环境,像英方软件的 i2Backup 这样的企业级解决方案是最有效的选择,提供手动方法无法比拟的自动化、增量和可扩展保护。除了备份 PostgreSQL,它还支持备份许多其他平台,如 SQL Server 数据备份。
公告
邮件
销售