如何将外国 table 与本地 table 同步?

How to synchronise a foreign table with a local table?

我正在使用 Oracle 外部数据包装器,并希望在本地拥有一些外部表的本地副本。除了实体化视图并手动刷新它们之外,还有其他选择吗?

不一定,除非您想在 Oracle 中添加功能:

  • 如果你在 Oracle table 上添加一个触发器来记录另一个 table 中的所有数据修改,你可以在那个 table。然后,您可以定期 运行 PostgreSQL 中的一个函数,该函数获取自您上次检查以来的更改并将它们应用到 PostgreSQL table.

  • 如果您了解“实体化视图日志”在 Oracle 中的工作方式(我不了解,而且我认为文档没有说明),您可以定义一个外部 table并像上面一样使用它。那可能会更便宜。

这两个想法仍然需要您定期 运行 PostgreSQL 中的某些东西,但您可能会更便宜。也许(如果你有钱的话)你可以使用 Oracle 异构服务来修改 PostgreSQL table 每当 Oracle table.

发生变化时