我需要一种方法在两个大陆的两个数据中心之间临时复制数据,用于 Oracle 中的少量大表。表中的数据约为 30Gb,但传输速率仅为 5Gb/小时左右。
我想数据每天都不会发生很大变化。
对于这种短期需求,我们有哪些简单且经济高效的数据复制选项?
说明
- 暂时即两个月
- 数据库的一个子集,2个或3个大表
- 一种方式,直到数据库迁移到新的数据中心
我需要一种方法在两个大陆的两个数据中心之间临时复制数据,用于 Oracle 中的少量大表。表中的数据约为 30Gb,但传输速率仅为 5Gb/小时左右。
我想数据每天都不会发生很大变化。
对于这种短期需求,我们有哪些简单且经济高效的数据复制选项?
说明
对于免费解决方案,我只能想到通过数据库链接或设置流来使用触发器滚动您自己的解决方案。
我会设置流。
如果您使用的是数据库的企业版,听起来您可以使用 Streams 或物化视图来复制数据。
Streams 通过异步挖掘在源系统上生成的重做数据来查找对相关表的更改,然后使用 Oracle 的高级队列 (AQ) 将这些更改传送到目标数据库。Streams 通常是首选架构——它是较新的技术,它在源系统上产生的负载较少,它不涉及在源系统中创建任何新对象并且具有较低的延迟。Streams 的缺点是,根据所涉及的 Oracle 版本,设置和运行 Streams 可能需要大量的管理工作。
物化视图是一种较旧的复制技术,似乎也能满足您的需求。物化视图工作也可以复制更改,但它们必须通过在要复制的表上创建的物化视图日志中记录更改数据来实现。在源系统上,您需要在要复制的表上创建物化视图日志——当对表进行更改时,这些日志将自动写入,但这些写入将与事务同步,因此它可能会影响
INSERT
和UPDATE
表现。在目标端,您将创建一个物化视图,它按照设定的时间表(即每隔几分钟)进行增量刷新,从物化视图日志中读取数据,通过网络提取数据,并更新物化视图的数据的副本。物化视图往往更容易设置,但效率不高,而且在源数据库中创建物化视图日志的要求可能成为争论的焦点。当您不再需要复制时,这两种解决方案都相对容易在 2 个月内关闭。