ITPub博客

首页 > Linux操作系统 > Linux操作系统 > corrupt block(logical corruption)

corrupt block(logical corruption)

原创 Linux操作系统 作者:zhuanshijin 时间:2013-01-30 17:26:26 0 删除 编辑
1、坏块产生的原因
-bad I/O,H/W,firmware
-operationg system i/o or caching problems
-memory or paging problems
-disk repair utilities
-part of a datafile being overwritten
-third part software incorrectly attempting to access oracle used heap
-oracle or operating system bug
2、建立实验的表空间,表,制造坏块
SQL> create tablespace test datafile 'D:\ORADATA\TEST\test01.DBF' size 5M autoex
tend on logging permanent extent management local autoallocate blocksize 8k segm
ent space management manual flashback on;
SQL> create user test identified by test default tablespace test;
User created.
SQL> grant connect,resource, create table to test;
Grant succeeded.
SQL> create table testt1(id number,name varchar2(5)) tablespace test;
Table created.
SQL> create table testt2(id number,name varchar2(10)) tablespace test;
Table created.
在两张表里填充内容
用Uedit32二进制编辑工具编辑test01.dbf文件,制造坏块
3、分析坏块的位置
方法一、一次只能给出一个位置,如果有多个位置,比较麻烦
SQL> analyze table testt1 validate structure;
analyze table testt1 validate structure
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 5, block # 25)
ORA-01110: data file 5: 'D:\ORADATA\TEST\TEST01.DBF'

SQL> analyze table testt2 validate structure;
analyze table testt2 validate structure
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 5, block # 1275)
ORA-01110: data file 5: 'D:\ORADATA\TEST\TEST01.DBF'
方法二、dbv工具
C:\>dbv
DBVERIFY: Release 10.2.0.1.0 - Production on Thu Jan 17 17:59:51 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Keyword     Description                    (Default)
----------------------------------------------------
FILE        File to Verify                 (NONE)
START       Start Block                    (First Block of File)
END         End Block                      (Last Block of File)
BLOCKSIZE   Logical Block Size             (8192)
LOGFILE     Output Log                     (NONE)
FEEDBACK    Display Progress               (0)
PARFILE     Parameter File                 (NONE)
USERID      Username/Password              (NONE)
SEGMENT_ID  Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN    Highest Block SCN To Verify    (NONE)
            (scn_wrap.scn_base OR scn)
--解释
file 后面跟文件路径包括后缀名,例:file=D:\ORADATA\TEST\TEST01.DBF进行全文件检查
logfile 是日志文件写日志,后跟日志文件路径名 例:
dbv file=D:\oradata\test\TEST01.DBF,logfile=D:\oradata\test\t.log
start 是指的开始检查的块ID,end是检查结束的块id,两个在一起指定一个检查区间
blocksize 指检查一个块的大小,要和文件一致,默认是8192
feedback 显示检查进度  例feedback=5
parfile   指定参数文件 把dbv工具所引用脚本放入一个文件中,用parfile参数带出文件绝对路径,执行检查脚本
userid 和segment_id参数,当一个表,比如说分区表,分布在多个数据文件上的时候,如果一个个的去检查数据文件显得比较麻烦,可以之间检查指定的表或对象。
使用用例 dbv userid=system/test, segment_id=5.5.17 能访问DB字典的用户
//查询段头所在的位置
//————————————————————————
SQL> select tablespace_id,header_file,header_block from sys_dba_segs where segment_name='TESTT1';
TABLESPACE_ID HEADER_FILE HEADER_BLOCK
------------- ----------- ------------
            5           5            9
//——————————————————————————
4、恢复坏块
要恢复坏块首先要有rman的备份
然后用rman恢复坏块命令如下
RMAN> blockrecover datafile 5 block 215;
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25843472/viewspace-753581/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ASM实验遇到问题
下一篇: rman_list命令列举
请登录后发表评论 登录
全部评论

注册时间:2012-12-19

  • 博文量
    14
  • 访问量
    48657