为什么pg_restore修改了命令中未指定的数据库



我用pg_dump备份了服务器a中名为database_a的数据库(其PostgreSQL所有者是ubuntu(。

之后,我去了另一个服务器B。在这个服务器B中,有另一个不同的数据库,也叫database_a,它的PostgreSQL所有者是odoo。但我创建了一个名为database_b的新数据库,其所有者是ubuntu,以便在那里进行恢复。

我执行了以下命令:

pg_restore --create --clean -U ubuntu -d database_b database_a_bkp.dump

然而,不幸的是,该命令更改了数据库_a,而不是恢复中的数据。database_a所有者更改为ubuntu。我需要再次将所有者移动到odoo并执行REASSIGN OWNED查询。

但还有更多的变化。例如,到目前为止,我意识到IDpg_sequencesnextval已经更改,导致数据库_a中出现许多错误。

这怎么可能?错在哪里?我可以修复那些nextval,但恐怕这些并不是pg_restore唯一改变的地方。有人知道原因吗?在数据库_a中可以更改多少内容?

问题出在--create上。pg_restore连接到database_b,尝试丢弃database_a(因为--clean(,再次创建它,连接到它并恢复数据。

省略--create--clean,它将执行您想要的操作。

相关内容

  • 没有找到相关文章

最新更新