今天就跟大家聊聊有关noarchive数据库current redo log损坏且没有备份如何应对,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
昨天,一台oracle 数据库由于磁盘问题,造成current
redo log 损坏,down 机后无法启动数据库。
环境: windows2003 + oracle 9i
操作如下:
startup mount;
create pfile from spfile;
shudown immediate;
关闭当前数据库后,将所有oracle 下\ora92\ ,\oradata\ yw \ 目录拷贝到出来,将密码文件和pfile 备份。
在另一台计算机上安装了一个新的oracle,并且重建库,实例名和数据库名与前相同-----yw。
用备份的\oradata\yw\覆盖新库的\ora\data\yw\.
覆盖原来的密码文件和 pfile.
在pfile 中增加:
__ALLOW_RESETLOGS_CORRUPTION=TRUE
SQL> startup mount pfile=c:\oracle\ora92\database\INITyw.ora;
ORACLE instance started.
Total System Global Area 2483027968 bytes
Fixed Size 2074760 bytes
Variable Size 1090520952 bytes
Database Buffers 1375731712 bytes
Redo Buffers 14700544 bytes
Database mounted.
SQL> recover database until cancel;
输入cancel
SQL> alter database open resetlogs;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> alter database open;
查看alert_yw.log 文件:
RESETLOGS after incomplete recovery UNTIL CHANGE 9431879262014
Resetting resetlogs activation ID 3761166285 (0xe02ed7cd)
Online log 2 of thread 1 was previously cleared
Online log 3 of thread 1 was previously cleared
Mon Dec 21 14:43:32 2009
Assigning activation ID 3761145403 (0xe02e863b)
Thread 1 opened at log sequence 1
Current log# 1 seq# 1 mem# 0: D:\ORACLE\ORADATA\NMYW\REDO01.LOG
Successful open of redo thread 1.
Mon Dec 21 14:43:32 2009
SMON: enabling cache recovery
Mon Dec 21 14:43:32 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_265156.trc:
ORA-00600: 内部错误代码,参数:
[2662], [2196], [131080003], [2196], [131139845], [8388617], [], []
Mon Dec 21 14:43:32 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_265156.trc:
ORA-00600: 内部错误代码,参数: [2662], [2196], [131080003], [2196], [131139845], [8388617], [], []
Mon Dec 21 14:43:32 2009
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Instance terminated by USER, pid = 265156
ORA-1092 signalled during: alter database open resetlogs...
Mon Dec 21 14:48:33 2009
USER: terminating instance due to error 1092
Instance terminated by USER, pid = 265156
SQL> connect / as sysdba;
SQL>startup mount pfile=c:\oracle\ora92\database\INITyw.ora;
SQL> select file#,checkpoint_change# from v$datafile;
发现所有的datafile 的checkpoint_scn 都是大得出奇:
利用10015事件进行adjust_scn
level 1 = 1billion (12位整数)
SQL> alter session set events '10015 trace name adjust_scn level 1';
SQL> alter database open ;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> alter database open;
查看alert_yw.log 文件:
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_269012.trc:
ORA-00600: 内部错误代码,参数: [2256], [0], [1073741824],[2196],[131100005], [], [], []
Mon Dec 21 15:18:11 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_269012.trc:
ORA-00600: 内部错误代码,参数: [2256], [0], [1073741824], [2196], [131100005], [], [], []
level = (2196+1) *4=8788
SQL>alter session set events '10015 trace name adjust_scn level 8788';
SQL> alter database open;
报错:
查看alert_yw.log 文件:
Debugging event used to advance scn to 9436043149312
Undo Segment 1 Onlined
Undo Segment 2 Onlined
Undo Segment 3 Onlined
Undo Segment 4 Onlined
Undo Segment 5 Onlined
Undo Segment 6 Onlined
Undo Segment 7 Onlined
Undo Segment 8 Onlined
Undo Segment 9 Onlined
Undo Segment 10 Onlined
Successfully onlined Undo Tablespace 1.
Dictionary check beginning
Dictionary check complete
Mon Dec 21 15:50:52 2009
SMON: enabling tx recovery
Mon Dec 21 15:50:52 2009
Database Characterset is ZHS16GBK
Mon Dec 21 15:50:54 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_273712.trc:
ORA-00600: 内部错误代码,参数: [4193], [38371], [38432], [], [], [], [], []
Mon Dec 21 15:50:54 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_p000_272924.trc:
ORA-00600: internal error code, arguments: [ktbsdp1], [], [], [], [], [], [], []
Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\NMYW\REDO02.LOG
Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\NMYW\REDO02.LOG
Mon Dec 21 15:50:56 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_p000_272924.trc:
ORA-00339: archived log does not contain any redo
ORA-00334: archived log: 'D:\ORACLE\ORADATA\NMYW\REDO03.LOG'
ORA-00600: internal error code, arguments: [ktbsdp1], [], [], [], [], [], [], []
Mon Dec 21 15:50:56 2009
Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\NMYW\REDO02.LOG
Mon Dec 21 15:50:56 2009
Errors in file d:\oracle\admin\nmyw\udump\nmyw_ora_273712.trc:
ORA-00607: 当更改数据块时出现内部错误
ORA-00600: 内部错误代码,参数: [4193], [38371], [38432], [], [], [], [], []
报ora-00600 [4193]错误,说明是undo 信息出错,将undo datafile offline 掉即可:
SQL> alter database datafile 'c:\oracle\oradata\yw\undotbs01.ora' offline drop ;
SQL> alter database open ;
Database opened.
利用exp 将数据导出。 重新建库导入,一切ok.
在最后一步如果出现ora-600 [4193] [4194] 错误,如下解决:
ORA-600的4194和4193错误,根据错误信息的看来是Oracle进行恢复的过程中出现了问题。查询METALINK,发现是REDO中的回滚记录和UNDO中的不一致造成的。尝试使用隐含参数_CORRUPTED_ROLLBACK_SEGMENTS来打开数据库。在刚才的建立的inittest08.ora初始化文件中添加下面的信息:
undo_management='MANUAL'
_corrupted_rollback_segments=(_SYSSMU1&,_SYSSMU2&,_SYSSMU3&,_SYSSMU4&,_SYSSMU5&,_SYSSMU6&,_SYSSMU7&,_SYSSMU8&,_SYSSMU9&,_SYSSMU10&,_SYSSMU11&,_SYSSMU12&,_SYSSMU13&,_SYSSMU14&,_SYSSMU15&,_SYSSMU16&,_SYSSMU17&,_SYSSMU18&,_SYSSMU19&,_SYSSMU20&,_SYSSMU21&,_SYSSMU22&,_SYSSMU23&,_SYSSMU24&,_SYSSMU25&,_SYSSMU26&,_SYSSMU27&,_SYSSMU28&,_SYSSMU29&,_SYSSMU30&,_SYSSMU31&,_SYSSMU32&,_SYSSMU33&,_SYSSMU34&,_SYSSMU35&,_SYSSMU36&,_SYSSMU37&,_SYSSMU38&,_SYSSMU39&,_SYSSMU40&,_SYSSMU41&)
看完上述内容,你们对noarchive数据库current redo log损坏且没有备份如何应对有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。