postgresql 同步两个数据库

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

我有两个数据库。其中一个 (DB A) 持续输入来自测量设备的数据,并包含 0 级(原始)数据。另一个数据库 (DB B) 是一个“扩展”数据库,它包含与 DB A 相同的数据,但还包含包含已处理数据的附加表(也用作原始数据备份)。我现在想要将所有新数据从 DB A 同步到 DB B,而不影响 DB B 上的其他表。 我知道转储和恢复会删除 DB B 上的附加文件。我怎样才能避免这种情况?

postgresql data-synchronization
1个回答
0
投票

您可以使用逻辑复制进行设置,使其连续发生:B 将跟踪 A 上的所有事件并镜像所有更改。

如果这是一项一次性任务,并且您只想安全地复制数据,则

pg_dump
psql
可以处理该任务,而无需擦除任何内容。假设 A 和 B 上的表名和架构匹配,并且有一个主键列:

pg_dump -h your_source_db_host -p your_source_db_port -U your_source_db_user \
--data-only --on-conflict-do-nothing \
--schema='your_source_table_schema' \
--table='your_source_table_schema.your_source_table_name' your_source_db_name \
|psql -h your_target_db_host -p your_target_db_port  -U your_target_db_user \
-v ON_ERROR_STOP=1 your_target_db_name &>> your_source_table.clone.log &
© www.soinside.com 2019 - 2024. All rights reserved.