centos

PostgreSQL在CentOS上的备份恢复流程是什么

小樊
37
2025-10-24 06:51:54
栏目: 云计算

PostgreSQL在CentOS上的备份恢复流程

一、备份流程

PostgreSQL在CentOS上的备份主要分为逻辑备份(基于SQL语句或自定义格式)和物理备份(基于数据目录)两类,以下是具体操作:

1. 逻辑备份(推荐日常使用)

逻辑备份通过pg_dump工具实现,将数据库结构和数据导出为SQL脚本或自定义格式文件,适用于跨版本迁移或部分数据恢复。

常用命令示例:

2. 物理备份(推荐时间点恢复)

物理备份通过pg_basebackup工具复制整个数据目录(包括WAL日志),适用于需要精确恢复到某一时间点的场景(如灾难恢复)。

常用命令示例:

3. 自动化备份(可选)

通过cron定时任务定期执行备份脚本,确保数据定期保存。

脚本示例(/path/to/backup_postgresql.sh):

#!/bin/bash
USER="postgres"
DB_NAME="数据库名"
BACKUP_DIR="/path/to/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.dump"

# 执行备份
su - postgres -c "pg_dump -U $USER -d $DB_NAME -F c -b -v -f $BACKUP_FILE"

# 删除7天前的备份(可选)
find $BACKUP_DIR -type f -name "${DB_NAME}_*.dump" -mtime +7 -exec rm {} \;

添加定时任务(每天凌晨2点执行):

crontab -e

添加以下内容:

0 2 * * * /path/to/backup_postgresql.sh

二、恢复流程

恢复流程需根据备份类型选择对应工具,以下是具体操作:

1. 准备工作

2. 逻辑恢复

逻辑恢复通过psql(SQL格式)或pg_restore(自定义格式)工具将备份数据导入数据库。

常用命令示例:

3. 物理恢复

物理恢复通过pg_basebackup工具覆盖现有数据目录(需停止服务),适用于灾难恢复。

常用命令示例:

4. 恢复WAL日志(可选,时间点恢复)

若备份后生成了WAL日志(如物理备份后有新数据),需通过pg_waldump查看日志并重放,实现时间点恢复(PITR)。

常用命令示例:

5. 启动服务并验证

注意事项

  1. 权限问题:所有备份/恢复操作需以postgres用户或root用户执行,避免权限不足。
  2. 备份存储:备份文件需存放在安全位置(如异地服务器、云存储),避免单点故障。
  3. 测试恢复:定期在测试环境中模拟恢复流程,确保备份文件可用。
  4. 监控性能:备份时选择低峰时段,避免影响数据库正常运行。
  5. 版本兼容性:逻辑备份的数据库版本需与恢复环境的版本兼容(如PostgreSQL 15备份的文件可在15及以上版本恢复)。

0
看了该问题的人还看了