debian

Debian恢复PostgreSQL数据步骤

小樊
44
2025-10-12 20:30:34
栏目: 云计算

Debian系统恢复PostgreSQL数据的通用步骤

1. 准备工作:备份当前数据

在进行任何恢复操作前,务必备份当前数据库集群,防止恢复过程中出现意外导致数据进一步丢失。

sudo pg_dumpall -U postgres > /path/to/backup/all-databases.sql

2. 停止PostgreSQL服务

恢复操作需要确保数据一致性,因此需先停止PostgreSQL服务:

sudo systemctl stop postgresql

3. 根据备份类型选择恢复方式

(1)逻辑备份恢复(适用于.dump/.sql格式备份)

(2)物理备份恢复(适用于pg_basebackup生成的完整数据目录备份)

若使用pg_basebackup做过物理备份(如备份到/backup/full_backup目录),需替换当前数据目录内容并修复权限:

sudo rm -rf /var/lib/postgresql/<版本号>/main/*  # 清空当前数据目录(需替换<版本号>,如16/main)
sudo cp -r /backup/full_backup/* /var/lib/postgresql/<版本号>/main/  # 复制备份文件
sudo chown -R postgres:postgres /var/lib/postgresql/<版本号>/main/  # 修复所有权

4. 启动PostgreSQL服务并验证

恢复完成后,启动服务并检查数据完整性:

sudo systemctl start postgresql
# 验证数据库列表
sudo -u postgres psql -c "\l"
# 连接目标数据库并检查表数据
sudo -u postgres psql -d database_name -c "\dt"
sudo -u postgres psql -d database_name -c "SELECT * FROM table_name LIMIT 5;"

5. 高级场景:基于时间点恢复(PITR,需提前开启WAL归档)

若需恢复到某一特定时间点(如误删数据前的状态),需提前配置WAL归档并完成以下步骤:

注意事项

0
看了该问题的人还看了