pgadmin4与navicat区别与数据库备份还原方案
pgadmin4
综合问题
- 数据插入错误后,序列仍然会增加,手动更新自增数据库不应手动加ID
1.backup文件还原
- 备份会保存模式名,根据模式名还原信息
- 还原结构和数据,customer backup格式,数据和结构全部还原 ,序列和约束都存在
- 还原结构,customer backup格式,结构全部还原 , 结构还原的同时,约束存在,序列自动都从1开始
- 还原数据,customer backup格式 ,数据全部还原,序列也相应还原
2.tar文件还原
- 保存为backup 与保存自定义模式 类似
3.无格式文件还原
-
PostgreSql的备份和还原分别是通过pg_dump和pg_restore执行的。PostgreSql的备份有三种形式,分别是自定义、tar格式、无格式三种类型。自定义和tar格式在备份时形成的是.backup文件,而无格式在备份时形成的是文本文件。在还原时,格式只能是自定义或tar格式,也就是说pg_dump使用无格式方式备份的文件,是不能用pg_restore还原的;pg_restore只能还原backup文件。
-
那么文本文件又是怎么还原呢?只能通过命令来执行。cmd进入执行框,用cd命令将路径改到数据库安装路径的bin文件夹下,输入以下命令:
psql -h localhost -U username -d mydb < mydb.bak
其中username是数据库的用户名,mydb是要还原的数据库名称,mydb.bak是自己备份的文本文件,在执行命令时要加入路径
-
4.配置项
- predata:指数据定义项(字段名,类型等),不包括实际数据,主键,外键,约束,触发器等。 只导入此数据,因为无主键,Pgadmin是不能编辑的
- data:指数据项(实际数据,序列信息),不包括主键,外键,约束,触发器等,需要在predata基础上导入
- postdata:指约束项(主外键,触发器等)
- 仅数据:包括数据项及序列信息
- 仅结构:包括表,字段,约束等
- 使用插入命令,则可转换为sql语句,而不是pg_dump的copy形式,用于保存为sql文件格式所用。 (导出的sql格式包含自动创建模式语句)
- 一般不勾选创建/删除数据库语句,防止不小心更改原来的库
Navicat
综合问题
-
[ERR] 错误: 字段 p.proisagg 不存在 LINE 1: ...atabase d on d.datname = current_database() WHERE p.proisagg... ^ HINT: 也许您想要引用列"p.prolang"
- 此错误是由于Navicat版本 与 Postgre版本不对应,postgre版本过高
-
由于上述错误,无法通过navicat的库或模式右键直接转储为sql文件
- 单表可以直接存储不报错
- 数据传输工具存储整个库有此问题也可以存储
-
pgadmin导出的无格式文本,无法当作sql文件直接用,导入navicat失败
1.数据传输工具转储sql
- 勾选级联删除后,将删除原有同名表格再重新创建,整个传输进来
- 数据传输工具,只能结构与数据全部存储
2.模式或库直接右键转储sql
- 由于版本原因,无法成功
3.navicat备份文件
-
Navicat独有
-
备份nb3格式文件
-
还原时在模式下提取nb3备份数据
-
可以提取为sql格式文件,供其他数据库还原
备份还原方案
-
使用pgadmin ,backup文件
- 备份一份结构+数据
- 还原时,需要删除整个原模式,再执行还原
-
使用Navicat存储为sql数据
- 存储配置:
- 勾选级联删除选项
- 勾选模式名则带有该模式名的表
- 不勾选模式名,可在任意模式中运行sql语句,(不含有模式名时,会删除其他模式同名表)
- 每次还原,先清除后创建,插入
- 存储的sql格式,不包括自动创建模式的语句
- 存储配置:
-
使用Navicat备份nb3文件,一键操作
定时备份
- pgadmin无定时备份功能
- navicat可设置定时计划进行备份