我用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_sequences
的nextval
已经更改,导致数据库_a中出现许多错误。
这怎么可能?错在哪里?我可以修复那些nextval
,但恐怕这些并不是pg_restore
唯一改变的地方。有人知道原因吗?在数据库_a中可以更改多少内容?
问题出在--create
上。pg_restore
连接到database_b
,尝试丢弃database_a
(因为--clean
(,再次创建它,连接到它并恢复数据。
省略--create
和--clean
,它将执行您想要的操作。