我们有两个Oracle数据库 1. 11.2.0.4 2. 12.1.0.2 我们从_11_to_12创建一个Dblink。 我通过sqlplus连接到两个数据库并按顺序发出以下命令,首先是12c,第二个是11g,依此类推:
12c
SQL> select sid,serial# from v$session where username = 'REP'; --Step 1
no rows selected
SQL> select sid,serial# from v$session where username = 'REP'; --Step 3
SID SERIAL#
---------- ----------
11 53421
17 28325
37 22230
453 23175
462 48252
SQL> select sid,serial# from v$session where username = 'REP'; --Step 5
SID SERIAL#
---------- ----------
11 53421
17 28325
378 55283
453 23175
462 48252
SQL> select sid,serial# from v$session where username = 'REP'; --Step 7
SID SERIAL#
---------- ----------
11 53421
17 28325
378 2986
453 23175
at 11g
SQL> select id from table1@from_11_to_12 where rownum <1; --Step 2
no rows selected
SQL> commit; --Step 4
Commit complete.
SQL> alter session close database link from_11_to_12; --Step 6
Session altered.
正如您在第6步之后所看到的那样,仍然在remonte数据库中有会话。 更重要的是,为什么连接会创建5个会话?
如何关闭这些远程会话。我们使用共享服务器,因此如果许多人同时连接,则至少会有4个会话忙。