ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在undo出现问题后,强制打开数据库进行恢复

在undo出现问题后,强制打开数据库进行恢复

原创 Linux操作系统 作者:JumFlow 时间:2011-06-08 17:06:28 0 删除 编辑
1>修改参数文件,注释掉两个参数:
SQL> create pfile='/oracle/undore.ora' from spfile;


修改pfile
$ vi /oracle/undore.ora

#*.undo_management='AUTO'
#*.undo_tablespace='UNDOTBS1'
*.undo_management='MANUAL'
*.undo_tablespace='SYSTEM'
*._CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)


2> 用修改过的参数启动数据库:
SQL> startup mount pfile=’/oracle/undore.ora’;


3> 启动到mount时, 把undo段离线,再打开数据库:
SQL> alter database datafile '/oracle/oradata/oracle10g1/undotbs01.dbf' offline drop;

SQL> alter database open;

4> 查看原来的回滚段, 凡属于undo的段都drop掉:

select segment_name,tablespace_name,status from dba_rollback_segs;

SQL> drop rollback segment “_SYSSMU1$”;

5> 创建新的回滚表空间:
create undo tablespace undo_02 datafile '/oracle/oradata/oracle10g1/undo_02.dbf' size 500M;

6> down 掉数据库,修改参数文件,增加刚才创建的回滚表空间:
*.undo_management='AUTO'
*.undo_tablespace='UNDO_02'
#*.undo_management='MANUAL'
#*.undo_tablespace='SYST'
#*._CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_S
YSSMU8$,_SYSSMU9$,_SYSSMU10$)

7> 再次用新的参数启动数据库,并查看结果:
SQL> startup pfile='/oracle/undore.ora';

SQL> select segment_name,tablespace_name,status from dba_rollback_segs;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25380220/viewspace-697426/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORA-00600 求救
请登录后发表评论 登录
全部评论

注册时间:2011-03-03

  • 博文量
    72
  • 访问量
    185496