【问题标题】:Replicate Oracle into HsqlDB (and knowing what the change was)将 Oracle 复制到 HsqlDB 中(并且知道变化是什么)
【发布时间】:2014-01-14 12:02:21
【问题描述】:

我有兴趣使用 Oracle 数据库并将其“复制”到 hsqldb - 非常快,接近实时。并希望,也知道哪些领域发生了变化。 (我需要这个来增加查询持续时间 - 并且看到嵌入内存模式的 HSQLDB 甚至比缓存的 Oracle 快得多。但是,由于 oracle 授予我持久性、故障转移等功能。我仍然想使用它)。

所以,我想到了几种可能的方法:

  1. 在我的 oracle 数据库中的每个可能的表上使用触发器。触发器会将更改写入辅助表。在我看来,表现和实践非常糟糕。

  2. 定期为所有最新更新选择每个表(select * from T where ora_rowscn > ?)。 ?=最新的最大行 scn。这样做的缺点是不知道删除(即使我们可以想出一些其他的删除方式)。这也有一个缺点,即必须将以前的记录与新记录进行比较才能了解更改。该表可能有 100 个字段,并且仅更改一个。

  3. 使用 Oracle 通知,自 11/10g 起可用 - 使用简单的 JDBC 链接 - 尽管这有一些限制,例如:您可以获得的字段数量已更改。

  4. 在查询 sql_text 表的同时使用“2”方法,以查看哪些字段在最新更新中受到影响,并仅区分最近 1 分钟的那些字段。这实际上也有助于找出删除。

  5. 使用 timesten 而不是 HSQLDB,但这需要花钱。

你怎么看?最好的方法是什么?

谢谢

【问题讨论】:

    标签: java oracle jdbc hsqldb


    【解决方案1】:

    您应该探索现有工具,尤其是 SymmetricDS (http://www.symmetricds.org),看看是否可以配置或修改它们以支持此功能。

    另一种方法是在 HSQLDB 中编写触发器以在发生数据更改时更新 Oracle 后端。

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2020-11-22
      • 1970-01-01
      • 2011-07-30
      • 2013-06-18
      相关资源
      最近更新 更多