DBeaver如何将PostgreSQL备份文件.bak还原成原数据库?
摘要:使用 DBeaver 还原 PostgreSQL 备份文件 (.bak) 技术文档 💡 作者:古渡蓝按 个人微信公众号:微信公众号(深入浅出谈java) 感觉本篇对你有帮助可以关注一下,会不定期更新知识和面试
使用 DBeaver 还原 PostgreSQL 备份文件 (.bak) 技术文档
💡 作者:古渡蓝按
个人微信公众号:微信公众号(深入浅出谈java)
感觉本篇对你有帮助可以关注一下,会不定期更新知识和面试资料、技巧!!!
1. 概述
PostgreSQL 的 .bak 文件通常是使用 pg_dump 工具以自定义格式(-Fc)生成的逻辑备份。DBeaver 作为通用数据库客户端,提供了图形化的“恢复”功能,其底层实际调用 PostgreSQL 自带的 pg_restore 命令行工具。本文档详细介绍如何通过 DBeaver 完成 .bak 文件的还原,并涵盖常见错误及解决方案。
2. 前置条件
DBeaver 已安装(推荐企业版或社区版 22.0+)。
PostgreSQL 数据库 服务正常运行,且网络可达。
拥有目标数据库的连接权限,推荐使用超级用户(如 postgres)或至少具备 CREATE DATABASE、CREATE ROLE 等恢复所需权限。
待还原的 .bak 备份文件(例如 plmznzs_20260127_020000.backup)。
了解备份文件对应的 PostgreSQL 主版本(例如 14、15、16)。还原时使用的 pg_restore 版本应与源数据库主版本一致或更高。
3. 在 DBeaver 中配置 PostgreSQL 本地客户端
DBeaver 需要知道 pg_restore 程序的路径。默认情况下可能未自动识别,需手动配置。
3.1 打开驱动管理器
菜单栏:数据库 → 驱动管理器
在驱动列表中找到 PostgreSQL,选中后点击 编辑(或双击)。
3.2 设置本地客户端
在弹出的驱动编辑窗口中,切换到 “本地客户端” 选项卡。
点击 “添加主目录”,选择 PostgreSQL 安装目录下的 bin 文件夹。
Windows 示例:C:\Program Files\PostgreSQL\15\bin
Linux 示例:/usr/bin
Mac 示例:/Library/PostgreSQL/15/bin
DBeaver 会自动检测到 pg_restore.exe(或 pg_restore),状态显示为 “已找到”。
点击 确定 保存配置。
说明:如果本地未安装 PostgreSQL,可从 PostgreSQL 官网 下载对应操作系统的二进制包,或直接使用 DBeaver 自带驱动目录中的客户端工具(DBeaver 首次连接时会自动下载,路径通常在 %APPDATA%\DBeaverData\drivers\clients\postgresql\win\xx)。
4. 使用 DBeaver 恢复向导还原备份
4.1 连接目标数据库
在 DBeaver 中创建并连接到目标 PostgreSQL 数据库(例如数据库名为 hy1)。
确保连接用户拥有足够的权限。
4.2 打开恢复工具
在数据库导航器中,右键单击 目标数据库。
选择 工具 → 恢复。
4.3 配置恢复选项
在弹出的“恢复”对话框中:
选项
操作说明
备份文件
点击“浏览”按钮,选择 .bak 备份文件。
格式
选择 自定义(对应 --format=c)。
清理对象
建议勾选,对应 --clean,在恢复前删除目标数据库中的已有对象,避免冲突。
创建数据库
可选,对应 --create,如果备份中包含 CREATE DATABASE 语句,会尝试创建数据库(需超级用户权限)。
单事务模式
建议勾选,对应 --single-transaction,将整个恢复包装在一个事务中,失败时自动回滚。
忽略所有者
可选,对应 --no-owner。当备份中的角色(用户)在目标实例中不存在时,使用此选项可跳过所有权错误。
额外命令行参数
可填入其他参数,如 -j 4(并行恢复,提高速度)、--if-exists(与 --clean 配合,避免对象不存在报错)。
关键参数说明:
--clean:强烈推荐,避免新旧对象冲突。
--no-owner:当遇到“角色不存在”错误时必备。
--create:如果目标数据库不存在且希望自动创建,可添加。
4.4 执行恢复
点击 “开始” 按钮。
DBeaver 会调用 pg_restore 并在“任务”视图中显示执行日志。
等待恢复完成,若成功则提示“任务成功”。
