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导入。

相关推荐
阿杰学AI10 分钟前
AI核心知识129—大语言模型之 向量数据库(简洁且通俗易懂版)
数据库·人工智能·ai·语言模型·自然语言处理·向量数据库·vector database
SPC的存折12 分钟前
D在 Alpine 容器中手动搭建 Discuz 全攻略(包含镜像一键部署脚本,可直接用)
linux·数据库·mysql·缓存
李兆龙的博客18 分钟前
从一到无穷大 #67 大查询根因分析 - 从 PinSQL 到 RCRank
数据库·时序数据库
AgCl2335 分钟前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
junqiduhang42 分钟前
Win11 MySQL 8.0 安装八步走
数据库·mysql
zhangchaoxies1 小时前
golang如何使用SQLx原生SQL查询_golang SQLx原生SQL查询使用方法
jvm·数据库·python
m0_743623921 小时前
mysql如何优化InnoDB缓冲池大小_mysql缓冲池内存调优
jvm·数据库·python
孟意昶1 小时前
Doris专题31-SQL手册-基础元素
大数据·数据库·数据仓库·分布式·sql·知识图谱·doris
m0_617881421 小时前
如何操作 XML 数据_XMLTYPE 与 EXTRACT 函数解析节点
jvm·数据库·python
qq_334563551 小时前
golang如何实现SSTable持久化_golang SSTable持久化实现要点
jvm·数据库·python