ITPub博客

首页 > 数据库 > Oracle > Undo表空间修复

Undo表空间修复

原创 Oracle 作者:许愿流星1号 时间:2015-12-03 11:52:13 0 删除 编辑
[实施目标] 
1、 实现数据库的正常运行,各项操作稳定执行。 
[项目环境] 
操作系统  AIX5.3 
主机名  Aix227 
数据库版本  oracle 10.2.0 
实例名  Prod 
[前期工作进展]   
1、 系统为aix5.3的单实例oracle10.2.0 的prod库实现冗余度为2的定
期备份; 
  
[实施步骤] :在一次巡检中,发现undo表空间scn号与其他不一致。告警日志也提示错误。
1、 登陆数据库,巡检数据库; 
 

SQL> list backup of database;           //查询数据库备份 
BS Key    Type LV Size              Device Type Elapsed Time Completion Time 
------- ---- -- ---------- ----------- ------------ --------------- 
3 Incr 0    168.95M        DISK                00:01:03          20-JUN-14            
  BP Key: 320      Status: AVAILABLE    Compressed: YES    Tag: TAG20140620T150003 
                Piece Name: /backup/prod_level0_acpbaovj_1_1_20140620.bak 
  List of Datafiles in backup set 320 
  File LV Type Ckp SCN        Ckp Time    Name 
  ---- -- ---- ---------- --------- ---- 
  1        0    Incr 1195087        20-JUN-14 /u01/app/oracle/oradata/prod/system01.dbf 
  2        0    Incr 950364          18-JUN-14 /u01/app/oracle/oradata/prod/undotbs01.dbf     //发现undo文件备份scn号与其他不一致 (这六个数据文件是由一个channel备份的,应该是一直的才对。)
  3        0    Incr 1195087        20-JUN-14 /u01/app/oracle/oradata/prod/sysaux01.dbf 
  4        0    Incr 1195087        20-JUN-14 /u01/app/oracle/oradata/prod/users01.dbf 
  5        0    Incr 1195087        20-JUN-14 /u01/app/oracle/oradata/prod/example01.dbf 
  6        0    Incr 1195087        20-JUN-14 /u01/app/oracle/oradata/perfstat.dbf 
                                                                                          
2、 查看告警日志 
 
1、[root@aix227:/]#more   /u01/app/oracle/admin/prod/bdump/alert_prod.log    //查看告警日志 
Wed Jun 18 14:40:05 2014 
Errors in file /u01/app/oracle/admin/prod/bdump/prod_pmon_233596.trc: 
ORA-00376: file 2 cannot be read at this time 
ORA-01110:  data  file  2:  '/u01/app/oracle/oradata/prod/undotbs01.dbf'   //发现undo文件损坏 
2 、 SQL>  select  file_name,file_id,tablespace_name,status,online_status  from dba_data_files;         //查看undo表空间状态offline 
FILE_NAME          FILE_ID TABLESPACE_NAME        STATUS        ONLINE_ 
--------------------------------------------- ---------- ------------------------------ --------- ------- 
/u01/app/oracle/oradata/prod/sysaux01.dbf  3      SYSAUX           AVAILABLE ONLINE 
/u01/app/oracle/oradata/prod/system01.dbf  1   SYSTEM      AVAILABLE SYSTEM 
/u01/app/oracle/oradata/prod/example01.dbf  5  EXAMPLE    AVAILABLE ONLINE 
/u01/app/oracle/oradata/perfsta                6      PERFSTAT        AVAILABLE ONLINE 
/u01/app/oracle/oradata/prod/undotbs01.dbf   7 UNDOTBS1  AVAILABLE OFFLINE    //undo 文件offline状态 


3、 解决办法: 
 
 1、SQL>alter database datafile 2 online;                //挂起undo表空间 
alter tablespace undotbs01 online 

ERROR at line 1: 
ORA-30042: Cannot online the undo tablespace。。。。    //数据文件读取错误         
2、由于故障文件错误的在两天以前,昨天和前天还做了全备,冗余度为2。所以rman恢复操作均对此文件无效,尝试重建undo表空间 
3、create undo tablespace undotbs02 datafile '/u01/app/oracle/oradata/prod/undo02.dbf' 
size 500m autoallocate;                                                                  //创建数据文件 
4、SQL> show parameter undo                                                       //查看undo配置 
5、alter system set undo_tabolespace=undotbs02 scope=both;    //更改默认undo表空间 
6、drop tablespace UNDOTBS1 including contents and datafiles; //删表空间与数据文件 
 
drop tablespace undotbs1 including contents and datafiles 
ERROR at line 1: 
ORA-01548: active rollback segment '_SYSSMU1$' found, terminate dropping 
//提示回归段'_SYSSMU1$'活动状态无法删除 
7、SQL> drop rollback segment '_SYSSMU1$';                     //删除回滚段 
drop rollback segment '_SYSSMU1$'                                            * 
ERROR at line 1: 
ORA-02175: invalid rollback segment name '_SYSSMU1$'    //无法删除活动状态


8、  [oracle@aix227:/arch]$vi /u01/app/oracle/product/10.2.0/db_1/dbs/initprod.ora    //修改初始化参数文件 
添加以下内容到pfile文件中,目的是使处于控制文件中活动状态回归段的文件可删: 
*._allow_resetlogs_corruption=true 
*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_S
YSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$
,_SYSSMU10$)                                                                  
9、SQL> startup force                                                        //强制initprod.ora启动 
ORACLE instance started. 
Total System Global Area    977272832 bytes 
Fixed Size                                2025592 bytes 
Variable Size                          322963336 bytes 
Database Buffers                    645922816 bytes 
Redo Buffers                                6361088 bytes 
Database mounted. 
Database opened. 
10、alter rollback segment '_SYSSMU1$' offline;       //脱机回归段1 
11、drop rollback segment '_SYSSMU1$';                  //删除回归段 
Rollback segment dropped. 
12、SQL> drop tablespace undotbs1 including contents and datafiles; 
                                           //删除undotbs1表空间与数据文件 
Tablespacedropped.                                             //正常删除undotbs01 
13、删除添加到pfile中的参数,测试数据库,归档切换正常,对数据库进行全库备
份。

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

请登录后发表评论 登录
全部评论

注册时间:2014-09-18

  • 博文量
    46
  • 访问量
    396061