CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

处理Oracle数据库中的坏块

作者: xsb,  出处:IT专家网BBS, 责任编辑: jinpu, 
2006-11-10 08:00
  一:什么是数据库的坏块   首先我们来大概看一下数据库块的格式和结构   数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer。在我们对数据块进行读取写入操作的时候,数据库会对要读写的数据块做一致性的检查,其中包括:数据块的类型、数据块的地址信息、数据块的SCN号以及数据块的头部和尾部。如果发现其中有不一致的信息,那数据库就会标记这个数据块为坏块了。数据库的坏块分为两种,逻辑坏块和物理坏块。

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

  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对这个链接文件进行检查。


  阅读关于 Oracle 数据库 坏块 的全部文章
共4页。 9 1 2 3 4

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i