Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

24

积分

1

好友

2

主题
1#
发表于 2012-4-6 14:14:35 | 查看: 8978| 回复: 7
system表空间出现大量坏块,数据库现在启动不了了,没有物理备份,请帮忙看下有什么解决办法
C:\Documents and Settings\Administrator>dbv file= 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'
.......................................

页 3946 标记为损坏
Corrupt block relative dba: 0x00400f6a (file 1, block 3946)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0141599c
last change scn: 0x0000.37dd674d seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x674d068f
check value in block header: 0xcf98
computed block checksum: 0x0

页 3947 标记为损坏
Corrupt block relative dba: 0x00400f6b (file 1, block 3947)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0141599d
last change scn: 0x0000.37dd674d seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x674d0690
check value in block header: 0xda31
computed block checksum: 0x0

页 3948 标记为损坏
Corrupt block relative dba: 0x00400f6c (file 1, block 3948)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0141599e
last change scn: 0x0000.37dd674d seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x674d0691
check value in block header: 0xb7f4
computed block checksum: 0x0

页 3949 标记为损坏
Corrupt block relative dba: 0x00400f6d (file 1, block 3949)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0141599f
last change scn: 0x0000.37dd674d seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x00000001
check value in block header: 0xa3a2
computed block checksum: 0x8b13


DBVERIFY - 验证完成
检查的页总数: 170240
处理的页总数 (数据): 133951
失败的页总数 (数据): 0
处理的页总数 (索引): 18486
失败的页总数 (索引): 0
处理的页总数 (其它): 2368
处理的总页数 (段)  : 0
失败的总页数 (段)  : 0
空的页总数: 11500
标记为损坏的总页数: 3935
流入的页总数: 1
加密的总页数        : 0
最高块 SCN            : 1080292711 (0.1080292711)



[ 本帖最后由 ccton 于 2012-4-6 14:44 编辑 ]

alert_orcl.rar

418.02 KB, 下载次数: 1086

orcl_ora_10508.zip

10.81 KB, 下载次数: 1408

2#
发表于 2012-4-6 14:39:16
ODM DATA:

之前的错误:

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_q003_11024.trc:
ORA-22303: 未找到类型 "SYS"."AQ$_HISTORY"
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01578: ORACLE 数据块损坏 (文件号 1, 块号 226)
ORA-01110: 数据文件 1: 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'
Fri Apr 06 10:47:00 2012
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_smon_7012.trc:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01578: ORACLE 数据块损坏 (文件号 1, 块号 73)
ORA-01110: 数据文件 1: 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'
Fri Apr 06 10:47:00 2012

OPEN DATABASE下:
Recursive SQL出现因为"SYS"."AQ$_HISTORY"上的corrupted block出现ORA-604错误,

目前的问题,OPEN DB 出现ORA-00704,BOOSTRAP对象发现corrupted

Hex dump of (file 1, block 401) in trace file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_10508.trc
Corrupt block relative dba: 0x00400191 (file 1, block 401)
Bad header found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x01414bc3
last change scn: 0x0000.37dd671b seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x671b06b6
check value in block header: 0xcc0a
computed block checksum: 0x0
Reread of rdba: 0x00400191 (file 1, block 401) found same corrupted data
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_10508.trc  (incident=30451):
ORA-01578: ORACLE ????? (??? 1, ?? 401)
ORA-01110: ???? 1: 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'
Incident details in: d:\app\administrator\diag\rdbms\orcl\orcl\incident\incdir_30451\orcl_ora_10508_i30451.trc
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_10508.trc:
ORA-00704: ????????
ORA-01578: ORACLE ????? (??? 1, ?? 401)
ORA-01110: ???? 1: 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'
Error 704 happened during db open, shutting down database
USER (ospid: 10508): terminating the instance due to error 704
Fri Apr 06 11:17:38 2012
ORA-704 : opidrv aborting process S000 ospid (7080_6284)
Fri Apr 06 11:17:40 2012
Instance terminated by USER, pid = 10508
ORA-1092 signalled during: alter database open...
ORA-1092 : opiodr aborting process unknown ospid (7080_10508)
Fri Apr 06 11:17:40 2012
ORA-1092 : opitsk aborting process


Action Plan:

压缩后打包上传 d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_10508.trc这个TRACE文件

回复 只看该作者 道具 举报

3#
发表于 2012-4-6 14:53:23
Corrupt block relative dba: 0x00400191 (file 1, block 401)
Bad header found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x01414bc3
last change scn: 0x0000.37dd671b seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x1
consistency value in tail: 0x671b06b6
check value in block header: 0xcc0a
computed block checksum: 0x0
Reread of rdba: 0x00400191 (file 1, block 401) found same corrupted data
DDE rules only execution for: ORA 1110
----- START Event Driven Actions Dump ----
---- END Event Driven Actions Dump ----
----- START DDE Actions Dump -----
----- DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (Async) -----
Successfully dispatched
----- (Action duration in csec: 0) -----
----- END DDE Actions Dump -----
Incident 30451 created, dump file: d:\app\administrator\diag\rdbms\orcl\orcl\incident\incdir_30451\orcl_ora_10508_i30451.trc
ORA-01578: ORACLE ????? (??? 1, ?? 401)
ORA-01110: ???? 1: 'E:\ORA_DATA\ORCL\SYSTEM01.DBF'




dba: 0x00400191 但block header显示rdba: 0x01414bc3, 该block存在逻辑讹误 logical corruption。


建议你首先保护现场, 备份数据文件和所以online log。


之后尝试 recover datafile 1 block 401;


rman target /
startup mount;

blockrecover
datafile 1 block 401;

##==>未必能成功


如果无法blockrecover 该 fatal block,可能需要手工repair 该块。

回复 只看该作者 道具 举报

4#
发表于 2012-4-6 14:57:56
C:\Documents and Settings\Administrator>rman target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期五 4月 6 14:54:04 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount;

Oracle 实例已启动
数据库已装载

系统全局区域总计    6413680640 字节

Fixed Size                     2121520 字节
Variable Size               3785560272 字节
Database Buffers            2617245696 字节
Redo Buffers                   8753152 字节

RMAN> blockrecover datafile 1 block 401;

启动 recover 于 06-4月 -12
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=149 设备类型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=148 设备类型=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: SID=146 设备类型=DISK
分配的通道: ORA_DISK_4
通道 ORA_DISK_4: SID=145 设备类型=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 04/06/2012 14:54:37 上) 失败
RMAN-06026: 有些目标没有找到 - 终止还原
RMAN-06023: 没有找到数据文件1的副本来还原

RMAN>
能请教下手工repair的方式不

回复 只看该作者 道具 举报

5#
发表于 2012-4-6 15:01:59
需要使用 BBED工具修改该 FILE 1 BLOCK 401的block header

How to make BBED(Oracle Block Brower and EDitor Tool) on Unix/Linux/Windowshttp://www.oracledatabase12g.com/archives/how-to-make-bbed-oracle-block-brower-and-editor-tool-on-unixlinux-windows.html

以上地址下载 win下的bbed


至少需要修改 RDBA和 checksum

回复 只看该作者 道具 举报

6#
发表于 2012-4-6 15:33:44
这个坏块太多了,而且很多都是系统核心对象上
如果是用bbed,那绝对是一件很大的体力活
如果数据量不大,建议直接挖数据

回复 只看该作者 道具 举报

7#
发表于 2012-4-6 16:42:13

直接挖,怎么挖?

直接挖,怎么挖?

第三方服务,也要不少钱吧

回复 只看该作者 道具 举报

8#
发表于 2012-4-6 16:43:38
顺便问一下,type: 6 format: 2 rdba: 0x01414bc3
这个表示什么意思?

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 12:58 , Processed in 0.057746 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569