Currentonline Redo 和 Undo 损坏的处理方法

2014-11-24 18:45:13 · 作者: · 浏览: 0

上面的2篇文章讲到了Oracle 一些故障下的恢复方法,但是还有2点,之前没有做详述。即current online redo 损坏的情况和undo的损坏情况。 之所以把他们放一起讲,是因为他们之间有联系。


在做操作之前,最好把控制文件,redo log 和数据文件做一个冷备份,以防万一.


. UNDO 的补充信息


所以这里补充说明一下。 在补充之前先讲一下undo segment的概念。




中提到了Oracle undo 有两种管理方式,通过参数undo_management来设置auto manual



1.1 undo_management被设置成MENUAL时使用系统回滚段, 即将undo records 记录到SYSTEM 表空间下的SYSTEM段。



SQL> col segment_name format a10


SQL> select segment_name,tablespace_name,bytes,next_extent from dba_segments where segment_type='ROLLBACK';



SEGMENT_NA TABLESPACE_NAME BYTES NEXT_EXTENT


---------- ------------------------------ ---------- -----------


SYSTEM SYSTEM 393216 1048576



通过上面的这条语句,我们查到了这个用于rollback system segment 存在与system 表空间。 默认情况下,只有一个segment,并且它还比较小,所以,如果使用system 段来存储undo records。肯定会影响数据库的性能。 所以Oracle 是建议使用Undo tablespace 来管理undo records



1.2 undo_management设置成AUTO时使用UNDO tablespace来管理回滚段。 这个时候,我们将有多个undo segment,并且这些segment 是存放在UNDO 表空间里的。 这样对DB的性能就会提高。



SQL> select segment_name,tablespace_name,bytes,next_extent from dba_segments where segment_type='TYPE2 UNDO';



SEGMENT_NAME TABLESPACE_NAME BYTES NEXT_EXTENT


-------------------- -------------------- ---------- -----------


_SYSSMU1$ UNDOTBS1 1179648 65536


_SYSSMU2$ UNDOTBS1 1179648 65536


_SYSSMU3$ UNDOTBS1 2228224 65536


_SYSSMU4$ UNDOTBS1 1179648 65536


_SYSSMU5$ UNDOTBS1 262144 65536


_SYSSMU6$ UNDOTBS1 1179648 65536


_SYSSMU7$ UNDOTBS1 1179648 65536


_SYSSMU8$ UNDOTBS1 1179648 65536


_SYSSMU9$ UNDOTBS1 1179648 65536


_SYSSMU10$ UNDOTBS1 1179648 65536



通过以上SQL的查询结果,我们可以看出,有10undo segment来存放undo records



以上我们是通过dba_segment 表查看的结果。 也可以通过v$rollstatv$rollname 两个视图来查看信息。 2个视图会显示所有rollback 段的信息。 包括system段和undo段。



SQL> col name format a15


SQL> select s.usn,n.name,s.extents,s.hwmsize,s.status from v$rollstat s, v$rollname n where s.usn=n.usn;



USN NAME EXTENTS HWMSIZE STATUS


---------- --------------- ---------- ---------- ---------------


0 SYSTEM 6 385024 ONLINE


1 _SYSSMU1$ 3 7659520 ONLINE


2 _SYSSMU2$ 3 9691136 ONLINE


3 _SYSSMU3$ 4 7462912 ONLINE


4 _SYSSMU4$ 3 76668928 ONLINE


5 _SYSSMU5$ 4 8511488 ONLINE


6 _SYSSMU6$ 3 7462912 ONLINE


7 _SYSSMU7$ 3 33480704 ONLINE


8 _SYSSMU8$ 3 8577024 ONLINE


9 _SYSSMU9$ 3 7462912 ONLINE


10 _SYSSMU10$ 3 13754368 ONLINE



11 rows selected.