我得到了一个数据库文件,我不知道谁转储了它的用户ID或它的特权。
我在pg_admin4(v3.0)和OS:Windows 10上使用PostgreSQL 9.6.7-1
首先,我在pgadmin中创建了一个与给定文件同名的数据库。
我使用了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
命令,但我得到相同的结果。
答案 0 :(得分:1)
看来,您获得的转储不是完整的备份。它仅具有数据,而没有对象定义。也就是说,它是由pg_dump使用-a
,--data-only
或--section=data
创建的。
除非您已经知道对象定义来自其他来源(例如,具有相同架构定义的现有数据库服务器,或使用pg_dump -s
生成的转储文件),否则将很难加载此对象数据。
答案 1 :(得分:-1)
{已解决} 请检查要导入到数据库中的Postgresql pgAdmin4的版本和“ .Sql” 文件的 版本,而不要还原在公开场合,您应该直接在数据库本身上进行还原。
2:-删除数据库,然后再次在同一数据库(上重新创建新的数据库(name ='xyz') >'xyz'**-> RightClick->还原->文件名->'选择(形成“ .sql”)->还原**)比-> 刷新数据库。 并以此在公共模式上方创建一个新模式。