基于rman的坏块恢复
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,转载请注明出处 http://blog.csdn.net/guoyjoe/article/details/30965303实验步骤如下:1、使用rman备份全库Recovery Manager: Re
千家信息网最后更新 2024年11月17日基于rman的坏块恢复
2、利用BBED破坏块
(2)使用BBED破坏20869号块的seq
(3)校验报坏块
3、使用RMAN验证5号数据文件
6、再次查5号文件的坏块,已经消息了(如果还有记录,那再次执行backup validate datafile 5;)
7、查表gyj_t1记录也有了,说明恢复成功
转载请注明出处 http://blog.csdn.net/guoyjoe/article/details/30965303
实验步骤如下:
1、使用rman备份全库
Recovery Manager: Release 11.2.0.3.0 - Production on Sun Jun 8 15:30:35 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: PROD (DBID=254815294) RMAN> backup database; Starting backup at 08-JUN-14 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=142 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/PROD/system01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/PROD/tp01.dbf input datafile file number=00002 name=/u01/app/oracle/oradata/PROD/sysaux01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/PROD/undotbs01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/PROD/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUN-14 channel ORA_DISK_1: finished piece 1 at 08-JUN-14 piece handle=/u01/app/oracle/product/11.2.0/dbs/01pab691_1_1 tag=TAG20140608T153040 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 08-JUN-14 channel ORA_DISK_1: finished piece 1 at 08-JUN-14 piece handle=/u01/app/oracle/product/11.2.0/dbs/02pab69q_1_1 tag=TAG20140608T153040 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 08-JUN-14
2、利用BBED破坏块
(1)针对gyj_t1表的20869号块做测试,现在可以查出记录
gyj@PROD> select id,name,dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from gyj_t1; ID NAME DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ---------- ---------- ------------------------------------ ------------------------------------ 1 oracledba 5 20869
(2)使用BBED破坏20869号块的seq
[root@jfdb ~]# su - oracle [oracle@jfdb ~]$ bbed parfile=par.txt Password: BBED: Release 2.0.0.0.0 - Limited Production on Sun Jun 8 15:33:10 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set file 5 block 20869 FILE# 5 BLOCK# 20869 BBED> map /v File: /u01/app/oracle/oradata/PROD/tp01.dbf (5) Block: 20869 Dba:0x01405185 ------------------------------------------------------------ KTB Data Block (Table/Cluster) struct kcbh, 20 bytes @0 ub1 type_kcbh @0 ub1 frmt_kcbh @1 ub1 spare1_kcbh @2 ub1 spare2_kcbh @3 ub4 rdba_kcbh @4 ub4 bas_kcbh @8 ub2 wrp_kcbh @12 ub1 seq_kcbh @14 ub1 flg_kcbh @15 ub2 chkval_kcbh @16 ub2 spare3_kcbh @18 struct ktbbh, 72 bytes @20 ub1 ktbbhtyp @20 union ktbbhsid, 4 bytes @24 struct ktbbhcsc, 8 bytes @28 sb2 ktbbhict @36 ub1 ktbbhflg @38 ub1 ktbbhfsl @39 ub4 ktbbhfnx @40 struct ktbbhitl[2], 48 bytes @44 struct kdbh, 14 bytes @100 ub1 kdbhflag @100 sb1 kdbhntab @101 sb2 kdbhnrow @102 sb2 kdbhfrre @104 sb2 kdbhfsbo @106 sb2 kdbhfseo @108 sb2 kdbhavsp @110 sb2 kdbhtosp @112 struct kdbt[1], 4 bytes @114 sb2 kdbtoffs @114 sb2 kdbtnrow @116 sb2 kdbr[1] @118 ub1 freespace[8038] @120 ub1 rowdata[30] @8158 ub4 tailchk @8188 BBED> p kcbh struct kcbh, 20 bytes @0 ub1 type_kcbh @0 0x06 ub1 frmt_kcbh @1 0xa2 ub1 spare1_kcbh @2 0x00 ub1 spare2_kcbh @3 0x00 ub4 rdba_kcbh @4 0x01405185 ub4 bas_kcbh @8 0x00176fed ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0x01 ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV) ub2 chkval_kcbh @16 0xc140 ub2 spare3_kcbh @18 0x0000 BBED> m /x ff offset 14 Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y File: /u01/app/oracle/oradata/PROD/tp01.dbf (5) Block: 20869 Offsets: 14 to 525 Dba:0x01405185 ------------------------------------------------------------------------ ff0640c1 00000100 00003945 0000eb6f 17000000 00000200 32008051 40010700 20008b02 00002c49 c0002301 02000080 0000876d 17000300 1a007503 0000bf1f c0002501 0c000120 0000ed6f 17000000 00000000 00000001 0100ffff 14007a1f 741f741f 00000100 7a1f0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <32 bytes per line> BBED> sum apply Check value for File 5, Block 20869: current = 0xc1be, required = 0xc1be
(3)校验报坏块
BBED> verify DBVERIFY - Verification starting FILE = /u01/app/oracle/oradata/PROD/tp01.dbf BLOCK = 20869 Block 20869 is corrupt Corrupt block relative dba: 0x01405185 (file 0, block 20869) Fractured block found during verification Data in bad block: type: 6 format: 2 rdba: 0x01405185 last change scn: 0x0000.00176fed seq: 0xff flg: 0x06 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x6fed0601 check value in block header: 0xc1be computed block checksum: 0x0 DBVERIFY - Verification complete Total Blocks Examined : 1 Total Blocks Processed (Data) : 0 Total Blocks Failing (Data) : 0 Total Blocks Processed (Index): 0 Total Blocks Failing (Index): 0 Total Blocks Empty : 0 Total Blocks Marked Corrupt : 1 Total Blocks Influx : 2 Message 531 not found; product=RDBMS; facility=BBED
gyj@PROD> alter system flush buffer_cache; System altered. gyj@PROD> select id,name,dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from gyj_t1; select id,name,dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from gyj_t1 * ERROR at line 1: ORA-01578: ORACLE data block corrupted (file # 5, block # 20869) ORA-01110: data file 5: '/u01/app/oracle/oradata/PROD/tp01.dbf'
3、使用RMAN验证5号数据文件
RMAN> backup validate datafile 5; Starting backup at 08-JUN-14 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00005 name=/u01/app/oracle/oradata/PROD/tp01.dbf channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 List of Datafiles ================= File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 5 FAILED 0 114 64000 1659211 File Name: /u01/app/oracle/oradata/PROD/tp01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 1 58883 Index 0 4221 Other 0 782 validate found one or more corrupt blocks See trace file /u01/app/oracle/diag/rdbms/prod/PROD/trace/PROD_ora_2750.trc for details Finished backup at 08-JUN-14
4、查5号文件的坏块
gyj@PROD> select FILE#,BLOCK#,BLOCKS,CORRUPTION_CHANGE#,CORRUPTION_TYPE from v$database_block_corruption where file#=5; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO ---------- ---------- ---------- ------------------ --------- 5 20869 1 0 FRACTURED
5、使用rman恢复坏块
RMAN> blockrecover datafile 5 block 20869; Starting recover at 08-JUN-14 using channel ORA_DISK_1 channel ORA_DISK_1: restoring block(s) channel ORA_DISK_1: specifying block(s) to restore from backup set restoring blocks of datafile 00005 channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/dbs/01pab691_1_1 channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/dbs/01pab691_1_1 tag=TAG20140608T153040 channel ORA_DISK_1: restored block(s) from backup piece 1 channel ORA_DISK_1: block restore complete, elapsed time: 00:00:01 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 08-JUN-14
6、再次查5号文件的坏块,已经消息了(如果还有记录,那再次执行backup validate datafile 5;)
gyj@PROD> select FILE#,BLOCK#,BLOCKS,CORRUPTION_CHANGE#,CORRUPTION_TYPE from v$database_block_corruption where file#=5; no rows selected
7、查表gyj_t1记录也有了,说明恢复成功
gyj@PROD> select id,name,dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from gyj_t1; ID NAME DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ---------- ---------- ------------------------------------ ------------------------------------ 1 oracledba 5 20869
文件
再次
成功
出处
备份
数据
步骤
消息
实验
测试
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
私人文件服务器
iis管理php数据库
玄武盾 网络安全
北京联通网络技术研究院
闵行区新能源软件开发售后保障
服务器怎么远程传送
网络安全需要我们的共同守护
多种网络安全威胁未成年
常德游戏软件开发
江苏蛙宝网络技术有限公司
网络安全与入侵防范实验
简述网络安全事件的分类
信息化软件开发设施价格优惠
平安医疗软件开发薪资结构
服务器租用月付
建立sql怎么数据库连接
咸宁专业智慧旅游软件开发
单位网络安全组织成立
魔兽世界正式服务器竞速
服务器 管理系统
网络营销网络技术市场报价
湖南中海汇软件开发
服务器不可预知状态码
软件开发工程师就业需求
奉贤区无线网络技术推荐咨询
网络安全绘画大班
深圳小鹿网络技术招聘
创世神奇宝贝服务器手机版
关系型向图数据库转化
租服务器还是买安全