繁体   English   中英

Postgres从pg_dumpall恢复:关系不存在,无效命令\\ N.

[英]Postgres restoration from pg_dumpall: relation does not exist, invalid command \N

我在Linux服务器上运行了pg_dumpall而我正在尝试在另一台Linux服务器上恢复生成的文件,运行相同版本的postgres(8.1.21-1.el5_5.1)。

当我尝试恢复时,我收到以下错误:

# psql --user=postgres -f pgbackup_dcs.sql postgres
[...]
psql:pgbackup_dcs.sql:10753: ERROR:  relation "sl_event" does not exist
psql:pgbackup_dcs.sql:10754: invalid command \N
psql:pgbackup_dcs.sql:10755: invalid command \N
psql:pgbackup_dcs.sql:10756: invalid command \N
psql:pgbackup_dcs.sql:10757: invalid command \N
psql:pgbackup_dcs.sql:10758: invalid command \N
psql:pgbackup_dcs.sql:10759: invalid command \N
[there are a lot of other errors following this point]

dumpfile中的这些行看起来像这样(这里的第一行是10753)

COPY sl_event (ev_origin, ev_seqno, ev_timestamp, ev_minxid, ev_maxxid, ev_xip, ev_type, ev_data1, ev_data2, ev_data3, ev_data4, ev_data5, ev_data6, ev_data7, ev_data8) FROM stdin;
1       687653  2010-12-08 11:54:45.669861      36713740        36713741                SYNC    \N      \N      \N      \N      \N      \N      \N      \N
1       687654  2010-12-08 11:54:55.6757        36713769        36713770                SYNC    \N      \N      \N      \N      \N      \N      \N      \N
1       687655  2010-12-08 11:55:05.68132       36713796        36713797                SYNC    \N      \N      \N      \N      \N      \N      \N      \N

我在转储或恢复方面做错了吗? 如何在新服务器上恢复数据库?

我找到了这个修复,但它确实有效

首先删除/删除要完全恢复的数据库

su - postgres
createdb -T template0 dbname
psql -U username -d dbname -f dumpfile

原因是当pg_dump创建相对于template0的.dmp文件时,可能与用于创建数据库的文件不同http://openacs.org/forums/message-view?message_id=148479

备份中是否有CREATE TABLE sl_event(....)? 您尝试将内容复制到不存在的表中,它必须在备份中丢失,或者在复制语句之后创建。

您是否可以进行仅数据备份? 即pg_dumpall -a将拒绝创建您的表格,并将导致类似这样的事情。 除此之外我的猜测是,如果不是这种情况,那么你有一个导致这个的上游错误。

使用pg_dump一次转储单个数据库。 我认为转储一个单一的数据库一次是个好主意。 我们使用all不需要转储系统db像template0,postgres ..

经过大量的搜索后,我在postgres库目录中发现了一些来自Slony的额外库文件(xxid.sl和名称中带有“slony”的几个文件),并且在将这些文件复制到目标服务器后,导入进行得很顺利。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM