[实施目标]
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博客 ” ,链接:https://blog.itpub.net/29893219/viewspace-1852326/
,如需转载,请注明出处,否则将追究法律责任。