使用ODU恢复9208数据库一例
本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客
本文链接地址: 使用ODU恢复9208数据库一例
1 |
某客户的9208数据库出现故障,alert的呈现的是如下信息: |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
Wed Oct 19 08:30:36 2011 Thread 1 advanced to log sequence 3055 Current log# 3 seq# 3055 mem# 0: /oracle/oradata/ncdb/redo03.log Wed Oct 19 12:46:57 2011 Thread 1 advanced to log sequence 3056 Current log# 1 seq# 3056 mem# 0: /oracle/oradata/ncdb/redo01.log Wed Oct 19 16:16:23 2011 Errors in file /opt/oracle/admin/ncdb/udump/ncdb_ora_8178.trc: ORA-00603: ORACLE server session terminated by fatal error ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 Wed Oct 19 16:17:23 2011 Errors in file /opt/oracle/admin/ncdb/udump/ncdb_ora_9804.trc: ORA-00603: ORACLE server session terminated by fatal error ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 Wed Oct 19 16:18:42 2011 Errors in file /opt/oracle/admin/ncdb/udump/ncdb_ora_1713.trc: ORA-00603: ORACLE server session terminated by fatal error ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 ORA-01115: IO error reading block from file 13 (block # 621195) ORA-01110: data file 13: '/oracle/oradata/ncdb/NNC_DATA03.dbf' ORA-27091: skgfqio: unable to queue I/O ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 621194 Wed Oct 19 22:40:35 2011 KCF: write/open error block=0x3b6a online=1 file=2 /oracle/oradata/ncdb/undotbs01.dbf error=27072 txt: 'Linux-x86_64 Error: 5: Input/output error Additional information: 15209' Wed Oct 19 22:40:35 2011 Errors in file /opt/oracle/admin/ncdb/bdump/ncdb_dbw4_8141.trc: ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode ORA-01114: IO error writing block to file 2 (block # 15210) ORA-01110: data file 2: '/oracle/oradata/ncdb/undotbs01.dbf' ORA-27072: skgfdisp: I/O error Linux-x86_64 Error: 5: Input/output error Additional information: 15209 DBW4: terminating instance due to error 1242 Instance terminated by DBW4, pid = 8141 Thu Oct 20 07:21:54 2011 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 SCN scheme 3 Using log_archive_dest parameter default value LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up ORACLE RDBMS Version: 9.2.0.8.0. System parameters with non-default values: |
1 |
从其中一个trace,还能找到如下信息: |
1 2 3 4 5 6 7 8 9 |
Corrupt block relative dba: 0x00000001 (file 0, block 1) Fractured block found during control file header read Data in bad block - type: 21 format: 2 rdba: 0x00000001 last change scn: 0xffff.000029de seq: 0x1 flg: 0x04 consistency value in tail: 0x2a141501 check value in block header: 0x25ac, computed block checksum: 0x3ca spare1: 0x0, spare2: 0x0, spare3: 0x0 *** |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
很明显,file header出现坏块了。 通过dbv检查发现有数千个坏块,由于该环境无备份,且虽然是归档模式, 但是未启动自动归档,以至于多方人马进行恢复,终以失败而告终。 最后通过老熊的ODU进行了数据的抽取恢复,这里简单的说明一下注意事项: 1. 要注意control.txt的配置,output_format可以设置为txt或dmp两种形式, 如果是txt,那么抽取以后的数据我们需要使用sqlldr进行加载,如果是dmp格式 当然就使用imp导入即可(导入时注意字符集); 2. 注意字节序的问题,根据平台设置byte_order 3. 其他参数,也需要根据实际情况进行修改,比如compatible,db_block_checksum 需要注意的是,db_block_checksum设置为true,将会去检查block中的checksum值 这里说明一下的是oracle是根据异或算法将计算的值写入到block的第16,17位置。 相对来说设置为true在速度上有一微小的差异。 通过这次恢复,也感受到了ODU的强悍,大家可以去这里下载 <a href="http://www.oracleodu.com/cn/" style="font-size: 12px; text-decoration: underline; color: #0000ff; font-family: monospace;">http://www.oracleodu.com/cn/</a> |
3 Responses to “使用ODU恢复9208数据库一例”
写的太简洁了
有付版权费不,哈哈,开个玩笑
博主太有才了!
Leave a Reply
You must be logged in to post a comment.