数据库服务器一直正常运行,昨天因为机房整修,所以服务器关机。重启后,发现oracle服务状态是已启动,但是无法连接。
使用sqlplus登录后,发现数据库出于shutdown状态,startup失败,提示数据库服务终止。
在windows的service中重新启动服务,会等待很长时间,然后提示服务无响应。将oradata文件夹备份,按照原来的方式重新安装了oracle,再将oradata覆盖回去,依然无法启动。哪位大神知道具体是什么原因导致的?

解决方案 »

  1.   

    sqlplus / as sysdba
    startup报什么具体的错误?
      

  2.   

    查看了一下alter.log
    Errors in file d:\admin\orcl\udump\orcl_ora_6308.trc:
    ORA-00704: bootstrap process failure
    ORA-00604: error occurred at recursive SQL level 1
    ORA-04031: unable to allocate 560 bytes of shared memory ("shared pool","unknown object","KGLS heap","KGLS MEM BLOCK")Sun Jun 12 19:08:07 2011
    Error 704 happened during db open, shutting down database
    USER: terminating instance due to error 704
    Sun Jun 12 19:08:08 2011
    Errors in file d:\admin\orcl\bdump\orcl_dbw0_5780.trc:
    ORA-00704: bootstrap process failure
    nstance terminated by USER, pid = 6308
    ORA-1092 signalled during: alter database open...另外我发现database里面的init.ora不见了。奇怪的现象。
      

  3.   

    什么oracle版本?
    最近有没有修改过什么参数?分步启动,看在哪一步出错
    sqlplus / as sysdba
    startup nomount;--查看一下SGA分配情况
    show sga;
    --创建一个init.ora文件,打开看一下主要参数设置
    --主要看一下shared_pool_size分配情况
    create pfile='d:\init.ora' from spfile;alter database mount;
    alter database open;
      

  4.   

    看上去像是内存的错误。
    你的错误日志 最后的估计没有贴全,本身应该是有包含 startup nomount  -> alter dtabase mount -> alter database open;的,你这个alert日志是在什么阶段报的错?
    可以尝试从其他机器拷贝init.ora作为模板,然后修改里面的文件路径,参数等等,然后再 
    startup pfile='xxx.ora'试试
      

  5.   

    原因大多为Listener.ora配置文件中的Host的值发生变化引起的,一般可以通过改变Host值为服务器IP地址或主机名来解决;
      

  6.   

    数据库服务无法启动,因此alter database mount或者create pfile都是无法执行的,各种报错或提示服务未启动。
    最终重新安装了oracle,将原来的oradata文件覆盖新安装的oradata。
    如同liubei611所说重新创建了控制文件。
    好歹算是冷备份成功。