2008年10月29日
sqlplus登陆不上 报这个错误
ERROR - ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory
去后台发现oracle关掉了,
然后再启动下oracle又好了
但是过了一段时间oracle又停了
叫朋友向那些DBA请教了下,说是内存满了或者是PGA增大到无法承受
然后我察看了下服务器的内存使用情况(free -m)发现内存还有5G多,这个排除了,
然后我再去察看oracle的日志文件($ORACLE_BASE/admin/sid/bdump)
发现ORA-06512,ORA-00600了这两个错误
第一个错误ORA-06512
是因为数据转换错误
这个应该是我转表的时候出现的空格太多所导致的
第二个错误ORA-00600
1 ORA-00600错误不是你的程序错误.是ORACLE内部的错误,一般来说,大部分的ORA-00600错误均是由ORACLE
软件的bug所导致,因此对于这样的错误需要及时联系ORACLE技术支持工程师.对于这种类型的ORA-00600
错误,一个简单的处理方式就是打补丁,将数据库升级到一个稳定的版本
2 是数据库内部的表或索引(包括应用的)结构被损坏所或其他原因所造成
解决方法http://www.3pcode.com/jsp/2004/10/9992.htm
看到这里,大概我也知道oracle为什么会down掉了,
然后我再用root用户登录服务器察看服务器内存状况(free -m -s -1)发现内存一直在增加,从爬虫开始爬到现在
大概已经过了1个半小时,但是内存现在只剩下3.4G了然后我想到前天我们设置了爬虫的一个参数,我想应该就
是这个参数的设置的原因,因为参数设置的过大了,所以导致内存急剧上升,到目前为止内存已经耗的只剩下2.6G了。
哎!看来这个服务器又得升级了!
然后想到今天tomcat报的错,估计跟数据库也有关系,北京的技术官还跟我说是索引文件出错,我当时也相信了,
因为发现那些索引文件确实不可以用,我改了索引文件,没有删除,备份了下(后来发现文件备份对于我们来说
真是太重要了,强烈建议各个程序员养成良好的文件备份习惯)。然后重新启动了下tomcat,呵呵发现还真好了!但
是问题也很快的就出来了,爬虫启动了一会儿,又报错了,而且还是404错误!崩溃!
后来他们的另外一个技术人员看了下我的启动日志,则跟我说是日志文件写满了的原因!叫我删除掉,我在想一
个日志文件有多大呀,但是也按照她的意思把日志文件删除了,但是这次我没有备份,因为我确切的问过她,这些日
志文件只是tomcat的运行记录,可以不要的,然后我很爽快的把那些日志都删除了,然后她叫我再次启动,嘿嘿,好
了!而且我把原来的索引文件覆盖之前的索引文件,呵呵!又可以用了,看来之前那个技术官说的也不是全对呀,也
好在我备份了,不然那40W的数据从哪里来呀,那不又得浪费将近3天的时间呀
仔细总结了这三天的工作历程,发现说到底还是那个数据库的问题,以后真的小心了,不过不经历,这些经验又
怎么会有呢!
注:
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是
在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使
用的区域,PGA 在创建进程时分配,在终止进程时回收.