解决方法:
1、oracle>cd $ORACLE_HOME/dbs
  看sgadef<sid>.dbf 这个文件是否存在  如果存在则删除掉
  oracle>rm sgadef<sid>.dbf
2、把oracle的instance shutdown 下来,看oracle的后台进程是否在了,如果在,kill掉,如下:
  oracle>ps -ef|grep ora_
  oracle>kill -9 process_id
3、看一下共享内存中的orale的内存段及信号段是否存在,如果存在则清除掉
  oracle>ipcs -m
  如果有oracle的内存段,则清除掉  oracle>ipcrm -m <Shared_Memory_ID_Number>
  同时清除信号段
  oracle>ipcs -s
  oracle>ipcrm -s <Semaphore_ID_Number>  
4、如果你这台机器中有多个oracle的database,你需要把所有这些databaes都down下来
  并确认$ORACLE_HOME/dbs下没有lk<sid>这个文件.
5、启动实例应该就可以了。
     

解决方案 »

  1.   

    本人已经解决了这个问题,解决方法就是先设置ORACLE的SID。set oracle_sid=zps
    但如果每次SHUTDOWN后都要这样设置,很烦啊,有没有更好的方法?
      

  2.   

    要是你系统只安装了一个sid的话,你在DOS下可以设置呀。
      

  3.   

    现在的问题是,我不可能只在一个系统中只安装一个SID。
      

  4.   

    把set oracle_sid=zps写入init.ora文件