1

我工作的团队很幸运能够重新设计庞大的遗留系统,在数据库端使用 Oracle 12。目前这个怪物软件在数据库中有 10% 的插入/更新/删除操作,其余 90% 的操作是选择操作(在百万记录表中搜索一些实体)。搜索当然变慢了。所以我们的第一个想法当然是拥有两组相同的数据:Oracle DB 和 Elastic Search DB 在 Elastic 中执行搜索,但将数据存储在 Oracle 中并立即将数据复制到 Elastic。在 Oracle 和 Elastic 之间将有一些用 C# 编写的逻辑,用于将数据转换为 Elastic Stack 格式但第一个问题我们没有答案 - 如何在 Oracle 更改后立即从 Oracle 获取更改的数据?我们发现的第一种方法 - 使用连续查询通知 但这只能用于启动数据传输过程。通知可以包含更改行的RowID,但看起来更改行通知事件的数量限制为80。第二种方法-使用一些开源“数据复制器”,它监视“事务日志”。我发现的唯一复制器 - OpenLogReplicator,我喜欢它,但我想问 StackOverflowers,这可能不适用于我的情况吗?请注意我们不能使用 Oracle GoldenGate,客户端不会接受这个。有人可以建议使用哪种技术来复制 Oracle 的数据更改吗?

4

2 回答 2

0

SharePlex 是 GoldenGate 的更便宜的替代品。由于您需要“立即”复制,因此您需要一个 SharePlex 和 GoldenGate 都应该能够处理的相对复杂的解决方案。

于 2020-01-24T17:17:34.007 回答
0

如果此时 OpenLogReplicator 处于创建工作原型的阶段。它绝对没有准备好进行任何生产甚至测试。但您可以联系作者参与 POC 以帮助构建工具。或购买市场上可用的产品之一。

于 2020-01-31T18:51:41.583 回答