noarchive 数据库current redo log 损坏,没有备份如何应对
2012-08-15 18:34
501 查看
昨天,一台oracle[/u] 数据库[/u]由于磁盘问题,造成current
redo log 损坏,down 机后无法启动数据库。
环境: windows2003 + oracle 9i
操作如下:
startup mount;
create pfile from spfile;
shudown immediate;
关闭当前数据库后,将所有oracle 下\ora92\ ,\oradata\ yw \ 目录拷贝到出来,将密码文件和pfile 备份[/u]。
在另一台计算机上安装[/u]了一个新的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: 内部错误代码[/u],参数:
[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&)
redo log 损坏,down 机后无法启动数据库。
环境: windows2003 + oracle 9i
操作如下:
startup mount;
create pfile from spfile;
shudown immediate;
关闭当前数据库后,将所有oracle 下\ora92\ ,\oradata\ yw \ 目录拷贝到出来,将密码文件和pfile 备份[/u]。
在另一台计算机上安装[/u]了一个新的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: 内部错误代码[/u],参数:
[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&)
相关文章推荐
- 没有备份的current状态的redo日志损坏
- 没有备份的current状态的redo日志损坏
- 每天两道oracle笔试题+第九天:1、比较truncate和delete命令的区别?2、如果必须利用备份恢复数据库,但此时没有控制文件,如何应对?
- 2.数据库没有备份---应如何还原丢失的数据
- Sybase系统崩溃了,没有备份,但设备文件还存在,如何恢复数据库?
- 如何使用bat 备份mysql数据库 ,以及还原数据库,并且生成log 日志
- 重装MySQL后如何还原没有备份的数据库
- windows(IBM) raid5硬盘损坏造成current redo log corrupt
- 数据库没有备份---应如何还原丢失的数据 推荐
- sysaux在没有备份的情况下,数据块损坏,数据库启动不了处理
- 执行查询“BACKUP LOG [XXX] TO DISK = N'F:\\BackData\\事务日至备份\\...”失败,错误如下:“无法执行 BACKUP LOG,因为当前没有数据库备份。 BACKUP LOG 正在异常终止。
- 记一次数据库在线current redo损坏故障,2662,ora-600
- 如何备份MySql的数据库
- DBA30问之系统DB有哪些,都有什么作用,需不需要做备份,为什么,损坏了如何做还原(主要是master库)
- SQL Server 2005 如何自动备份数据库
- 教你如何用SQL备份和还原数据库
- 如何对Oracle数据库文件进行恢复与备份
- 丢失或损坏NDF文件如何附加数据库
- 如何在数据库文件损坏情况下,进行恢复
- 解决:Android使用自带sqlite开发时,apk中创建的数据库外部的进程是没有权限去读/写的,而且无法如何读取指定目录下的db文件