oracle odu,【学习笔记】Oracle恢复工具ODU使用笔记 紧急恢复数据库的详细步骤

天萃荷净

Oracle研究中心学习笔记:分享一篇关于Oracle数据库紧急恢复工具ODU的使用案例,在紧急恢复下对Oracle数据库进行数据抽取的详细过程。

本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客

本文链接地址: 使用ODU恢复9208数据库一例

某客户的9208数据库出现故障,alert的呈现的是如下信息:

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:

从其中一个trace,还能找到如下信息:

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

***

很明显,file header出现坏块了。通过dbv检查发现有数千个坏块,由于该环境无备份,且虽然是归档模式,但是未启动自动归档,以至于多方人马进行恢复,终以失败而告终。

最后通过老熊的ODU进行了数据的抽取恢复,这里简单的说明一下注意事项:

1. 要注意control.txt的配置,output_format可以设置为txt或dmp两种形式,如果是txt,那么抽取以后的数据我们需要使用sqlldr进行加载,如果是dmp格式   当然就使用imp导入即可(导入时注意字符集);

2. 注意字节序的问题,根据平台设置byte_order

3. 其他参数,也需要根据实际情况进行修改,比如compatible,db_http://www.oracleplus.netblock_checksum

需要注意的是,db_block_checksum设置为true,将会去检查block中的checksum值   这里说明一下的是oracle是根据异或算法将计算的值写入到block的第16,17位置。

相对来说设置为true在速度上有一微小的差异。

通过这次恢复,也感受到了ODU的强悍,大家可以去这里下载 http://www.oracleodu.com/cn/

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle恢复工具ODU使用笔记 紧急恢复数据库的详细步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值