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参数值,就能从最大的程度上避免上述问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值