将数据从一台服务器迁移到另一台服务器,同时保持少数表数据不变,使用 pg_restore 时基本上排除少数表
Posted
技术标签:
【中文标题】将数据从一台服务器迁移到另一台服务器,同时保持少数表数据不变,使用 pg_restore 时基本上排除少数表【英文标题】:migrate data from one server to another while keeping few tables data unchanged basically exclude few tables while using pg_restore 【发布时间】:2022-01-22 04:06:30 【问题描述】:假设我的数据库有 4 个表 A、B、C 和 D..现在我希望恢复表 A 和 B 的数据保持不变,而 C 和 D 的数据应该改变。
我正在使用以下命令来恢复转储。
pg_restore --verbose --no-acl --no-owner -h localhost -d db_name latest.dump
进行转储的命令
pg_dump -Fc database_name > ~/Downloads/latest-stage.dump
这里我使用的是 clean 标志,因为如果我不使用它,它会产生与索引和键约束相关的错误。
注意:基本上我正在将我的数据从一台服务器移动到另一台服务器,但我希望少数表的数据不应该改变。
【问题讨论】:
【参考方案1】:您的恢复命令正在恢复整个数据库。根据转储的创建方式,您可以恢复特定的表。
根据您的转储处理方式,您可以使用恢复特定表。
pg_dump
pg_restore
我会使用format
方法从原始数据库创建一个转储。如果那不可能,通常会在其他地方恢复表并使用数据库链接或外部服务器复制数据,具体取决于您的设置。
【讨论】:
如果我在转储过程中排除了一些表,但是当我恢复时,我的所有数据库都被清除并且数据丢失,如果我不清除数据库,我会得到很多与键约束和索引相关的错误.. 您需要包含原始转储命令。看起来您正在恢复整个数据库。阅读文档,有办法解决这个问题。以上是关于将数据从一台服务器迁移到另一台服务器,同时保持少数表数据不变,使用 pg_restore 时基本上排除少数表的主要内容,如果未能解决你的问题,请参考以下文章