Skip to main content

SQLException: ORA-02020: too many database links in use.



You can limit the number of connections from a user process to remote databases using the static initialization parameter OPEN_LINKS. This parameter controls the number of remote connections that a single user session can use concurrently in distributed transactions.

If you are not sure how many database links are opened up concurrently by your session's database application, you can query v$dblink

select in_transaction, count(*) from v$dblink group by in_transaction;

To Increase the Database Links limit.  Follow the below.

SQL> select name from v$database;

NAME
---------------------------
ORCL


SQL> show parameter open_links;

NAME                                 TYPE                                         value
------------------------------------ --------------------------------- ------------------------------
open_links                           integer                                         4  


Default Value is > 4

Here have changed from 4 To 60.

SQL> ALTER SYSTEM SET OPEN_LINKS=60 SCOPE=SPFILE;

System altered.

NOTE: Parameter 'OPEN_LINKS' its static parameter. Hence database bounce is required, once change is made. Then only the new value will be effected.

SQL> select name from v$database;

NAME
---------------------------
ORCL

SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  2101808 bytes
Variable Size             377490896 bytes
Database Buffers          687865856 bytes
Redo Buffers                6283264 bytes
Database mounted.
Database opened.

SQL> show parameter open_links;

NAME                                 TYPE                                         value
------------------------------------ --------------------------------- ------------------------------
open_links                           integer                                         60


Thank You!

Comments

Popular posts from this blog

ORA-39014: One or more workers have prematurely exited.ORA-00018: maximum number of sessions exceeded

ERROR: I was Performing a full database import and during the import I faced the below error. ORA-39014: One or more workers have prematurely exited. ORA-39029: worker 6 with process name "DW07" prematurely terminated ORA-31672: Worker process DW07 died unexpectedly. Job "SYSTEM"."SYS_IMPORT_FULL_04" stopped due to fatal error at 00:59:40 ORA-39014: One or more workers have prematurely exited. SOLUTION:  Run the import with fewer parallel processes, like PARALLEL=2 instead of 8. I was able to run the import successfully. NOTE 1: This errors occurs when there are less session allocation in the database. check the session,process parameters and increase them accordingly. To avoid such errors again. NOTE 2 : Note: Increasing processes parameter increases the amount of shared memory that needs to be reserved & the OS must be configured to support the larger amount of shared memory. So here we first need to increase the Memory & SG...

ORA-01143: cannot disable media recovery - file 1 needs media recovery

I got a request from the client - To flashback the database to the existing restore point & disable flashback and archive log mode for database UATB. Here I came a cross error - ORA-01143. I followed the below steps. 1. SQL> select name from v$database; NAME ------------ UATB 2. SQL> SELECT NAME FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES' ORDER BY TIME; NAME --------- UATB_COPY Here I'm going to restore the database to the above restore point. NOTE: The flashback database restore has to be done in MOUNT stage of the database. SQL> select name from v$database; NAME --------- UATB SQL> shut immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area  612368384 bytes Fixed Size                  1250428 bytes Variable Size             167775108 bytes ...