咨询微信: dbservice1234 7 x 24 在线支持!

Oracle 11g 删除redo和控制文件后的强制开库

Oracle 11g 删除redo和控制文件后的强制开库

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

 

场景:

在数据库open的时候,删除控制文件和所有的redo文件。只有数据文件,shutdown abort 后。然后进行恢复。

 

2.操作步骤

 

1.在参数文件中加入隐藏强制开库参数:

startup nomount

 

alter system set “_allow_resetlogs_corruption”=true scope=spfile;

alter system set  undo_management=manual  scope=spfile;

 

–注意此处要设置回滚段为手动,否则就算打开了,实例还是可能会由于ORA-4194被PMON中止。

 

startup nomount force

 

2.此时由于丢失了reodo,所以使用resetlogs 方式创建控制文件

 

create controlfile reuse database “CRS”

resetlogs noarchivelog

logfile

group 1 ‘/home/oracle/crs/REDO01.LOG’ size 50M,

group 2 ‘/home/oracle/crs/REDO02.LOG’ size 50M,

group 3 ‘/home/oracle/crs/REDO03.LOG’ size 50M

datafile

‘/home/oracle/crs/SYSTEM01.DBF’,

‘/home/oracle/crs/SYSAUX01.DBF’,

‘/home/oracle/crs/UNDOTBS01.DBF’,

‘/home/oracle/crs/USERS01.DBF’,

‘/home/oracle/crs/EXAMPLE01.DBF’,

‘/home/oracle/crs/MYDB.DBF’

maxlogfiles 50

maxdatafiles 200

maxlogmembers  3;

 

3.尝试恢复并启动

recover database usibg backup controlfile until cancel;

alter database open resetlogs;

 

注意此时还可能出现:

ORA-16433

 

16433

当出现2662的时候,那么就需要重建控制文件

 

 

此时使用alter database open resetlogs会出现:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00600: internal error code, arguments: [2662], [0], [18045054], [0],

[18045088], [4194432], [], [], [], [], [], []

Process ID: 16029

Session ID: 1 Serial number: 3

 

ORA-600-2262错误:

由于数据文件的SCN 大于数据的SCN

 

4.处理ORA-2662并强制开库

考虑使用10015 来触发 adjust_scn,注意10g之后,adjust_scn默认是禁用的。必须在参数文件中设置_ALLOW_ERROR_SIMULATION=true:

startup nomount

alter system set “_ALLOW_ERROR_SIMULATION”=true

shutdown immediate

startup mount

recover database until cancel using backup controlfile;

–若出现ORA-16443重复步骤2,重新来过。

 

 

alter session set events ‘10015 trace name adjust_scn level 1’;

alter database open restetlogs;

 

 

adjust_scn的计算方式:

 

一般情况只用看第5个值,例如 18045088 ,每10亿 是一个等级。

精确计算是第4个值 *4 +第5个值。此处就是0*4+18045088 小于10亿,所以此处设置 1就可以了。

会根据直接递增数据库的SCN

 

 

参考:

Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ID 1428786.1)