技术开发 频道

处理Oracle数据库中的坏块

    五:坏块的预先发现的方法

    1. 如果要检测数据库中所有的表,可以利用exp工具导出整个数据库可以检测坏块。不过这个工具有一些缺陷,对以下情况的坏块是检测不出来的:

    Ø HWM以上的坏块是不会发现的

    Ø 索引中存在的坏块是不会发现的

    Ø 数据字典中的坏块是不会发现的

    2. 如果只是对数据库中比较重要的表进行坏块检查,可以使用ANALYZE TABLE tablename VALIDATE STRUCTURE CASCADE 的方法来检测坏块,它执行坏块的检查,但是不会标记坏块为corrupt,检测的结果保存在USER_DUMP_DEST目录下的用户trace文件中。

    3. 使用Oracle的专门工具dbv来检查坏块,具体的语法如下:

    关键字 说明 (默认)

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

    FILE 要验证的文件 (无)

    START 起始块 (文件的第一个块)

    END 结束块 (文件的最后一个块)

    BLOCKSIZE 逻辑块大小 (2048)

    LOGFILE 输出日志 (无)

    FEEDBACK 显示进度 (0)

    PARFILE 参数文件 (无)

    USERID 用户名/口令 (无)

    SEGMENT_ID 段 ID (tsn.relfile.block) (无)

    例如:

    Dbv file=system01.dbf blocksize=8192

    DBVERIFY: Release 9.2.0.5.0 - Production on 星期六 11月 27 15:29:13 2004

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

    DBVERIFY - 验证正在开始 : FILE = system01.dbf

    DBVERIFY - 验证完成

    检查的页总数 :32000

    处理的页总数(数据):13261

    失败的页总数(数据):0

    处理的页总数(索引):2184

    失败的页总数(索引):0

    处理的页总数(其它):1369

    处理的总页数 (段) : 0

    失败的总页数 (段) : 0

    空的页总数 :15186

    标记为损坏的总页数:0

    汇入的页总数 :0

    注:因为dbv要求file后面跟的必须是一个文件扩展名,所以如果用裸设备存储的,就必须使用ln链接裸设备到一个文件,然后再用dbv对这个链接文件进行检查。

0
相关文章