1. 程式人生 > >oracle ora-02020 儲存過程中dblink使用個數問題

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數量。至於其他的區別,在看了英文的解釋以後,還是不大明白。希望又看到了,懂得這些的兄弟姐妹能夠給補充一下。哈哈