gpt4 book ai didi

oracle - 如果 Oracle Data Pump 实用程序可以刷新数据,为什么我们需要在 oracle 中使用实体化 View ?

转载 作者:行者123 更新时间:2023-12-02 01:45:43 26 4
gpt4 key购买 nike

我们在不同的 oracle 服务器中有两个模式。我们计划将一个模式用作事务数据库,将其他模式用于报告。

由于事务数据库是任何用户生成数据的入口点,我们希望定期将此数据复制/发送到报告模式。我们想到了在事务数据库中创建物化 View 日志,在报告数据库中创建物化 View 。然后我们计划使用 Db Link 进行预定的快速刷新。

但是,一位 DBA 建议我们使用 Data Pump,它将导出和导入整个模式。刷新需要每天进行一次。哪一个是性能和网络使用方面的最佳解决方案?

最佳答案

总结

这两种方法各有利弊。没有通用的答案。您必须进行基准测试。

详情

数据库链接的物化 View

您有两种可能性来完成这项工作。

第一种可能是使用快速刷新功能。借助此功能,Oracle 使用高效的增量机制在每次更改时更新物化 View 。当每天只更改一小部分表时,这可以节省大量数据量。你的数据总是新鲜的。但是这种机制不适用于所有类型的表(例如某些连接和 LOB 列的问题)。而当一个数据库出现故障时,物化 View 将不同步,必须重建。最后:增量变化的簿记给源表上的所有写操作带来了额外的压力。

第二种可能性是使用完全刷新,例如物化 View 组(DBMS_REFRESH 包)。这将始终触发完全刷新,但不会为簿记带来额外的写入压力。

在这两种情况下,两个数据库现在是紧密耦合的:一个数据库上的更改也会触发另一个数据库上的更改。而且您不能随意移动数据库:它们始终需要低延迟且不受防火墙干扰的快速连接。从长远来看,数据库必须同时启动,否则您可能会失去物化 View 。

ETL工具

作为替代方案,您始终可以使用某种 ETL 工具,从一个数据库中提取数据,根据一些给定规则转换数据,并将结果加载到另一个数据库中。您可以(误)使用 oracle Datapump 来完成此任务,或使用任何第三方工具。当必须更改源或目标的数据库模式时,ETL 工具可以缓存数据,使用任何类型的 WAN 连接传输它并转换它。通常一个ETL工具也提供某种delta机制。

使用 ETL 工具可以更加灵活,但是您依赖于数据库之外的组件,必须对其进行维护。

关于oracle - 如果 Oracle Data Pump 实用程序可以刷新数据,为什么我们需要在 oracle 中使用实体化 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25848436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com