【问题标题】:pg_restore WARNING: errors ignored on restore: 62pg_restore 警告:还原时忽略错误:62
【发布时间】:2018-06-30 12:37:52
【问题描述】:

我得到了一个数据库文件,我不知道转储它的用户 ID 或它的权限。

我使用带有 pg_admin4(v3.0) 的 postgresql 9.6.7-1,操作系统:windows 10

  1. 首先,我在 pgadmin 中创建了一个与给定文件同名的数据库。

  2. 我使用restore 选项恢复文件,但几秒钟后

我收到的消息类型如下:

pg_restore: executing SEQUENCE SET xxxx
pg_restore: [archiver (db)] Error from TOC entry 4309; 0 0 SEQUENCE SET xxxx postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  relation "public.xxxx" does not exist
LINE 1: SELECT pg_catalog.setval('public.xxxx', 1, false);
                             ^
Command was: SELECT pg_catalog.setval('public.xxxx', 1, false);

最重要的是,警告:

“警告:还原时忽略错误:62”

与其他人的答案相比,我什至没有恢复一点数据。

我也试过了

pg_restore

命令,但我得到相同的结果。

【问题讨论】:

  • 被忽略的62个错误是什么?
  • 我添加了错误类型作为我的问题的编辑
  • 也许 'xxxx' 存在,但在不同的架构中?在脚本中,了解如何/是否创建了 xxxx。
  • 正如我所见,这些警告的前半部分具有相似的输出,但使用命令“COPY” public.xxxx (column1,column2,...) FROM stdin;而不是“选择”。到目前为止,还没有关于“创造”的任何信息。当你的意思是不同的模式时,你的意思是不同的数据库? .
  • 不,当我说 schema 时,我的意思是 schema。并且:select setval('xxxx', 1234); 通常添加在加载脚本的末尾,以将序列值设置为相应表列中的最大出现次数。

标签: postgresql psql pgadmin-4


【解决方案1】:

您收到的转储似乎不是完整的备份。它只有数据,没有对象定义。也就是说,它是由 pg_dump 使用-a--data-only--section=data 创建的。

除非您已经知道来自其他来源的对象定义是什么(例如,具有相同架构定义的现有数据库服务器,或使用pg_dump -s 生成的转储文件),否则您将很难加载这些数据。

【讨论】:

  • 您实际上是对的,我请求有关定义的信息,并且我获得了包含必要 sql 脚本的相同文件,并且在恢复后工作正常。
【解决方案2】:

{已解决} 请检查 Postgresql pgAdmin4 的版本“.Sql” 文件的版本 您要导入数据库,而不是恢复在公共场合,您应该直接在数据库本身进行还原。

2:- 删除数据库并再次在同一数据库中重新创建新的 database(name='xyz') & ('xyz'** ->右键单击->恢复->文件名->'select(格式化".sql")->恢复**) 比->刷新数据库。 并通过这样做,它会在公共架构上方创建 i 新架构..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 2015-01-05
    • 2020-05-25
    相关资源
    最近更新 更多