一次ORA-01548错误的处理

背景:客户生产系统数据库因为断电导致数据库启来后台ALERT中出现大量undo needs recovery报错


 操作系统版本:AIX 5.3

数据库版本:  10.0.2.3 RAC+ASM


问题:
后台ALERT中出现大量undo needs recovery报错,但是数据还能正常启动

处理步骤:

1. 首先我想到的就是查询数据字典:
SQL> select file#,name,status from v$datafile;

结果: undotbs1 表空间的状态是recover.

2.建立了新的回滚表空间undotbs2,删除原来undo表空间

SQL> drop tablespace undotbs1;
drop tablespace undotbs1
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU10$' found, terminate dropping tablespace

4. 查看系统回滚段的情况

SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs;

结果:_SYSSMU10 的状态是 "NEED RECOVERY"

5. 使用隐含参数_CORRUPTED_ROLLBACK_SEGMENTS.

1) 创建pfile文件,create pfile='initliferpt.ora' from spfile;

2) 修改init.ora 文件,加上:

*.SPFILE='+DGROUP1/liferpt/spfileliferpt.ora'
_CORRUPTED_ROLLBACK_SEGMENTS =(_SYSSMU10$)
undo_management=manual
undo_retention=10800
undo_tablespace=UNDOTBS

6. 关闭数据库

7. 重新打开数据库

startup pfile='initliferpt.ora';

8. 删除已经不用的undotbs1

drop tablespace undotbs1 including contents and datafiles

9. 关闭instance,重新启动实例

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

转载于:http://blog.itpub.net/21605631/viewspace-715560/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值