zoukankan      html  css  js  c++  java
  • UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除
    模拟启库
    SQL> STARUP;
    *
    第 1 行出现错误:
    ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 2: 'C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF'

    利用系统本身的默认手动管理 MANUAL UNDO 表空间 SYSTEM 启动库 
    SQL> CREATE PFILE='C:PFILE20130930.ORA' FROM SPFILE;
    SQL> SHUTDOWN IMMEDIATE;
    编辑PFILE 文件 修改

    *.undo_management='MANUAL'   
    *.undo_tablespace='SYSTEM'
    保存
    SQL> startup  pfile='c:pfile1.ora'
    ORACLE 例程已经启动。
    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              83887460 bytes
    Database Buffers           79691776 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 2: 'C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF'
    SQL> show parameter undo;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ----------------
    undo_management                      string      MANUAL
    undo_retention                       integer     900
    undo_tablespace                      string      system
    SQL> alter database datafile 2 offline;
    数据库已更改。
    SQL> alter database open;
    数据库已更改。
    SQL> create undo tablespace undotbs02 datafile 'C:ORACLEPRODUCT10.2.0ORADATA
    ORCLUNDOTBS02.DBF' size 100M;
    表空间已创建。
    SQL> alter system set undo_tablespace='undotbs02' scope=spfile;
    alter system set undo_tablespace='undotbs02' scope=spfile
    *
    第 1 行出现错误:
    ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE

    --因为我们是利用PFILE启动的 这个时候我们应该去修改PFILE 文件,再重新启库

    *.undo_management='AUTO'   
    *.undo_tablespace='UNDOTBS02'

    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup  pfile='c:pfile1.ora'
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              83887460 bytes
    Database Buffers           79691776 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
    SQL>
    SQL> show parameter undo;

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS02
    SQL>create spfile from pfile

    文件已创建。
    这里我们UNDO表空间恢复完毕

    此方法还可以解决启动的时候出现ORA-600[4194]/[4193]错误
    Tue Feb 14 09:34:11 2012
    Errors in file d:oracleproduct10.2.0admininterlibdumpinterlib_smon_2784.trc:
    ORA-01595: error freeing extent (2) of rollback segment (3))
    ORA-00607: Internal error occurred while making a change to a data block
    ORA-00600: internal error code, arguments: [4194], [6], [30], [], [], [], [], []
    如果出现极端的情况可能需要做如下处理:
    1.使用_offline_rollback_segments和_corrupted_rollback_segments屏蔽掉有问题的undo segment
    2.继续可能出现ora-600[2662],需要推进scn


  • 相关阅读:
    常用的网址
    Powerdesigner使用建议(完整版)
    非常实用的钩子程序(c++).
    SQLPlus中的复制和粘贴技巧 http://www.oradb.net/sql/sqlplus_007.htm
    【C#】输出的XML文件中空标签多换行符
    CMD创建当前日期文件夹
    【PostgreSQL】Select取得行号
    職業定義
    【SQLSERVER】CMD执行SQL语句
    【Oracle】PACKAGE输出LOG文件
  • 原文地址:https://www.cnblogs.com/james1207/p/3347809.html
Copyright © 2011-2022 走看看