我工作的团队很幸运能够重新设计庞大的遗留系统,在数据库端使用 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 的数据更改吗?
问问题
761 次