问题描述
在本地库建立dblink连接到远程另一个库后,在本地查询远程库数据时,长时间没有执行过远程查询,会出现连接不上的报错问题。
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 29522
Session ID: 15 Serial number: 447
解决方法
由于禁用连接过期检测功能,连接出现僵死。可通过配置 sqlnet.ora 的SQLNET.EXPIRE_TIME参数来检与客户端连接是否仍然有效。
SQLNET.EXPIRE_TIME
该参数表示在多长时间内(单位为:分钟)应周期性地向客户端发送探测包(probe packet)来验证连接是否仍然活动。如果在指定的时间范围内未收到客户端的响应,数据库会认为连接已经失效,并终止该连接。SQLNET.EXPIRE_TIME的默认值是0,表示禁用连接过期检测功能。如果将其设置为非零值,表示启用连接过期检测功能,并定义了探测包发送的时间间隔,建议设置为:10分钟。
修改sqlnet.ora 参数
cd /u01/app/oracle/product/11.2.0.4/db_1/network/admin
vi sqlnet.ora
在文件的最下面添加以下内容:
SQLNET.EXPIRE_TIME=10
刷新监听配置
lsnrctl reload