我有 2 个独立运行的数据库集群。将来,我可能需要将客户的记录从集群 1 移动到集群 2。我有一个 bash 脚本,我在服务器端将表记录从集群 1 复制到 CSV 文件,然后将它们恢复到集群 2。
数据之间的关联使用顺序 ID。这些 ID 在两个实例中不是唯一的。似乎有两种可能:
我没有为我的用例使用最好的工具。还有其他工具可以让我更轻松地做到这一点。我已经掩盖了外国数据包装器。我不想做转储,因为我只需要一些记录。
我只需要吸收它并使用在我的数据集中唯一的 UUID。
我有 2 个独立运行的数据库集群。将来,我可能需要将客户的记录从集群 1 移动到集群 2。我有一个 bash 脚本,我在服务器端将表记录从集群 1 复制到 CSV 文件,然后将它们恢复到集群 2。
数据之间的关联使用顺序 ID。这些 ID 在两个实例中不是唯一的。似乎有两种可能:
我没有为我的用例使用最好的工具。还有其他工具可以让我更轻松地做到这一点。我已经掩盖了外国数据包装器。我不想做转储,因为我只需要一些记录。
我只需要吸收它并使用在我的数据集中唯一的 UUID。
这是选项 2。
要跨独立数据库获取唯一标识符,请使用 UUID。
否则,您需要
COPY TO
暂存表并使用复杂的 SQL 脚本,以在发生冲突的情况下将新分配的序列号传播到其他表中的所有相关行,同时插入目标表。您可能必须跟踪从旧序列号到新序列号的每次翻译,以备将来导入。要合并它们,您需要更改数字,以免它们发生冲突。
例如:在一个数据库上,您可以将所有 id 加倍,而在另一个数据库上将它们全部加倍并添加一个。