oracle ora-02020 儲存過程中dblink使用個數問題
今天晚上加班,有個儲存過程,裡面已經有4個dblink了,但是由於業務需要,還需要再加幾個,在加到第五個的時候,系統忽然丟擲一個錯誤:ora-02020 too many database links in use。諮詢oracle工程師,得出的結論是在oracle的系統引數中,OPEN_LINKS和open_links_per_instanse兩個引數設定問題,系統預設為4,並沒有對這個引數修改。
操作:
1)用sys登入,
2)show parameter spfile;
看到下面有檔案,說明oracle用的的是spfile。
3) 備份SPFILE,放置設定有問題需要倒回
create pfile='/opt/oracle/spfile2011***.ora' from spfile;
4)show parameter open
SQL> show parameter open
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
open_links integer 4
open_links_per_instance integer 4
read_only_open_delayed boolean FALSE
session_max_open_files integer 10
5)修改兩個引數:open_links,open_links_per_instance
alter system set open_links=50 scope=spfile
alter system set open_links_per_instance=50 scope=spfile
6)重啟資料庫,設定完成。
原來以為open_links這個引數是指整個資料庫允許用多少個dblink,open_links_per_instance這個引數是指每個例項最多允許的dblink個數。後來查資料才發現第一個引數的意思理解錯了,open_links oracle的官方解釋是每個session最多允許的dblink數量。至於其他的區別,在看了英文的解釋以後,還是不大明白。希望又看到了,懂得這些的兄弟姐妹能夠給補充一下。哈哈