Navicat 备份与还原 PostgreSQL 数据库

在一个MES项目上用到了PostgreSQL数据库,由于以前没有操作过,

于是咨询了一下豆包该如何备份还原,以下是豆包老师给讲解的。

提问:

讲解下使用Navicat备份PG数据库,还原数据库的操作步骤

回答:

Navicat 对 PostgreSQL 提供Navicat 专属备份 (.nb3 格式)和SQL 文件导出 / 导入(通用格式)两种核心方式,以下是详细步骤。

一、前提准备

①打开 Navicat,成功连接到目标 PostgreSQL 服务器与数据库。

②确认当前用户有备份 / 还原权限(需超级用户或对应数据库所有权限)。

③准备好备份文件存储路径(建议非系统盘,空间充足)。

二、方式一:Navicat 专属备份(.nb3 格式)

适合在 Navicat 环境内快速备份还原,保留完整对象信息。

1. 备份步骤

步骤 操作
1 右键目标数据库 → 选择备份新建备份
2 (可选)在常规页签填写备份备注(如 "20260313 全量备份")
3 对象页签选择备份范围: ✅ 备份整个库:勾选数据库 ✅ 备份部分对象:勾选指定表 / 视图 / 函数等
4 点击开始备份,等待进度完成;备份文件自动生成.nb3 格式
5 (可选)右键备份文件 → 打开文件所在位置,复制备份文件到安全路径

2. 还原步骤

步骤 操作
1 (重要)先在目标服务器创建同名空数据库(还原建议同名,避免路径 / 权限问题)Navicat
2 打开目标数据库的备份 面板,右键空白处 → 还原备份
3 选择.nb3 备份文件,点击打开
4 确认还原选项,点击开始还原,等待完成
5 刷新数据库,验证表、数据、函数等对象是否完整恢复

三、方式二:SQL 文件导出 / 导入(通用格式)

跨环境迁移、兼容其他 PostgreSQL 工具的首选方式。

1. 导出(备份)步骤

步骤 操作
1 右键目标数据库 → 选择转储 SQL 文件结构和数据(按需选择仅结构 / 仅数据)
2 配置导出选项: ✅ 保存路径:选择非系统盘,文件名建议含日期(如db_20260313.sql) ✅ 编码:推荐 UTF-8(避免中文乱码) ✅ 勾选:包含创建数据库语句、存储过程 / 函数、触发器等(按需)
3 点击开始,等待导出完成;生成.sql 格式文件

2. 导入(还原)步骤

步骤 操作
1 (可选)创建目标数据库(若导出时未包含创建语句)
2 右键目标数据库 → 选择运行 SQL 文件
3 选择.sql 备份文件,设置编码(与导出一致)
4 点击开始,勾选 "显示执行结果",等待执行完成
5 刷新数据库,验证数据与对象是否完整导入

四、关键注意事项

1、权限要求 :备份 / 还原需 PostgreSQL 用户有超级用户数据库 OWNER 权限,否则可能失败。

2、中文乱码 :导出 / 导入时统一编码为UTF-8,避免中文显示异常。

3、大数据库备份:优先选择SQL 文件导出,并启用 "分文件导出",避免单个文件过大。

4、还原前备份:重要数据还原前,务必先备份当前数据库,防止覆盖丢失。

5、跨版本兼容:确保 Navicat 版本与 PostgreSQL 版本兼容(推荐 Navicat 16/17 适配 PostgreSQL 12-16)。

6、对象依赖:还原时注意表、视图、函数的依赖关系,按正确顺序还原(如先表后视图)。

五、常见问题解决

1、还原失败:检查目标数据库是否为空、权限是否足够、备份文件是否完整。

2、中文乱码:统一编码为 UTF-8,导出时勾选 "使用 UTF-8",导入时选择对应编码。

3、大文件导入超时:在 Navicat 中延长查询超时时间,或使用 PostgreSQL 命令行psql -f 文件名.sql导入。

相关推荐
逸Y 仙X2 小时前
文章十四:ElasticSearch Reindex重建索引
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
冷血~多好2 小时前
mysql实现主从复制以及springboot实现读写分离
java·数据库·mysql·springboot
两年半的个人练习生^_^2 小时前
如何自己实现多数据源
数据库
AI周红伟2 小时前
周红伟:关于OpenClaw安全使用提醒
大数据·数据库·人工智能·安全·腾讯云·openclaw
斯密码赛我是美女2 小时前
周报--2
android·数据库
marsh02062 小时前
23 openclaw防止SQL注入:参数化查询与ORM安全使用
数据库·sql·安全·ai·编程·技术
原来是猿2 小时前
为什么要配置环境变量?
linux·数据库·python
星辰_mya2 小时前
MVCC 与事务隔离:MySQL 如何实现“读不阻塞写”?
java·数据库·mysql·面试·架构
m0_738120722 小时前
渗透测试——Ripper靶机详细横向渗透过程(rips扫描文件,水平横向越权,Webmin直接获取root权限)
linux·网络·数据库·安全·web安全·php