- 最后登录
- 2018-9-14
- 在线时间
- 47 小时
- 威望
- 205
- 金钱
- 2327
- 注册时间
- 2011-10-13
- 阅读权限
- 150
- 帖子
- 90
- 精华
- 0
- 积分
- 205
- UID
- 26
|
3#
发表于 2017-8-17 16:45:24
本帖最后由 biotwang 于 2017-8-17 16:46 编辑
undo损坏恢复 (有事务影响)
** 接上面的例子,正在使用UNDOTBS02, 此UNDOTBS02损坏- startup nomount;
- create pfile='/tmp/pfile' from spfile;
复制代码 修改pfile- *._allow_resetlogs_corruption=true
- *._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
- startup pfile='/tmp/pfile' mount;
复制代码 undo数据文件不用离线也可以打开,若不行则采用下面的方法- alter database datafile '/opt/oracle/oradata/PROD1/UNDOTBS01.dbf' offline drop;
- alter database open;
- drop tablespace undotbs1;
- CREATE UNDO TABLESPACE UNDOTBS01
- DATAFILE '/opt/oracle/oradata/PROD1/UNDOTBS01.dbf' SIZE 50M;
复制代码 查看是否有回滚段被创建,处于offline状态,若应该都正常online了。- select segment_name,status from dba_rollback_segs;
- shutdown immediate;
复制代码 修改pfile:- *.undo_tablespace='UNDOTBS01'
- startup pfile='/tmp/pfile'
复制代码 使数据文件先离线,如果开始已经离线,这里不需要处理- –- alter tablespace undotbs1 offline normal;
- select segment_name,status from dba_rollback_segs;
- drop rollback segment "_SYSSMUx$";
- drop tablespace UNDOTBS02 including contents and datafiles;
- select * from v$recover_file; –-验证是否还有文件需要恢复
- shutdown immediate
复制代码 修改参数文件- #*._allow_resetlogs_corruption=true
- #*._corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,
- _SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
- startup pfile='/tmp/pfile';
- create spfile from pfile='/tmp/pfile';
复制代码 |
|