【从本人QQ空间迁移】oracle数据库宕机问题

oracle数据库宕机原因之一,三个redo.log日志误删导致。
         三个redo.log日志被删,数据库无法启动。
         解决步骤:
         1、sqlplus /nolog
              无日志登录
         2、conn /as sysdba
               进入到sql命令下
         3、startup mount ;
              启动数据库到挂载模式下
         4、alter  database  open ;
              尝试打开数据库,注意报错信息。
              一般会报错如下(为英文)。
              ora-00313:无法打开日志组1(线程1)的成员
              ora-00312:联机日志1线程1:‘../REDO01.LOG’。
              可以确定是REDO01.LOG日志被误删了,导致缺失。 

         3、select group#,sequence#,archived,status from v$log;
               查看重组日志组成员和个数状态信息。
         4、alter database clear logfile group 1;
               清除任务组1的日志文件
         5、alter database open
               再次尝试打开数据库
               依旧报错。
                ora-00313:无法打开日志组2(线程1 )的成员                ora-00312:联机日志1线程1:‘../REDO0 2.LOG ’。
              可以确定是REDO02.LOG日志也被误删了,导致缺失。
         6、 
alter database clear logfile group 2;
               清除任务组2的日志文件
         7、 
alter database open
               再次尝试打开数据库
               依旧报错。
                ora-00313:无法打开日志组3(线程1 )的成员
                ora-00312:联机日志3线程1:‘../REDO0 3.LOG ’。
               可以确定是REDO03.LOG日志也被误删了,导致缺失。
         8、 
alter database clear logfile group 3;
               
清除任务组3的日志文件。但此时报错!
               ora-01624:日志3需要恢复
               ora-00312:联机日志3线程1:‘../REDO03.LOG’。
               这是因为日志3正是当前数据库使用的重做日志,无法直接清除。
         9、recover database until cancel;
               恢复数据库
        10、auto
                 第一选择自动,通过归档日志恢复。
                 但若没开启归档日志,则会报错。
                 ora-00308:不能打开archive.log日志
                 ora-27037:无法获取文件状态
        11、recover database until cancel;
                 二次尝试恢复数据库
        12、cancel
                这次选择cancel
        13、alter databse open;
                再次打开数据库,一般都会成功,但仍有数据库会失败(我解决时就是后者,失败了) 
                失败,请继续执行步骤14。
        14、alter database open resetlogs;
                 ora-01194:文件1需要更多的恢复。
                 ora-01110:data file '../undo01.dbf'
        15、shutdown immediate;
                  先关闭数据库。
        16、在pfile加入隐藏参数
                   *_allow_resetlogs_corruption=TRUE
        17、startup mount pfile='../xxx.ora';
                   启动到mount下
        18、alter databse open ;
                  再次尝试打开,失败!
                  ora-00600: [13013] [5001] [267]
                  这意味着警告日志也有报错。
        19、show parameter undo;
                  查看重做表空间
        20、drop system undotbs01 including contents and datafiles
                  尝试删除undo表空间。
                  失败,提示需要打开数据库才能删除。
        21、shutdown immediate
                   关闭数据库
        22、新建一个pfile1文件,将其中的undo_management=Manual
                  将自动管理重做关闭
        23、startup mount  pfile='../pfile1';
                   启动到挂载模式
        24、alter database open;
                   打开数据库。
        25、show parameter undo;
                   再次查看undo表空间
        26、create UNDO tablespace UNDOTBS datafile '../undotbs01.dbf' size 5120m;
                   创建新的undo表空间
        27、drop tablespce undotbs1 including contents and datafiles;
                   删除旧的undo表空间
        28、alter system set undo_tablespace='UNDOTBS'
                  将undo参数配置改为新的UNDOTBS
        29、shutdown immediate;
                  关闭数据库
        30、startup;
                  重启解决!

猜你喜欢

转载自blog.csdn.net/wzh474420999/article/details/79634425