是否有可能重建pg_depend?

问题描述 投票:0回答:1

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

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

简而言之,BDR中的错误导致pg_depend system catalog中缺少依赖关系。现在,当我使用pg_dump时,对象被无序转储,并且无需手动编辑就无法使用转储。

有没有办法让PostgreSQL重建pg_depend中的依赖项而无需从头开始重建数据库?

postgresql postgresql-9.4 postgres-bdr
1个回答
0
投票

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

手动弄乱pg_depend可能会让事情变得更糟。

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

一旦你成功了,使用ALTER语句调整你注意到的缺失的进一步依赖。

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

我担心你不能做得更好。

© www.soinside.com 2019 - 2024. All rights reserved.