环境模拟
因为手头没有19.3的环境,用了一个centos 7.9下的18.3的cdb环境,开启了归档
在pdb中创建表,模拟构造数据
然后删除redo log来模拟损坏
模拟插入的过程,及错误时的报错
大致流程
- 配置参数、事件启动
- Alter database open [resetlogs];+alter database recover usning bakcup controlfle;
- Undo使用manual
- 处理undo表空间
- 其他强起的伴生问题处理
针对性错误
ORA-00313
解决办法
*._allow_resetlogs_corruption=true
ORA-00600: [kcbzib_kcrsds_1]
解决办法
’ *.event='21307096 trace name context forever, level 3'
ORA-00600: [4194]
【4193】【4194】【4197】都是同类undo问题
解决办法
*.undo_management=manual
后续收尾
重建undotbs
表t完全丢失了
检查undo段情况,这次模拟运气不好,没有损坏的undo段,这种时候直接替换undotbs就可以了
如果有undo段损坏,使用参数
*._corrupted_rollback_segments=(_SYSSMU4_xxxxxxx$)
重启,然后舍弃undotbs1,再重建
伴生的错误ORA-00600:[kdsgrp1]
Alert日志中,关闭sqlplus时会出现
排查完是sys.COL_USAGE$有损坏。影响不大。正常流程这个应该是将强起的库导出再重建。毕竟内置的很多表损坏不可知。
总结
流程上11g的强起区别不大,ora600[2662]、[2663]变成[kcbzib_kcrsds_1],本质还是一致性问题,还是需要推scn。
核心事件
event=21307096 这个事件包含整个12c的生命周期了。从12.1-19都能用。
参考:
Force Open Database after applying Patch 21307096 (Doc ID 2674196.1)
Step by step to resolve ORA-600 4194 4193 4197 on database crash (Doc ID 1428786.1)