pgadmin4与navicat区别与数据库备份还原方案

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可设置定时计划进行备份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值