日期:2014-05-17  浏览次数:20789 次

程序运行起初没有问题,过几小时后数据库报错,报错信息如下
因为不能确定是什么原因导致的oracle报错,所以我把我这几天遇到的错误和相关信息全都贴出来

22-3月 -2012 09:15:51 * (CONNECT_DATA=(SID=piao)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1761)) * establish * piao * 12505
TNS-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
23-3月 -2012 09:08:53 * (CONNECT_DATA=(SID=piao)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1440)) * establish * piao * 12518
TNS-12518: TNS: 监听程序无法分发客户机连接
 TNS-12560: TNS: 协议适配器错误
  TNS-00530: 协议适配器错误
  32-bit Windows Error: 2: No such file or directory
23-3月 -2012 09:08:53 * service_died * piao * 12547
TNS-12547: TNS: 丢失连接
23-3月 -2012 09:08:53 * (CONNECT_DATA=(SID=piao)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1441)) * establish * piao * 12505
TNS-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID

24-3月 -2012 07:41:24 * (CONNECT_DATA=(SID=piao)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=3122)) * establish * piao * 12518
TNS-12518: TNS: 监听程序无法分发客户机连接
 TNS-12560: TNS: 协议适配器错误
  TNS-00530: 协议适配器错误
  32-bit Windows Error: 233: Unknown error

26-3月 -2012 08:33:46 * (CONNECT_DATA=(SID=piao)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=3695)) * establish * piao * 12528
TNS-12528: TNS: 监听程序: 所有适用例程都无法建立新连接


由于服务器上部署的项目有4个,所以初始化的连接比较多


正常的时候:select sid,serial#,username,program,machine,status from v$session; 110行左右
  select count(*) from v$session where status='INACTIVE'; 95左右
报错的时候:select sid,serial#,username,program,machine,status from v$session; 15行左右
  select count(*) from v$session where status='INACTIVE'; 10左右


oracle报错,往往是在程序运行了几个小时以后发生的,找了半个多月的原因了,还是没有得到解决,还请各位高手支招

------解决方案--------------------
会不会是你的系统表空间满了 导致的?设置为自增长。
或者是你的硬盘没有空间了?
------解决方案--------------------
system表空间 和 temp临时表空间
都满了
------解决方案--------------------
temp临时表空间 是你平时执行一些查询之类的操作 生成的临时数据
应该是你的程序有问题 导致一次性执行了大量的数据查询 并且没走索引导致的

先把满了的表空间加下空间
把临时表空间换掉 然后进程序 看看 执行哪里会造成临时表空间的暴涨
------解决方案--------------------
你用的ORACLE 共享模式? 你什么项目还用这种模式使用数据库
但看你连接数据库都是使用专有模式在使用数据库啊!!!
你报错都是因为共享模式连接失败产生的错误。建议不要使用共享模式,现在都是三层架构,共享模式应用中都几乎不用了
------解决方案--------------------
连接后没有释放连接吧
------解决方案--------------------
应该就是temp表空间的问题了,既然已经改了,估计问题不大了
------解决方案--------------------
这跟临时表空间有什么关系?你的应用有很多临时表要存储数据还是经常要多大表排序?
你SYSTEM表空间明显要增加了,跟其他表空间增加的操作一样,增加个数据文件就是了

------解决方案--------------------
你的sga_max_size设为多大?也许是消耗的内存太多,可以减少sga_max_size看看。