我有一系列需要访问彼此数据的Oracle数据库。最有效的方法是使用数据库链接-设置几个数据库链接,我可以得到数据从A到B的最低限度的麻烦。对我来说,问题在于,您最终会得到一个紧密耦合的设计,如果一个数据库出现故障,它可以将耦合的数据库(或者可能是这些数据库上的应用程序的一部分)带来。
您尝试过在Oracle数据库之间共享数据的其他方法吗?
几个回复后的更新.
我没有那么多地考虑复制,更多的是关于访问“主数据”。例如,如果我有一个具有货币换算率的中央数据库,并且希望将一个汇率拉到一个单独的数据库(应用程序)中。对于如此小的数据集,igor- DB关于DB链接上的物化视图的建议将非常有效。但是,当您从一个非常大的数据集中动态取样时,本地缓存的选项就会变得更加棘手。在这种情况下你会选择什么选择。我想知道XML服务,但是tuinstoel (在对le的答复的评论中)正确地质疑了所涉及的开销。
反应摘要.
总的来说,我认为igor-db是最接近的,这就是为什么我接受了这个答案,但我想我应该添加一些其他的答案。
就我的目的而言,我只查看数据复制,它看起来像是Oracle BASIC复制(而不是高级复制)。在主站点上使用物化视图日志和在快照站点上使用物化视图看起来是一种很好的前进方式。
如果这不是一个选项,数据卷可能会使整个表复制成为一个问题,那么消息传递解决方案似乎是最合适的Oracle解决方案。Oracle高级队列似乎是设置消息传递解决方案的最快捷和最简单的方法。
最不可取的方法似乎是滚动自己的XML服务,但只有在高级排队相对容易的情况下才是选择。
发布于 2009-01-22 01:01:34
流是Oracle复制技术。您可以在数据库链接上使用MVs (因此数据库'A‘具有数据库'B’中的数据的物化视图。如果“B”下降,则无法刷新MV,但数据仍在“A”中)。
里程数可能取决于DB卷,更改卷..。
发布于 2009-01-21 23:31:27
在我看来,如果您需要同时同步访问多个数据库,它就会被定义为紧密耦合。
例如,如果这与传输数据有关,而且可以是异步的,那么您可以在两者之间安装一个消息队列,并有两个进程,一个从源读取,另一个写入到接收器。
发布于 2009-01-24 09:43:25
“任择议定书”提供了更多信息。他说数据集非常大。那么大的有多大?主表多久更换一次?
使用物化视图日志,Oracle将只传播在主表中所做的更改。完全刷新数据是不必要的。Oracle流也只将修改传递给另一方。
购买存储空间很便宜,那么为什么不使用本地缓存呢?比自己设计解决方案要便宜得多。
当XML服务的数据库不可用时,它对您没有帮助,所以我不明白它为什么会有帮助?Oracle有许多复制选项,请探索它们。
编辑
我已经构建了xml服务。它们具有清晰的接口(契约),在不同的系统之间提供互操作性。您可以在C#中构建一个xml服务,并使用Java使用该服务。然而,xml服务并不快。
https://stackoverflow.com/questions/467420
复制相似问题