我正在尝试将笔记本电脑上的开发数据库转移到工作站。 它给了我各种各样的错误,我不确定如何正确还原此数据库转储。 如果没有-1则它会完成,但是缺少许多对象。

目标计算机上的数据库名称与我从中转储的数据库不同。 但是我看不到与错误有什么关系。 在此转储/还原上是全新的。 我在pg_restore -l中看不到关于系统目录的任何信息pg_restore -l我没有任何线索...

D:\db>pg_restore -d checkpoint -U postgres --disable-triggers -x -O -
1 -v -n temp dump-1.backup
pg_restore: connecting to database for restore
Password:
pg_restore: creating TYPE "temp.my_agg"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 1037; 1247 89882 TYPE my_agg po
stgres
pg_restore: [archiver (db)] could not execute query: ERROR:  permission denied t
o create "pg_catalog.my_agg"
DETAIL:  System catalog modifications are currently disallowed.
    Command was: CREATE TYPE my_agg AS (
        ecnt integer,
        eids integer
);

删除-n temp似乎可以摆脱特权问题。 但是还会出现更多错误

pg_restore: creating FUNCTION "public.cmptime(timestamp without time zone, text,
 timestamp without time zone, text, text)"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 355; 1255 60129 FUNCTION cmptim
e(timestamp without time zone, text, timestamp without time zone, text, text) po
stgres
pg_restore: [archiver (db)] could not execute query: ERROR:  language "plv8" doe
s not exist
    Command was: CREATE FUNCTION cmptime(t0 timestamp without time zone, s0 text
, t1 timestamp without time zone, s1 text, rcode text) RETURN...

手动创建plv8和plpython扩展名之后。 那些语言错误消失了。 我对此FDW表有疑问。

pg_restore: creating FOREIGN TABLE "public.t1"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 204; 1259 25543 FOREIGN TABLE r
edrawing postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  server "myserver1"
does not exist
    Command was: CREATE FOREIGN TABLE t1 (
    fid bigint,
    pd_date text,
    team text,
    shift text,
    line text,
    opr1 te...

我试图创建FDW扩展。 但是FDW取决于公共架构。 删除-c --if-exists pg_restore选项,在每次尝试还原之前重新创建检查点数据库。

pg_restore: [archiver (db)] could not execute query: ERROR:  server "myserver1"
does not exist
    Command was: CREATE FOREIGN TABLE t1 (
    fid bigint,
    pd_date text,
    team text,
    shift text,
    line text,
    opr1 te...

FDW仍然有问题。 在遇到每个新的FDW错误后,我必须创建每个FDW服务器(我不记得它们了)。 循环执行此过程,直到所有FDW服务器错误消失(这实际上应该是如何实现无错误的dababase还原....?)。 下一个错误

pg_restore: [archiver (db)] could not execute query: ERROR:  server "myserver1"
does not exist
    Command was: CREATE FOREIGN TABLE t1 (
    fid bigint,
    pd_date text,
    team text,
    shift text,
    line text,
    opr1 te...

我已经物化视图来缓存plpython函数结果。 但他们的某些逻辑已被描述,无法轻易解决。

我想我的无错恢复到此结束。 必须删除-1单一交易模式。 总错误被忽略,从55降低到6。看起来大多数对象都回来了。

有什么办法可以忽略综合视图刷新过程...

#1楼 票数:0

错误消息看起来很奇怪-但是如果理解得很好,PostgreSQL会尝试在模式public恢复自定义数据类型,应该禁止什么-请尝试仅以SQL格式转储模式并确保,因此没有直接修改的pg_catalogue方案。

应该首先安装扩展-扩展安装包括两个部分:1:将rpm /编译后的代码安装到数据库服务器; 2:每个数据库的扩展注册。 备份仅应执行第二步。

错误消息pg_restore: [archiver (db)] could not execute query: ERROR: server "myserver1" does not exist是干净的-可能在语句CREATE SERVER失败的某处-可能由于缺少服务器扩展名。

  ask by Ben translate from so

未解决问题?本站智能推荐:

2回复

来自pgadmin3的pg_restore错误-Postgresql

我使用pgadmin3工具从system1备份了Postgresql数据库。 创建的备份文件扩展名为“.backup” 我试图在另一个安装了postgresql 9.0和pgadmin3 1.8的system2上恢复它但是我收到错误: 无法执行查询:错误:无法识别的配置参数“lock
1回复

从备份中恢复postgresql:pg_restore内存不足错误

我正在尝试从生产中恢复 postgresql 备份。 当我运行 pg_restore 时,会创建表,但尝试插入数据时该过程失败。 它耗尽了内存。 备份大小仅为 29 MB。 我怎样才能使恢复工作?
1回复

Postgresql的pg_dump和pg_restore跨越不同的主要版本?

最近,当Postgre的版本主要数量不同(总是升级,没有降级)时,我遇到了一个(可能已知问题),例如字段类型。 在我的情况下,几乎没有相互冲突的数据,所以我手动更改了它,但想知道更多,以防我再次遇到更多数据这个问题。 在这个具体案例中(但可以扩展到将来可能遇到的其他问题),我只使用数据插
1回复

pg_restore错误:pg_restore:文件头中的[archiver]不支持的版本(1.13)

我试图用pg_restore从备份文件恢复表。 但是我得到了上面提到的错误。 我到处都读到需要升级版的postgres。 我将我的升级到9.6.8-1然后升级到10.3-1。 两者都没用。 有没有人有一个详细的程序来解决使用Windows操作系统的这个问题? 提前致谢
1回复

9.4的pg_restore失败并显示错误“无法执行查询”

我尝试恢复的 PostgreSQL 版本是 9.4.10。 我备份了相同版本的数据库。 我用于恢复的命令是: 我得到的错误是: 这在 pg 错误中重复了大约 112 次。 我需要恢复到同一个数据库。 这是我用于转储的命令: 关于为什么会发生这种情况的任何迹象? 我怎样才能减轻这个错误?
1回复

pg_restore:[存档(db)]处理目录时出错:

我已经使用pg_restore恢复了数据库。 我发现数据已还原,但引发了一些错误。 这些错误的原因是什么? 这是用于还原的命令 pg_restore -U postgres -d newdb08aug19 -j5远程 这些错误的原因是什么?
1回复

来自sqlworkbench的pg_restore显示了带有DB标识符的-U语法错误

pg_restore -U (Aw Master username)返回语法-U错误。 我应该使用什么用户名?
3回复

pg_restore:[archiver]postgres中的输入文件太短错误

我正在尝试使用以下命令将数据库转储到本地系统中: 但我收到错误: 我做错了什么?