【问题标题】:Unable to drop database link "database link of same name has an open connection"无法删除数据库链接“同名的数据库链接有一个打开的连接”
【发布时间】:2020-10-11 20:27:22
【问题描述】:

我正在尝试删除数据库链接,但收到此错误“同名的数据库链接具有打开的连接”

删除数据库链接“dbl_prod1” 错误报告 - ORA-02018: 同名的数据库链接有一个打开的连接 02018. 00000 - “同名的数据库链接有一个打开的连接” *原因: *行动:

【问题讨论】:

    标签: database oracle oracle12c dblink oracle19c


    【解决方案1】:

    您不能删除与另一个数据库具有活动/打开连接的数据库链接。您必须先明确关闭连接。此博客文章中描述了该过程:https://odenysenko.wordpress.com/2017/03/09/explicitly-closing-oracle-database-link/

    使用以下方法之一显式关闭打开的链接:

    1. ALTER SESSION CLOSE DATABASE LINK my_db_link;
    2. 执行 DBMS_SESSION.CLOSE_DATABASE_LINK('my_db_link');

    要成功关闭 [a] 数据库链接:

    • [该]数据库链接[必须]首先打开,否则您将得到 ORA-02081: 数据库链接未打开
    • 所有分布式事务 [起源] 来自 必须提交使用此特定数据库链接的会话 或回滚,否则你会得到 ORA-02080: database link is in use
    • 通过此特定数据库 [使用] 远程对象的所有游标 链接必须先关闭,否则会得到 ORA-02080: database link is 正在使用中

    检查当前是否使用 [a] DB 链接(已打开事务 和/或打开游标)[the] next SQL statement may be used:

         select db_link, logged_on, open_cursors, in_transaction 
           from v$dblink
          where db_link like 'my_db_link';
    

    参考资料:

    1034343.6 How To Close Remote Connections

    链接关闭后,您应该可以删除它。

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多