pg_dump突然没有转储所有表

时间:2017-02-10 15:06:22

标签: postgresql

多年来,我们使用此命令从我们的数据库calle转储数据" apflora":

pg_dump --file=/shared/$FILENAME -Fc -Z9 -o apflora

它一直有效。 我们在ubuntu服务器上执行此操作。然后,该脚本将数据发送到Dropbox帐户(它是设置$ FILENAME的bash脚本的一部分)。

由于几天(我需要更准确地指出),突然只有40个表中的35个包含在备份中。

恢复数据库时,日志包含许多消息,如下所示:

pg_restore: [archiver (db)] could not execute query: ERROR:  relation "ap" does not exist

当我使用BigSQL的pgAdminIII LTS备份相同的数据库时,也会发生这种情况

我在

检查了日志
/var/log/postgresql

但在备份运行时找不到任何记录。

我该怎么做才能防止这种情况发生?

我们使用

  • PostgreSQL 9.6
  • Ubuntu 16.04

1 个答案:

答案 0 :(得分:1)

嗯,答案让我感到惊讶。

实际上,在ubuntu上创建的备份完全是o.k。

从备份还原时出现问题。原因是其中5个表使用UUID。对于哪个扩展" pgcrypto"需要。并且无法安装pgcrypto,因为BigSQL的postgresql(https://www.bigsql.org/postgresql/installers.jsp)的macOs构建中似乎存在错误。这导致这些表格无法恢复。

嗯,这似乎很容易解决,对吧?我卸载了这个版本的PostgreSQL并安装了EnterpriseDB的版本(https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#macosx)。这里唯一的问题是:pgAdmin4(在v1.2中写的时候)非常错误。我可以尝试尽可能多的尝试,它不会在没有创建错误的情况下恢复备份:-(

(我也知道其他几个错误,所以请不要使用v1.2)

最后,我的解决方案是使用他们的包管理器(https://www.bigsql.org/pgadmin3/index.jsp)仅从BigSQL(https://www.bigsql.org/package-manager.jsp)安装pgAdminIII LTS。从EnterpriseDB保留PostgreSQL。

现在我终于可以安装pgcrypto并恢复备份: - )

希望这可以帮助其他人使用macOs。

感谢Vao Tsung和Curt Evans投球!