欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RMAN深入解析之--BlockRecover恢复坏块

程序员文章站 2024-02-14 20:45:16
...

RMAN深入解析之--BlockRecover恢复坏块案例环境:操作系统:RedHatEL5Oracle:Oracle11gR2案例描述:通过块介质恢复(BlockMediaRecover:BMR)执行块级别的恢复操

RMAN深入解析之--BlockRecover恢复坏块

案例环境:

操作系统:RedHat EL5

Oracle: Oracle 11gR2


案例描述:

通过块介质恢复(Block Media Recover:BMR)执行块级别的恢复操作来修复Oracle数据库上的逻辑或物理上损坏的数据块。

1、模拟数据块被破坏

10:26:48 SYS@ prod>conn scott/tiger Connected. 10:26:51 SCOTT@ prod>select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BONUS TABLE DEPT TABLE EMP TABLE EMP1 TABLE SALGRADE TABLE Elapsed: 00:00:00.10 10:26:55 SCOTT@ prod> 10:27:37 SYS@ prod>desc dba_segments Name Null? Type ----------------------------------------------------------------- -------- ------------- OWNER VARCHAR2(30) SEGMENT_NAME VARCHAR2(81) PARTITION_NAME VARCHAR2(30) SEGMENT_TYPE VARCHAR2(18) SEGMENT_SUBTYPE VARCHAR2(10) TABLESPACE_NAME VARCHAR2(30) HEADER_FILE NUMBER HEADER_BLOCK NUMBER BYTES NUMBER BLOCKS NUMBER EXTENTS NUMBER INITIAL_EXTENT NUMBER NEXT_EXTENT NUMBER MIN_EXTENTS NUMBER MAX_EXTENTS NUMBER MAX_SIZE NUMBER RETENTION VARCHAR2(7) MINRETENTION NUMBER PCT_INCREASE NUMBER FREELISTS NUMBER FREELIST_GROUPS NUMBER RELATIVE_FNO NUMBER BUFFER_POOL VARCHAR2(7) FLASH_CACHE VARCHAR2(7) CELL_FLASH_CACHE VARCHAR2(7) 10:27:41 SYS@ prod>col segment_name for a20 10:27:59 SYS@ prod>select owner,segment_name,SEGMENT_TYPE,HEADER_BLOCK from dba_segments 10:29:06 2 where owner='SCOTT' and segment_name='EMP1'; OWNER SEGMENT_NAME SEGMENT_TYPE HEADER_BLOCK ------------------------------ -------------------- ------------------ ------------ SCOTT EMP1 TABLE 170

通过以上查询,可以知道EMP1 table的segment header block为170;利用Uedit32,打开数据文件(users01.dbf)进行编辑破坏!


以下是计算block 170和block 171在Uedit32编辑中的offset:

10:29:24 SYS@ prod>select to_char(170*8*1024, 'xxxxxxxxxxxxxxxxxxxxx') from dual;

TO_CHAR(170*8*1024,'XX

----------------------

154000


10:30:27 SYS@ prod>select to_char(171*8*1024, 'xxxxxxxxxxxxxxxxxxxxx') from dual;

TO_CHAR(171*8*1024,'XX

----------------------

156000

以下是Uedit32编辑users01.dbf图片:

RMAN深入解析之--BlockRecover恢复坏块

通过转储数据块验证:

10:30:37 SYS@ prod>alter system dump datafile 4 block 170;

System altered.


[oracle@rh6 ~]$ ls -lt /u01/app/oracle/diag/rdbms/prod/prod/trace/|more

相关标签: Oracle RMAN