block corrupt demo

来源:互联网 发布:linux普通用户注销命令 编辑:程序博客网 时间:2024/05/22 10:32

下面的实验是如何处理Oracle 块损坏的情况:


1.创建测试表空间
SQL> create tablespace corrupt_tbs datafile '/u01/app/oracle/oradata/PROD/corrupt01.dbf' size 100M;

Tablespace created.

2.在该表空间上建立测试表
SQL> create table corrupt tablespace corrupt_tbs as select * from dba_objects;

Table created.

3,RMAN 做个备份,要养成好的习惯,多修改时一定要备份,DBA备份为重中之重
[oracle@even ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Mon Jan 14 00:15:59 2013

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

connected to target database: PROD (DBID=215185106)

RMAN> backup tablespace corrupt_tbs;
4,模拟损坏数据文件(只能update,eg:把ABC该成BCD,否则会破坏ORACLE的存储结构,就恢复不了了)
[oracle@even ~]$vi -b /u01/app/oracle/oradata/PROD/corrupt01.dbf

5,全表扫描表发现报 01578
SQL> select count(*) from corrupt;
select count(*) from corrupt
                     *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 15)
ORA-01110: data file 6: '/u01/app/oracle/oradata/PROD/corrupt01.dbf'

6,检查数据块
[oracle@even ~]$ cd /u01/app/oracle/oradata/PROD
[oracle@even PROD]$ dbv file=corrupt01.dbf blocksize=8192

DBVERIFY: Release 10.2.0.1.0 - Production on Mon Jan 14 00:24:53 2013

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

DBVERIFY - Verification starting : FILE = corrupt01.dbf
Page 15 is marked corrupt
Corrupt block relative dba: 0x0180000f (file 6, block 15)
Bad check value found during dbv:
Data in bad block:
 type: 6 format: 2 rdba: 0x0180000f
 last change scn: 0x0000.0009545f seq: 0x1 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x545f0601
 check value in block header: 0xaca1
 computed block checksum: 0x21b

 

DBVERIFY - Verification complete

Total Pages Examined         : 12800
Total Pages Processed (Data) : 690
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 28
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 12081
Total Pages Marked Corrupt   : 1
Total Pages Influx           : 0
Highest block SCN            : 611468 (0.611468)

7,export ORACLE_SID=PROD
rman target /
RMAN> BACKUP CHECK LOGICAL VALIDATE tablespace corrupt_tbs;

8,RMAN检查具体坏块,查看哪些具体坏块错误
SQL> select * from v$database_block_corruption;

     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
         6         15          1                  0 CHECKSUM

9,通过Rman恢复块损坏:
RMAN> blockrecover datafile 6 block 15;

Starting blockrecover at 14-JAN-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=153 devtype=DISK

channel ORA_DISK_1: restoring block(s)
channel ORA_DISK_1: specifying block(s) to restore from backup set
restoring blocks of datafile 00006
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/PROD/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T001623_8h5qgqvj_.bkp
channel ORA_DISK_1: restored block(s) from backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/PROD/backupset/2013_01_14/o1_mf_nnndf_TAG20130114T001623_8h5qgqvj_.bkp tag=TAG20130114T001623
channel ORA_DISK_1: block restore complete, elapsed time: 00:00:02

starting media recovery
media recovery complete, elapsed time: 00:00:03

Finished blockrecover at 14-JAN-13


10,看下是否还有01578错误
SQL> select count(*) from corrupt;

  COUNT(*)
----------
     50319


如果上面的还不行,则需要跳开坏块了
重复上面的实验 1,2,3,4,5,6,7 使用以下操作跳开坏块
alter session set events '10231 trace name context forever, level 10';
或者
begin
dbms_repair.skip_corrupt_blocks(
schema_name => 'HR',
object_name => 'CORRUPT', object_type => dbms_repair.table_object,
flags => dbms_repair.skip_flag);
end;
/


刷新内存
1. alter system flush buffer_cache; # 刷新buffer cache 组件
-- alter system flush shared_pool;
2. alter system checkpoint.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 融e联登录密码错三次怎么办 金融e家u盾密码忘了怎么办 用工行网银转账后想取消交易怎么办 工行融e借没有密码器怎么办 工行融e借密码器丢了怎么办 工行融e联手机登录密码忘记怎么办 领导给员工抱怨工作太烦怎么办 员工抱怨忙的忙死闲的闲死怎么办 爱上骗我进传销的人该怎么办 尚赫辟谷期间吃了东西怎么办 肾结石掉在输尿管里面好痛怎么办 寄的快递快递单号找不到了怎么办 手机停机但是快递是这个号码怎么办 百世通快递卡在一个地方没动怎么办 电信无限流量20g用完了怎么办 至尊宝qq密保手机被更换怎么办 至尊宝账户密保手机被改怎么办 照片放到私密相册找不到了怎么办 出口报关报错境内货源地怎么办? 微信提现未到账交易记录删了怎么办 支付宝忘记密码就可以登陆怎么办 电脑上登陆QQ忘记密码了怎么办? 电脑被管理员限制登录微信了怎么办 快手绑定的手机号丢了登不上怎么办 快手绑定的手机号丢了登不了怎么办 苹果id有手机号不知道密码怎么办 微信号不是手机号不知道密码怎么办 手机发短信说程序发生错误怎么办 派派游戏崇物等级低怎么办 轻微事故没有报警后面有问题怎么办 苹果6sp手机接电话声音小怎么办 用手机号办的移动宽带到期了怎么办 联通忘了宽带的用户名和密码怎么办 宽带联通移机附近没有端口怎么办 电信卡怎么改服务密码忘记了怎么办 路由器重置宽带账号密码忘了怎么办 重置路由器后不知道宽带密码怎么办 欠费后重新缴费宽带连接不了怎么办 华硕路由器忘记账号密码忘了怎么办 光纤猫光信号闪红灯不能上网怎么办 被传销洗了脑的人怎么办