【问题标题】:Oracle doubts about integration甲骨文对整合的质疑
【发布时间】:2015-10-22 07:43:00
【问题描述】:

我正在启动一个项目,其中一个需求是数据库之间的集成。

我已经完成了与 API、WSDL 的集成,但从未在数据库之间进行过集成(所有 oracle)。

功能设计要做的是:根据我的应用程序中的规则,在另一个数据库中执行一个过程,用我的应用程序数据填充参数。 sp 会将信息记录在一个表中(在另一个数据库中)并在那里创建一个票证。

所以我的问题是:是否可以通过我的 oracle 实例运行另一个 oracle 实例中的过程?

【问题讨论】:

    标签: database oracle stored-procedures oracle11g


    【解决方案1】:

    当然。您只需要在数据库之间create a database link

    CREATE DATABASE LINK dblink_name
      <<parameters>>
    

    然后你就可以在远程数据库中执行该过程了

    BEGIN
      schema_in_remote_db.procedure_in_remote_db@dblink_name( <<parameters>> );
    END;
    

    但是,作为一般架构问题,我通常不会让应用程序进行远程过程调用。通常,即使远程数据库已关闭或它们之间的网络连接已关闭,您也希望正在构建的应用程序可用。否则,您的可用性会大大降低。您还强制 Oracle 使用两阶段提交和分布式事务,这可能是相当大的开销。

    通常,您会设计系统以便写入本地表或队列,并且单独的作业异步运行以调用远程过程(或目标数据库中的单独作业轮询您正在写入的表并在本地调用该过程)。

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 2019-01-30
      • 2011-08-29
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多