Email: service@parnassusdata.com 7 x 24 online support!
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
当出现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)