我需要一种在两个大陆的两个数据中心之间临时复制数据的方法,以便在Oracle中有少量的大型表。表中的数据约为30 5Gb,但传输速率仅为5GB/小时。
我想数据每天都不会有很大的变化。
对于这个短期的需求,我们有什么选择来复制简单且成本效益高的数据呢?
澄清
发布于 2012-03-07 23:46:48
如果您正在使用数据库的企业版,听起来您可以使用流或物化视图来复制数据。
流的工作方式是异步挖掘源系统上生成的重做数据,以查找对相关表的更改,然后使用Oracle的高级队列(AQ)将这些更改传递到目标数据库。流通常是首选的体系结构--它是一种较新的技术,它在源系统上产生的负载较少,它不涉及在源系统中创建任何新对象,并且具有较低的延迟。流的缺点是,根据涉及到的Oracle版本(S),可以有相当数量的管理工作来设置和工作流。
物化视图是一种较旧的复制技术,它似乎也能满足您的需要。物化视图工作也可以复制更改,但它们必须将更改数据记录在要复制的表上创建的物化视图日志中。在源系统上,您需要在要复制的表上创建物化视图日志--这些日志将在对表进行更改时自动写入,但这些写入将与事务同步,因此可能会影响INSERT和UPDATE性能。然后,在目标端,您将创建一个物化视图,该视图按照设置的日程(即每隔几分钟)进行增量刷新,该视图将从物化视图日志中读取数据,通过网络提取数据,并更新物化视图的数据副本。物化视图往往更容易设置,但它们的效率不高,在源数据库中创建物化视图日志的要求可能是一个争用点。
当您不再需要复制时,这两种解决方案都很容易在2个月内关闭。
发布于 2012-03-07 19:48:28
对于免费的解决方案,我只能想到用触发器在数据库链接上滚动,或者设置流。
我会设置溪流。
https://dba.stackexchange.com/questions/14188
复制相似问题