千家信息网

oracle非归档模式,没有备份,直接拔电导致Undo损坏怎么办

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要介绍oracle非归档模式,没有备份,直接拔电导致Undo损坏怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!非归档模式,没有备份,直接拔电导致Undo损坏启动
千家信息网最后更新 2024年11月30日oracle非归档模式,没有备份,直接拔电导致Undo损坏怎么办

这篇文章主要介绍oracle非归档模式,没有备份,直接拔电导致Undo损坏怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

非归档模式,没有备份,直接拔电导致Undo损坏
启动数据库,检查故障信息
SQL> conn / as sysdba
SQL> startup pfile=' ';
报错,ORA-03113:end-of-file on communucation channel
查看alert log,发现文件2发生错误,导致600错误
先查看文件2的名字
SQL> conn / as sysdba
SQL> startup mount pfile='';
SQL> select file#,status,name from v$datafile;
查看可知文件2是undo数据文件,查看资料,undotbs损坏时可采用隐含参数临时启动数据库,然后进行修复
修改init文件,加入
._allow_resetlogs_corruption=true(允许在数据文件SCN不一致的情况下启动数据库)
._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,
_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$,_SYSSMU11$) 允许在rollback segments损坏的情况下启动数据库
SQL> shutdown abort;
SQL> startup pfile='';
启动成功,查看当前的rollback segments
SQL> select segment_name,status from dba_rollback_segs;

新建一个重做表空间undo
SQL> create undo tablespace undo datafile '' size 50M reuse autoextend on;
SQL> select segment_name,status from dba_rollback_segs;
修改系统默认的Undo段
SQL> alter system set undo_tablespace=undo;

删除损坏的undotbs1表空间
SQL> alter tablespace undotbs1 offline normal;
SQL> drop tablespace undotbs1 including contents and datafiles;
SQL> select from v$recover_file;
无数据
SQL> shutdown immediate;
修改参数文件,注释掉刚才添加的参数
#
._allow_resetlogs_corruption=true(允许在数据文件SCN不一致的情况下启动数据库)
#*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,
_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$,_SYSSMU11$) 允许在rollback
启动数据库:
SQL> startup pfile='';

以上是"oracle非归档模式,没有备份,直接拔电导致Undo损坏怎么办"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0