解决科室网服务器宕机oracle数据库出现的一系列问题

来源:互联网 发布:db2数据库删除 linux 编辑:程序博客网 时间:2024/04/30 14:11

oracle监听启动正常 

用sqlplus '/ as sysdba' 进入 startup 时报错:
  ORA-04031: unable to allocate 4096 bytes of shared memory ("shared pool","select /*+ rule */ bucket_cn...","Typecheck heap","kgghteInit")
 解决方法(不彻底):
  root登录 find / -name init*.ora    (即找到ORACLE_SID对应的ora文件 我的为 initTSH1.ora)
  修改文件参数:TSH1._shared_pool_size  把该参数值增大
  使修改后的参数生效:
   进入oracle用户 su - oracle 登录 sqlplus '/ as sysdba'
    startup force pfile=/data/u01/app/oracle/......initTSH1.ora;
  oracle正常启动(已pfile属性文件启动)

  上面并未彻底解决问题,重新shutdown后再startup还是一样的错误。。。。。。。。。。

下面彻底解决:

  在initTSH1.ora 同一目录下有文件:spfileTSH1.ora 修改该文献的TSH1._shared_pool_size参数,变大
  startup 启动正常

  但登陆数据库后,发现新问题:ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段的处理
   故障分析:
    UNDO表空间数据文件受损,导致执行更新操作失败。
   故障修复:
    sqlplus / as sysdba
    SQL> create undo tablespace "UNDOTBS02" datafile '/data/u01/app/oracle/oradata\TSH1\UNDOTBS02.DBF' size 128m reuse autoextend on next 10m maxsize 2048m;
    表空间已创建。
    alter system set undo_tablespace=UNDOTBS02  scope=spfile;
     注:执行此处时出错:write to SPFILE requested but no SPFILE specified at startup (oracle不是以spfile属性文件启动的)
     经检查发现spfile文件已损坏,重新生成该文件。
      create spfile='/data/u01/app/oracle/product/10.2.0/db_1/dbs/spfileTSH1.ora' from pfile='/data/u01/app/oracle/product/10.2.0/db_1/dbs/initTSH1.ora';
      创建成功。
    重新执行sql:
    alter system set undo_tablespace=UNDOTBS02  scope=spfile;
    系统已更改。
    alter system set undo_management=auto scope=spfile;
    系统已更改。
    shutdown immediate;
    startup;
    DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
    表空间已删除。
    shutdown immediate;
    startup;
数据库正常。

 

下面附解决问题过程中参考的文章:
http://blog.csdn.net/wyzxg/article/details/4073973

http://tech.ccidnet.com/art/1107/20080401/1406821_1.html

http://blog.csdn.net/wanglixue2012/article/details/7252801

http://yunlongzheng.blog.51cto.com/788996/1001879

http://blog.csdn.net/lixiaohuiok111/article/details/7872186

0 0
原创粉丝点击