无法使用 'Refresh Fast On commit' 在远程数据库上创建实体化视图

Unable to create materialized view on remote database with 'Refresh Fast On commit'

我在数据库 1 中有一个 table 选项卡 1,我在上面创建了物化视图日志。现在我的要求是在 database2 中使用实时数据创建一个物化视图,这样一旦数据提交到我的 tab1 中,它就应该反映在我的 mview 中。为此,我尝试使用 'refresh fast on commit' 选项在 database2 中创建 mview,但出现以下错误: ORA-12054: 无法为物化视图设置 ON COMMIT 刷新属性

Q1.) 使用on commit 选项在远程数据库中创建mview 是完全不可能的吗? Q2.) 如果不是那么为什么?如果是,如何? Q3.) 当 db link 宕机时会发生什么?

  1. 不可能有引用远程对象的 on commit 实体化视图。那是 documented restrictions.
  2. 之一
  3. 从实现的角度来看,允许物化视图在引用远程对象时进行提交刷新将是非常具有挑战性的。物化视图通常从远程数据库中拉取数据。在这种情况下,远程数据库上的提交进程必须通知本地数据库正在提交更改,这可能需要本地数据库上的新进程来侦听这些通知并启动刷新。这也往往会使本地数据库上的提交非常慢。这意味着如果数据库 link 出现故障,您将无法在本地数据库上提交,这将对可靠性造成重大影响。数据库之间的同步数据复制对性能和可靠性造成了巨大的成本,这是非常不值得的。
  4. 您将无法提交对本地数据库的更改。因此,如果远程数据库出现故障,您的本地数据库将无法正常使用。