【问题标题】:Oracle 11g Replication - Using refresh on commit with remote database (database links)Oracle 11g 复制 - 对远程数据库使用提交时刷新(数据库链接)
【发布时间】:2012-08-28 05:02:36
【问题描述】:

下午好,

我有 3 个数据库; SID 是 config、prod1 和 prod2。

我正在使用物化视图将配置数据库中 11 个表上的数据复制到其他两个数据库中。物化视图当前每五秒刷新一次,但如果它们在提交时更新将是理想的。

我遇到了this website,它解释了从远程数据库复制时不支持提交时。

这是我期望的工作

CREATE MATERIALIZED VIEW "schema"."table" USING INDEX REFRESH FORCE ON COMMIT AS select column1 from schema.table@config;

链接中建议使用“使用主键按需快速刷新”的方法,但显然这是按需提供的。我想知道如果可能的话,为了让提交时刷新环境运行,任何人可能有什么想法?

谢谢

【问题讨论】:

  • 提交时快速刷新会更新同一事务中的 MV。您不能在两个不同的数据库上进行单个事务。

标签: oracle oracle11g replication materialized-views


【解决方案1】:

您无法创建在提交时从远程表刷新的物化视图。来自documentation

对 COMMIT 刷新的限制

包含对象类型或 Oracle 提供的类型的物化视图不支持此子句。

具有远程表的物化视图不支持此子句。

原因是数据库链接是在“子”数据库中定义的,而不是在“父”数据库中。因此,父数据库不可能自行触发或修改子数据库中的任何内容。

如果您想要 100% 实时的表格副本,我建议您使用视图。

如果您想在提交时复制数据,您可以修改您的 DML 过程,以便它们同时更新子远程表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2011-01-29
    • 2013-11-24
    • 2011-11-01
    相关资源
    最近更新 更多