利用BBED工具重现生产系统UNDO故障

不久前,公司一套Oracle 9i数据库出现了Dead事务,具体表现为数据库事务SMON回滚事务出现死循环,导致数据库redo log激增,(不断重写UNDO,抹掉重写抹掉重写….),CPU使用率高居不下。Dead事务无法清除,造成了生产系统巨大安全隐患,数据库CPU Idle基本为0,巨大的Redo使得数据库恢复成为可能中的不可能…..

数据库出现Dead事务,死循环回滚是因为UNDO BLOCK出现逻辑损坏,处理思路将该事务所用的回滚段DROP掉,代价为事务的提交结果回滚状态不可控,经与应用确认可忽略此事务的最终状态,所以决定使用本案例中的处理方案。

因ORACLE 9i数据库测试资源有限,我使用了11g 11.2.0.4版本测试环境重现UNDO BLOCK逻辑问题及处理方式。

一.故障现象模拟

(1)数据库建立新事务,不提交或回滚并查看事务信息:

undo_corruption_block -11

 

undo_corruption_block -21

继续阅读

一套核心业务数据库ORA-00600

近期,我们业务中一套核心数据库节点2发生自动重启,该数据库架构为3节点RAC+2节点DataGuard架构,虽然节点2重启并不会对实际业务产生数据库服务中断,但是该数据库承载业务的过于重要,看到故障告警时瞬间神经紧绷,不敢有丝毫懈怠。

数据库信息:

RAC 3节点,AIX6.1,11.2.0.4数据库版本

ORA600-1

 

继续阅读