[分享] 用ORACLE8i修复数据库坏块的三种方法系列二

[复制链接]

该用户从未签到

7

主题

2

回帖

37

积分

[INTOHARD]工兵

Rank: 1

积分
37
发表于 2007-7-1 17:38:21 | 显示全部楼层 |阅读模式
ORACLE8i修复数据库坏块的三种方法系列二

1.DBMS_REPAIR.ADMIN_TABLES用于创建与删除存储损坏块的表。其中TABLE_TYPE为:REPAIR_TABLE(表),ORPHAN_TABLE(索引);ACTION为:CREATE_ACTION(创建表),PURGE_ACTION(删除无关数据),DROP_ACTION(删除表)。例:
  1. dbms_repair.admin_tables('REPAIR_TABLE',DBMS_REPAIR.REPAIR_TABLE,DBMS_REPAIR.CREATE_ACTION,'temp_data');
复制代码


2.DBMS_REPAIR.CHECK_OBJECT检查表、索引、分区中的块损坏。其中OBJECT_TYPE为:TABLE_OBJECT(表),INDEX_OBJECT(索引), REPAIR_TABLE_NAME(用于存储损坏块信息的表)。例:
  1. dbms_repair.check_object('ORATRAIN','LOCATIONS',corrupt_count=>:cc);
复制代码


3.使用以下语句查询块损坏信息:
  1. SELECT object_name, relative_file_no, block_id, marked_corrupt, corrupt_description, repair_description FROM repair_table;
复制代码


4.将块标志为损坏的:
  1. dbms_repair.fix_corrupt_blocks('ORATRAIN','LOCATIONS',fix_count=>:fc);
复制代码


5.跳过损坏块:
  1. dbms_repair.skip_corrupt_blocks('ORATRAIN', 'LOCATIONS');
复制代码


其中OBJECT_TYPE为:TABLE_OBJECT(表),CLUSTER_OBJECT(索引)。

6.使用REBUILD_FREELISTS重建损坏的空闲列表:DBMS_REPAIR.rebuild_freelists

7.使用以下方法查找指向损坏块的索引:

(1)创建存放指向坏块索引的表

(2)
  1. dbms_repair.dump_orphan_keys('ORATRAIN','LOC_PK', orphan_table_name=>'ORPHAN_TAB1',key_count=>:kc);
复制代码


(3)
  1. SELECT index_name, count(*) FROM orphan_key_table WHERE table_name = 'CLASSES' GROUP BY index_name;
复制代码


(4)重建具有orphan keys的索引

限制:不能分析Index-organized tables 与 LOB indexes,DUMP_ORPHAN_KEYS不能对bitmap与 function-based indexes操作。

(三)使用SQL命令ANALYZE TABLE|INDEX … VALIDATE STRUCTURE

utlvalid.sql.创建含有损坏块信息的INVALID_ROWS表,ANALYZE TABLE VALIDATE STRUCTURE CASCADE同时校验表与索引。

(四)使用DBVERIFY

DBVERIFY是一个外部工具,所以对数据库影响很小。可用于在将备份文件拷贝回原位置前检验备份文件的完好性,并定位数据块损坏。命令如下:
  1. dbv /opt/oracle/db02/oradata/data01.dbf start=1 end=500 logfile=dbv.log
复制代码

该用户从未签到

96

主题

1179

回帖

5553

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
5553
发表于 2007-8-22 13:42:44 | 显示全部楼层
存放指向坏块索引的表

该用户从未签到

96

主题

1179

回帖

5553

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
5553
发表于 2007-8-22 13:43:13 | 显示全部楼层
使用SQL命令ANALYZE TABLE|INDEX … VALIDATE STRUCTURE

该用户从未签到

1

主题

118

回帖

173

积分

[INTOHARD]班长

Rank: 2

积分
173
发表于 2011-6-3 09:04:28 | 显示全部楼层
不是吧,这么难学啊 ,我应在哪下手啊,头都大了啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2013-2-14 23:23
  • 签到天数: 100 天

    [LV.6]五品郎中

    5

    主题

    1159

    回帖

    583

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    583
    发表于 2012-9-24 15:56:35 | 显示全部楼层
    好东西。。要收好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2012-8-16 21:58
  • 签到天数: 1 天

    [LV.1]布衣百姓

    0

    主题

    93

    回帖

    57

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    57
    发表于 2012-9-25 07:25:28 | 显示全部楼层
    不错啊,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2014-4-15 16:39
  • 签到天数: 53 天

    [LV.5]六品通判

    1

    主题

    224

    回帖

    470

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    470
    发表于 2012-11-14 09:40:23 | 显示全部楼层
    谢谢 楼主 分享
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表