今天在处理资料同步问题,需要将其它几个DB Server的资料同步到一个目地资料库,采用的方式是:DBLink+Job ,然而在写过程编译时发生Ora-02020错误. 如下:
环境: 目地Server(别名:DB)
其它需要同步的Server( DB1 , DB2, DB3, DB4 ,DB5)
做法: 建立各个Server的DB Link,然后在过程中同步相关的数据. 如代码:
1 create or replace procedure MBOMDataImportTW is
2 begin
3
4 DB1 DBLink 处理
5 DB2 DBLink 处理
6 DB3 DBLink 处理
7 DB4 DBLink 处理
8 DB5 DBLink 处理
9
10 end MBOMDataImportTW;
2 begin
3
4 DB1 DBLink 处理
5 DB2 DBLink 处理
6 DB3 DBLink 处理
7 DB4 DBLink 处理
8 DB5 DBLink 处理
9
10 end MBOMDataImportTW;
在处理DB5 DBLink时发生Ora-02020错误,连接数过多.
分析: 以上可以初步归结为Oracle 默认的连接数为4. 所以当第五个连接处理时发生错误.
查看系统参数:
1 SQL> show parameter open_links;
2
3 NAME TYPE VALUE
4 ------------------------------------ ----------- ------------------------------
5 open_links integer 4
6 open_links_per_instance integer 4
7
8 SQL>
2
3 NAME TYPE VALUE
4 ------------------------------------ ----------- ------------------------------
5 open_links integer 4
6 open_links_per_instance integer 4
7
8 SQL>
解决方法: 修改连接数
1 SQL> alter system set open_links=6 scope=spfile;