为了验证当前redo丢失的情况下ORACLE 12C CDB数据库恢复的情况,做了一个小实验,三个会话,分别操作为在root pdb中执行一个delete 不提交;另外一个会话在user pdb中delete记录不提交;最后一个会话中直接abort数据库,然后进行数据库恢复,验证数据库是否可
为了验证当前redo丢失的情况下ORACLE 12C CDB数据库恢复的情况,做了一个小实验,三个会话,分别操作为在root pdb中执行一个delete 不提交;另外一个会话在user pdb中delete记录不提交;最后一个会话中直接abort数据库,然后进行数据库恢复,验证数据库是否可以都正常open(所有pdb)
会话1(root pdb中操作)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
会话2(user pdb中操作)
1 2 3 4 5 6 7 8 9 10 |
|
会话3(直接abort数据库)
1 2 |
|
删除数据库联机日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
启动数据库报ORA-00313错误
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
使用_allow_resetlogs_corruption参数尝试open数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
ora-600[2662]很熟悉,文件头的scn小于文件中某个block的csn,通过bbed等工具修改文件scn,尝试启动数据库
1 2 3 4 5 6 7 8 9 10 11 |
|
尝试open user pdb
1 2 3 4 5 6 7 8 |
|
查询mos得到结论:
Bug 16784143 ORA-600 [kcvfdb_pdb_set_clean_scn: cleanckpt] with PDBs
在12.2/12.1.0.2/12.1.0.1.1中修复,后续尝试打patch,来进一步恢复.
原文地址:ORACLE 12C redo异常恢复测试—部分pdb未正常open, 感谢原作者分享。