时间:2021-07-01 10:21:17 帮助过:26人阅读
在上一篇中,我们删除redo,然后通过非常规方法使得cdb open成功,但是pdb无法正常mount,通过查询mos确定是bug 16784143,具体见:ORACLE 12C redo异常恢复测试—部分pdb未正常open, 通过给数据库打上12.1.0.3的patch之后,发现已经损坏的数据库的pdb无法正常open,
在上一篇中,我们删除redo,然后通过非常规方法使得cdb open成功,但是pdb无法正常mount,通过查询mos确定是bug 16784143,具体见:ORACLE 12C redo异常恢复测试—部分pdb未正常open,通过给数据库打上12.1.0.3的patch之后,发现已经损坏的数据库的pdb无法正常open,但是在损坏之前如果是打上补丁的数据库其pdb可以正常open
patch信息
C:\Users\XIFENFEI>E:\oracle\product\11.2.0\dbhome_1\OPatch\opatch lspatches 17977915;WINDOWS DB BUNDLE PATCH 12.1.0.1.3 (64bit): (17977915)
session 1
XIFENFEI_CDB$ROOT@SYS> show con_name; CON_NAME ------------------------------ CDB$ROOT XIFENFEI_CDB$ROOT@SYS> create table t_xifenfei as select * from dba_users; 表已创建。 XIFENFEI_CDB$ROOT@SYS> delete from t_xifenfei; 已删除 35 行。 XIFENFEI_CDB$ROOT@SYS>
session 2
XIFENFEI_CDB$ROOT@SYS> show con_name; CON_NAME ------------------------------ PDB1 XIFENFEI_CDB$ROOT@SYS> create table t_xifenfei as select * from dba_users; 表已创建。 XIFENFEI_CDB$ROOT@SYS> delete from t_xifenfei; 已删除 36 行。 XIFENFEI_CDB$ROOT@SYS>
session 3
XIFENFEI_CDB$ROOT@SYS> alter session set container=pdb2; 会话已更改。 XIFENFEI_CDB$ROOT@SYS> alter database open; 数据库已更改。 XIFENFEI_CDB$ROOT@SYS> show con_name; CON_NAME ------------------------------ PDB2 XIFENFEI_CDB$ROOT@SYS>
session 4
XIFENFEI_CDB$ROOT@SYS> shutdown abort; ORACLE 例程已经关闭。
删除所有redo,并启动数据库
C:\Users\XIFENFEI>sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on 星期日 3月 30 21:07:55 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. 已连接到空闲例程。 idle> startup mount; ORACLE 例程已经启动。 Total System Global Area 400846848 bytes Fixed Size 2440024 bytes Variable Size 289408168 bytes Database Buffers 100663296 bytes Redo Buffers 8335360 bytes 数据库装载完毕。 idle> alter database open; alter database open * 第 1 行出现错误: ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员 ORA-00312: 联机日志 3 线程 1: 'E:\APP\XIFENFEI\ORADATA\XIFENFEI\REDO03.LOG' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 尝试恢复数据库 1 idle> select status,group# from v$log; STATUS GROUP# ---------------- ---------- INACTIVE 1 CURRENT 3 INACTIVE 2 idle> recover database until cancel; ORA-00279: 更改 2821739 (在 03/30/2014 20:58:39 生成) 对于线程 1 是必需的 ORA-00289: 建议: E:\APP\XIFENFEI\FAST_RECOVERY_AREA\XIFENFEI\ARCHIVELOG\2014_03_30\O1_MF_1_36_%U_ .ARC ORA-00280: 更改 2821739 (用于线程 1) 在序列 #36 中 指定日志: {=suggested | filename | AUTO | CANCEL} auto ORA-00308: 无法打开归档日志 'E:\APP\XIFENFEI\FAST_RECOVERY_AREA\XIFENFEI\ARCHIVELOG\2014_03_30\O1_MF_1_36_%U _.ARC' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00308: 无法打开归档日志 'E:\APP\XIFENFEI\FAST_RECOVERY_AREA\XIFENFEI\ARCHIVELOG\2014_03_30\O1_MF_1_36_%U _.ARC' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误 ORA-01194: 文件 1 需要更多的恢复来保持一致性 ORA-01110: 数据文件 1: 'E:\APP\XIFENFEI\ORADATA\XIFENFEI\SYSTEM01.DBF' idle> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-01194: 文件 1 需要更多的恢复来保持一致性 ORA-01110: 数据文件 1: 'E:\APP\XIFENFEI\ORADATA\XIFENFEI\SYSTEM01.DBF' idle> alter system set "_allow_resetlogs_corruption"=true scope=spfile; 系统已更改。 idle> shutdown immediate ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 idle> startup mount; ORACLE 例程已经启动。 Total System Global Area 400846848 bytes Fixed Size 2440024 bytes Variable Size 289408168 bytes Database Buffers 100663296 bytes Redo Buffers 8335360 bytes 数据库装载完毕。 idle> recover database until cancel; ORA-00279: 更改 2821739 (在 03/30/2014 20:58:39 生成) 对于线程 1 是必需的 ORA-00289: 建议: E:\APP\XIFENFEI\FAST_RECOVERY_AREA\XIFENFEI\ARCHIVELOG\2014_03_30\O1_MF_1_36_%U_ .ARC ORA-00280: 更改 2821739 (用于线程 1) 在序列 #36 中 指定日志: {=suggested | filename | AUTO | CANCEL} cancel ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误 ORA-01194: 文件 1 需要更多的恢复来保持一致性 ORA-01110: 数据文件 1: 'E:\APP\XIFENFEI\ORADATA\XIFENFEI\SYSTEM01.DBF' ORA-01112: 未启动介质恢复 idle> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00600: internal error code, arguments: [2662], [0], [2821746], [0], [2822649], [4194545], [], [], [], [], [], [] 进程 ID: 6880 会话 ID: 242 序列号: 3 idle> startup mount; SP2-0642: SQL*Plus 内部错误状态 2133, 上下文 3114:0:0 继续执行将不安全 ORA-03114: 未连接到 ORACLE --使用bbed解决dul问题,出现新问题 idle> alter database open; alter database open * 第 1 行出现错误: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [4194], [61], [4], [], [], [], [], [], [], [], [], [] 进程 ID: 5932 会话 ID: 242 序列号: 3 idle> ALTER SYSTEM SET UNDO_MANAGEMENT='MANAUL' SCOPE=SPFILE; 系统已更改。 idle> SHUTDOWN IMMEDIATE; ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 idle> startup mount; ORACLE 例程已经启动。 Total System Global Area 400846848 bytes Fixed Size 2440024 bytes Variable Size 281019560 bytes Database Buffers 109051904 bytes Redo Buffers 8335360 bytes 数据库装载完毕。 idle> alter database open; 数据库已更改。 [/sql open pdb 1 idle> alter session set container=pdb1; 会话已更改。 idle> alter database open; 数据库已更改。 idle> alter session set container=pdb2; 会话已更改。 idle> alter database open; 数据库已更改。 idle> alter session set container=pdb1; 会话已更改。
ORACLE 12C的bug估计不会太少,急于上12C的朋友,强烈建议打上最先patch,少踩一些雷
原文地址:ORACLE 12C redo异常恢复测试—打上patch恢复完全, 感谢原作者分享。