gpt4 book ai didi

java - 将 Oracle 复制到 HsqlDB(并了解更改是什么)

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:59 25 4
gpt4 key购买 nike

我有兴趣获取 Oracle DB 并将其“复制”到 hsqldb 中 - 速度非常快,接近实时。希望大家也能了解哪些字段发生了变化。 (我需要这个来提高查询持续时间 - 并且发现嵌入内存模式的 HSQLDB 甚至比缓存的 Oracle 快得多。但是,由于 Oracle 授予我持久性、故障转移等功能,我仍然想使用它)。

所以,我考虑了一些可能的方法:

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

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

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

  4. 使用“2”方法并查询 sql_text 表,以便查看哪些字段在最新更新中受到影响,并仅比较过去 1 分钟的字段。这实际上也有助于确定删除。

  5. 使用 timesten 代替 HSQLDB,但这要花钱。

你觉得怎么样?最好的方法是什么?

谢谢

最佳答案

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

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

关于java - 将 Oracle 复制到 HsqlDB(并了解更改是什么),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com