【问题标题】:Best way to replicate db into other systems将数据库复制到其他系统的最佳方法
【发布时间】:2010-09-22 01:20:08
【问题描述】:

将更新流复制到大型 (6TB) oracle db 到另一个非 DBMS 系统的最佳方法是什么?我不需要“批量加载”oracle db,而只想将所有更新近乎实时地流入另一个本土系统(10 秒或更短的延迟)。更新以 150 行/秒的速率发生,表示每秒 10 兆字节。

为了清楚起见,让我强调我不是从一个数据库复制到另一个数据库。这是一个应用程序集成问题:我需要从数据库复制到内部的非数据库应用程序。我曾想过使用企业服务总线,但这似乎不合适。

【问题讨论】:

  • “非 DBMS 系统”是什么意思?

标签: database oracle replication enterprise


【解决方案1】:

所以您想要实现一个基于日志的复制方案,该方案只是将事务日志抽出到不同的文件系统?有许多商业产品可以让你做到这一点,比较有名的是SharePlexGoldenGate,甚至还有一个开源产品Zizzy,但我不能说我已经尝试过它。

edit 1:如果您不想将更新提供给另一个数据库,GoldenGate's Event-Driven Architecture 提供了一种将复制连接到 JMS 消息总线的方法.对于应用程序集成,这是我的选择。

编辑 2:如果使用消息总线不是您想要的方式,我能看到的唯一其他明智的选择就是弄脏您的手并使用 Oracle 的LogMiner API。 IIRC,这是 Oracle 用于 Streams 和 DataGuard 等特性的东西,它可能是大多数变更数据捕获解决方案所基于的底层。

【讨论】:

  • 我会看看这些产品。但是,它们似乎不太正确,因为接收更新的系统不是数据库,需要读取复制的数据;接收事务日志需要解析日志才能检索数据,不是吗?
  • 抱歉,我以为您只是想在不同的文件系统上备份日志。一旦他们在这个“其他系统”上,你想对他们做什么??
  • 原始数据库包含信息的层次结构(a 链接到 b,b 链接到 c 和 d,等等)。辅助系统希望以大矩阵表示数据以执行线性代数。提要用于将数据(近乎实时地)从 db 移动到线性代数系统中。
  • 这需要实时吗?您不能只创建一个表示您的矩阵的视图并进行查询吗?
  • 另外,你必须考虑复制的“成本”,除非你有一些不错的硬件通过网络复制会限制你的写入时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 2010-09-05
  • 1970-01-01
  • 2012-05-22
  • 2012-05-21
相关资源
最近更新 更多