Welcome 微信登录

首页 / 数据库 / MySQL / Currentonline Redo 和 Undo 损坏的处理方法

Oracle 不同故障的恢复方案 http://www.linuxidc.com/Linux/2011-09/42705.htm
Oracle undo 表空间管理 http://www.linuxidc.com/Linux/2011-07/38006.htm上面的2篇文章讲到了Oracle 一些故障下的恢复方法,但是还有2点,之前没有做详述。即current online redo 损坏的情况和undo的损坏情况。 之所以把他们放一起讲,是因为他们之间有联系。在做操作之前,最好把控制文件,redo log 和数据文件做一个冷备份,以防万一.一.  UNDO 的补充信息所以这里补充说明一下。 在补充之前先讲一下undo segment的概念。  Oracle undo 管理 http://www.linuxidc.com/Linux/2011-09/42706.htm 中提到了Oracle 的undo 有两种管理方式,通过参数undo_management来设置auto 和 manual。 1.1 当undo_management被设置成MENUAL时使用系统回滚段, 即将undo records 记录到SYSTEM 表空间下的SYSTEM段。 SQL> col segment_name format a10SQL> 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的查询结果,我们可以看出,有10个undo segment来存放undo records。        以上我们是通过dba_segment 表查看的结果。 也可以通过v$rollstat和v$rollname 两个视图来查看信息。 这2个视图会显示所有rollback 段的信息。 包括system段和undo段。 SQL> col name format a15SQL> 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.
  • 1
  • 2
  • 3
  • 下一页
Oracle 10g impdp 报 ORA-7445 [_INTEL_FAST_MEMCPY.A] 解决方法Oracle ORA-600[4193] 解决方法 说明相关资讯      undo 
  • Oracle 11g undo_retention 以及  (05月28日)
  • undo表空间使用率  (07/23/2015 16:29:56)
  • undo表空间概述  (02/24/2015 20:32:43)
  • Oracle中利用undo进行数据的恢复操  (11/27/2015 09:31:30)
  • undo表空间修复小结  (07/08/2015 08:43:13)
  • Oracle 11gR2 Database UNDO表空间  (01/29/2015 11:30:59)
本文评论 查看全部评论 (0)
表情: 姓名: 字数