如何用Linux pgAdmin恢复数据
导读:在 Linux 上使用 pgAdmin 恢复 PostgreSQL 数据的完整步骤 一 准备与前提 安装并启动 pgAdmin 4,使用具有足够权限的账号连接到目标 PostgreSQL 服务器(常见为 postgres 角色或具备 CR...
在 Linux 上使用 pgAdmin 恢复 PostgreSQL 数据的完整步骤
一 准备与前提
- 安装并启动 pgAdmin 4,使用具有足够权限的账号连接到目标 PostgreSQL 服务器(常见为 postgres 角色或具备 CREATEDB/CREATEROLE 权限的用户)。
- 准备可用的备份文件:
- 逻辑备份:.sql(纯文本 SQL 脚本)、.backup/.dump(自定义或目录格式,通常由 pg_dump 生成)。
- 物理备份:数据目录的文件系统级拷贝(如使用 pg_basebackup 生成)。
- 恢复前建议:在非生产环境先演练;确认备份文件完整可用;选择低峰时段执行;确保目标库不存在重要数据或已做好备份。
- 注意:对生产库执行恢复会替换目标库内容,务必谨慎操作。
二 图形界面恢复步骤(适合 .sql 与 .backup/.dump)
- 创建目标数据库(若需要):在左侧对象树中右键 Databases → Create → Database,填写数据库名并指定合适的所有者(如 postgres)。
- 执行恢复:
- 方式 A(整库恢复):右键目标数据库 → Restore → 在对话框中选择备份文件,按需填写 Role name(执行恢复的角色),点击 Restore 开始。
- 方式 B(按模式恢复):展开目标数据库 → Schemas → 右键目标 Schema(如 public)→ Restore → 选择备份文件并恢复。
- 等待恢复完成提示,完成后可刷新对象树或执行简单查询验证数据。
三 按备份类型选择正确做法
- 逻辑备份(.sql 脚本):
- 适合小到中等规模库、跨版本迁移或需要可读脚本审计的场景。
- 在 pgAdmin 中可直接用 Restore 执行 .sql;若失败,可用命令行:
- psql -U postgres -d your_db -f /path/file.sql
- 自定义/目录格式(.backup/.dump):
- 支持并行、选择性对象恢复、包含大对象,更适合大中型库。
- 在 pgAdmin 中用 Restore 选择该文件;若失败,可用命令行:
- pg_restore -U postgres -d your_db /path/file.backup
- 物理备份(pg_basebackup 生成):
- 用于同版本的快速全量恢复或搭建流复制备库。
- 停止数据库服务,清空/备份原数据目录,将备份拷贝到数据目录,设置正确的 PGDATA 与权限,启动服务;如需时间点恢复,需配合 WAL 归档与 pg_rman 等工具。
四 常见问题与排查
- 权限不足:确保用于恢复的 Role 具备在目标库上创建对象、写入数据的权限(常见为 postgres 或具备相应权限的专用角色)。
- 连接或认证失败:核对 主机、端口、数据库名、用户名/密码;必要时在“服务器”属性中更新连接信息。
- 备份文件损坏或不兼容:校验文件完整性;确认 备份格式与恢复方式匹配(如目录/自定义格式用 pg_restore,纯 SQL 用 psql);跨大版本恢复需评估兼容性。
- 目标库非空导致冲突:恢复会覆盖目标库内容,建议先备份现有库或使用新库作为恢复目标。
- 大对象或性能问题:对大库优先使用自定义/目录格式并启用并行;必要时在低峰时段执行。
五 命令行备选方案(当图形界面受限时)
- 纯 SQL 脚本:
- psql -U postgres -h localhost -p 5432 -d target_db -f /path/file.sql
- 自定义/目录格式:
- pg_restore -U postgres -h localhost -p 5432 -d target_db -j 4 /path/file.backup(-j 为并行度)
- 物理恢复(pg_basebackup 场景):
- 停库 → 备份原 $PGDATA → 将备份解压/拷贝至 $PGDATA → 启动服务;如需 PITR,配置 WAL 归档并使用 pg_rman 执行恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用Linux pgAdmin恢复数据
本文地址: https://pptw.com/jishu/761144.html
