可以重建pg_depend吗?

时间:2019-04-16 13:48:09

标签: postgresql postgresql-9.4 postgres-bdr

我有一个受BDR中以下错误影响的PostgreSQL 9.4数据库:

https://github.com/2ndQuadrant/bdr/issues/309

简而言之,BDR中的错误导致pg_depend system catalog中缺少相关性。现在,当我使用pg_dump时,对象将无序地转储,并且没有手动编辑就无法使用转储。

有没有一种方法可以使PostgreSQL重建pg_depend中的依赖关系而无需从头开始重建数据库?

1 个答案:

答案 0 :(得分:0)

否,因为该信息不是多余的(那将是一个问题)。

手动弄乱pg_depend可能会使情况变得更糟。

您最好的选择是创建一个仅模式的转储(pg_dump --section=pre-data)并手动对其进行按摩,直到将其加载到新数据库中为止(某些依赖项仍然会丢失,例如拥有序列的列)。 / p>

一旦成功,请使用ALTER语句来调整您发现缺少的其他依赖项。

对结果满意后,转储数据库的其余部分(pg_dump --section=datapg_dump --section=post-data),然后按此顺序将它们还原到数据库中。

恐怕你不能做得更好。