ORA-02020错误:过多的数据库连接使用中问题

错误现象:

ORA-02020: too many database links in use

Cause: The current session has exceeded the INIT.ORA open_links maximum.

Action: Increase the open_links limit, or free up some open links by committing or rolling back the transaction and canceling open cursors that reference remote databases.

再查看参数:

SQL> show parameter open_links;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

open_links integer 4

open_links_per_instance integer 4


可以使用下面的方法解决该问题:

1、  修改实例启动参数open_links

Alter system set open_links=10 scope=spfile;

然后重启数据库:

shutdown immediate

startup

这种方法不好的地方就是需要重启数据库实例,对于重新发布生产系统是比较麻烦的。

2、  使用COMMIT

 

根据ORACLE技术文档的解释,open_links参数限制的是在一个会话中使用dblink(不限于)的个数,可以使用commit语句关闭当前会话中打开的dblink避免ORA-02020错误。这样做的坏处在于commit之后如果需要再次使用该数据库链接则需要重新打开,这样会带来一定的性能上的损耗。

 

总的来说这两种方法都存在一定的问题,个人倾向于使用第一种方法。另外如果能够在数据库设计之初有所考虑并且使用一个合适的open_links参数值,就能从最大的程度上避免上述问题。


你可能感兴趣的:(数据库相关)