IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 操作系统 > LINUX > oracle处理损坏数据块

oracle处理损坏数据块

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

  有时oracle的数据文件并没有完全被损坏,而是只损坏了某些数据块。产生的原因主要是间断或随机的I/O错误或是内存块的错误。这时可以不用做整个数据文件的恢复,使datafile仍然处在在线的状态。对此可以进行下面几种处理操作。

  **  oracle 9i 以后可以使用blockrecover命令(BMR):

  可以先通过视图v$database_block_corruption获得当前被损坏的数据块信息。此视图中记录了物理和逻辑两类block corruption。

  @ 物理的corruption:无法辨识该数据块,checksum、header、footer校验错误

  @ 逻辑corruption:chechsum、header、footer校验是正确的,但是该数据块的内容时不一致的。

  注意:BMR是不能用于恢复逻辑上的corruption的。在backup命令中checksum的校验是默认开启的,可以通过NOCHECKSUM选项属性关闭。逻辑的校验默认是关闭的,可以在backup、restore、recover、validate命令中添加CHECK LOGICAL开启。

  具体的操作方法为:

  rman> blockrecover datafile n1 block n1b1,n1b2 datafile n2 block n2b1,n2b2;

  **  对于用户管理的备份和恢复方法。如果要恢复损坏的DB,只能进行整个数据文件的恢复。

  sql> alter database datafile 2 offline;

  sql> host ‘cp /backup/datafile1.bak /opt/demo/datafile1.dt’;

  sql> recover automatic datafile 2;

  sql> alter database datafile 2 online;

  **  如果对于存在corruption block的表的使用不频繁,在可以忍受的情况下,可以先屏蔽这些blocks,待以后再恢复。这就要使用dbms_repair包了。具体如下:

  @ 建立修复表(修复表用于存放表、表分区或索引的损坏块信息)。

  sql> exec dbms_repair.admin_tables(’REPAIR_TABLE’, DBMS_REPAIR.REPAIR_TABLE, DBMS_REPAIR.CREATE_ACTION);

  @ 确定损坏块的个数

  sql> var cc number

  sql> exec dbms_repair.check_object(’TBSPNAME’, ‘TABNAME’, corrupt_count=>:cc);

  sql> print cc

  @ 标记损坏块。

  sql> var fc number

  sql> exec dbms_repair.fix_corrupt_blocks(’TBSPNAME’, ‘TABNAME’,fix_count=>:fc);

  sql> print fc;

  @ 跳过损坏块。此操作可以使涉及到损坏块的查询sql继续执行,跳过该blocks,但是对于DML,则仍会显示错误信息。

  sql> exec dbms_repair.skip_corrupt_blocks(’TBSPNAME’, ‘TABNAME’);

  @ 确定指向损坏块的索引入口。当上面确定了表的损坏块后,仍有可能存在索引指向损坏块,这些索引称为&孤立键值&。对此可以使用dbms_repair包对孤立键值进行管理:

  sql> exec dbms_repair.admin_tables(’ORPHAN_TAB’, DBMS_REPAIR, ORPHAN_TABLE, DBMS_REPAIR, CREATE_ACTION);

  sql> var kc number

  sql> exec dbms_repair.dump_orphar_keys(’TBSPNAME’,'INDEXNAME’, orphan_table_name=> ‘ORPHAN_TAB’, key_count=> :kc);

  sql> print kc;

关键词标签:oracle

相关阅读 安装红帽子RedHat Linux9.0操作系统教程 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 多种操作系统NTP客户端配置 Linux操作系统修改IP Linux实现SCSI硬盘热插拔及在线识别 Linux下用CDMA modem拨号上网

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程 安装红帽子RedHat Linux9.0操作系统教程 Linux服务器:设计高性能网站架构-LLMP Linux服务器:设计高性能网站架构-LLMP 使用Clonezilla迁移到虚拟Linux环境 使用Clonezilla迁移到虚拟Linux环境 Linux上的MRTG流量监控中心 Linux上的MRTG流量监控中心 Linux 双网卡绑定一个IP原理及实现 Linux 双网卡绑定一个IP原理及实现 linux和windows等系统远程控制ubuntu桌面 linux和windows等系统远程控制ubuntu桌面

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载 linux命令行浏览器的使用方法 Linux NFS服务固定端口及防火墙配置 U盘安装Ubuntu 10.04 Linux清除用户登录记录和命令历史方法