ORA-03106 fatal two-task communication protocol error

 

这个信息表明,在ORACLE进行网络通信工作时,发生了错误。比如,客户应用程序使用SQL*NET访问服务器数据库时,不能进行,ORACLE显示ORA-03106错误。

首先,应当检查客户应用与数据库服务器之间的兼容性,这是ORA-03106错误中最常见的原因。现已发现,Developer/2000 V1.3预版与ORACLE V8.0.5 for Digital UNIX不兼容;ORACLE V7.0.1.6 for ScoUNIX与ORACLE V8.0.5 for Digital UNIX不兼容,等等。再检查客户应用与数据库服务器之间的NLS(字符集)兼容性。前些年计算机上的中文字符集一般设置为ZHS16CGB231280,近几年一般设置为ZHS16GBK,英文操作系统下的设置一般为US7ASCII。最好在系统安装时,把字符集设置为同一种,这样也方便数据库之间数据的卸出和导入。

如果数据库链路一直不通,并显示ORA-03106错误,那么可能是SQL*NET的设置问题。要想使用数据库链路,双方数据库文件InitSID.ora中GLOBAL_NAMES的值应当是FALSE,服务器上的文件TNSNAMES.ORA中要有对方的数据库别名,该别名就是建立数据库链路时使用的别名。尤其在双机等组成的CLUSTER系统中,人们常常在TNSNAMES.ORA中只写入带有机器虚地址的数据库虚别名,而忘记写入带有机器真地址的数据库真别名。应当把实际应用所涉及到的数据库别名都写入TNSNAMES.ORA。

另外,InitSID.ora中OPEN_LINKS的值一般默认为4,在应用程序使用多个数据库链路时,需要适当增加该值。

还可以设置并启动SQL*NET的事件跟踪功能,获得发生ORA-03106错误时产生的有关信息,有针对性地解决问题。
在比较极端的情况下,该问题表明ORACLE所使用的共享内存段崩溃了。可能需要用abort选项宕下数据库,并释放所有的semaphores(UNIX下)。因为ORACLE使用semaphores来控制所有后台进程的同步。Semaphores也用来控制用户进程和影子进程之间的双任务通信。由于该种情况下牵涉的问题比较复杂,可以将整个机器系统宕下,再重新启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值