动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.Oracle的左连接和右连接.
.Oracle最强有力的辅助诊断工具SQ.
.新黑客技巧可能导致Oracle发生泄.
.压缩数据以节省空间和提高速度.
.实例解析:工作中遇到的Oracle故.
.Oracle&Linux--完美的组合.
.Oracle体系框架及SQL语句性能完全.
.Oracle数据库数据对象分析 (下).
.Oracle数据库备份技术.
.2004开发技术年度综述之移动开发.
.管理好密码文件对于执行数据库管.
.Oracle数据库技术(42).
.移动系统表Dependencie$, 没重建.
.相同软件环境下Oracle9i数据库迁.
.Oracle DBA数据库结构试题精选.
.关于“专用服务器进程”和“多线.
.Oracle 10g新增表空间类型:大文.
.在Linux下安装Oracle.
.清除冗余记录的SQL语句.
.Oracle9i精华集粹(上).

使用Oracle9i的blockrecover新特性修复数据库中的坏块

发表日期:2008-2-9 |



  1.备份数据库
  
  D:\>rman target /
  
  恢复治理器: 版本9.2.0.6.0 - ProdUCtion
  
  Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
  
  连接到目标数据库: EYGLE (DBID=1365961916)
  
  RMAN> backup database format='d:\oradata\eygle_fullbk.bak' tag='eygle';
  
  启动 backup 于 12-6月 -05
  
  正在使用目标数据库控制文件替代恢复目录
  
  分配的通道: ORA_DISK_1
  
  通道 ORA_DISK_1: sid=13 devtype=DISK
  
  通道 ORA_DISK_1: 正在启动 full 数据文件备份集
  
  通道 ORA_DISK_1: 正在指定备份集中的数据文件
  
  在备份集中包含当前的 SPFILE
  
  备份集中包括当前控制文件
  
  输入数据文件 fno=00001 name=D:\ORADATA\EYGLE\SYSTEM01.DBF
  
  输入数据文件 fno=00005 name=D:\ORADATA\EYGLE\UNDOTBS2.DBF
  
  输入数据文件 fno=00002 name=D:\ORADATA\EYGLE\EYGLE01.DBF
  
  通道 ORA_DISK_1: 正在启动段 1 于 12-6月 -05
  
  通道 ORA_DISK_1: 已完成段 1 于 12-6月 -05
  
  段 handle=D:\ORADATA\EYGLE_FULLBK.BAK comment=NONE
  
  通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:27
  
  完成 backup 于 12-6月 -05
  
  RMAN> list backup;
  
  备份集列表
  ===================
  
  BS 要害字 类型 LV 大小    设备类型 经过时间 完成时间
  ------- ---- -- ---------- ----------- ------------ ----------
  2    Full  140M    DISK    00:00:22   12-6月 -05
  
  BP 要害字: 1  状态: AVAILABLE  标记:TAG20050612T004442
  
  段名:D:\ORADATA\EYGLE_FULL.BAK
  
   包含的 SPFILE: 修改时间: 04-3月 -05
  
   备份集 2 中的数据文件列表
  
   文件 LV 类型 Ckp SCN  Ckp 时间  名称
   ---- -- ---- ---------- ---------- ----
   1    Full 452236   12-6月 -05 D:\ORADATA\EYGLE\SYSTEM01.DBF
   2    Full 452236   12-6月 -05 D:\ORADATA\EYGLE\EYGLE01.DBF
   5    Full 452236   12-6月 -05 D:\ORADATA\EYGLE\UNDOTBS2.DBF
  
  BS 要害字 类型 LV 大小    设备类型 经过时间 完成时间
  ------- ---- -- ---------- ----------- ------------ ----------
  4    Full  140M    DISK    00:00:21   12-6月 -05
  
  BP 要害字: 2  状态: AVAILABLE  标记:EYGLE
  
  段名:D:\ORADATA\EYGLE_FULLBK.BAK
  
   包含的 SPFILE: 修改时间: 04-3月 -05
  
   备份集 4 中的数据文件列表
  
   文件 LV 类型 Ckp SCN  Ckp 时间  名称
   ---- -- ---- ---------- ---------- ----
   1    Full 492975   12-6月 -05 D:\ORADATA\EYGLE\SYSTEM01.DBF
   2    Full 492975   12-6月 -05 D:\ORADATA\EYGLE\EYGLE01.DBF
   5    Full 492975   12-6月 -05 D:\ORADATA\EYGLE\UNDOTBS2.DBF
  
  RMAN> exit
  
  恢复治理器完成。
  
  2.使用工具破坏数据块
  
  可以使用UltraEdit或者WinHex打开文件修改某个数据块,然后保存。

  
  3.访问损坏的数据
  
  D:\>sqlplus "/ as sysdba"
  
  SQL*Plus: Release 9.2.0.6.0 - Production on 星期日 6月 12 09:06:19 2005
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  已连接到空闲例程。
  
  09:06:19 SQL> startup
  ORACLE 例程已经启动。
  
  Total System Global Area  59842188 bytes
  Fixed Size          454284 bytes
  Variable Size       33554432 bytes
  Database Buffers      25165824 bytes
  Redo Buffers         667648 bytes
  
  数据库装载完毕。
  
  数据库已经打开。
  
  09:06:33 SQL> select count(*)from t;
  select count(*)from t
            *
  ERROR 位于第 1 行:
  ORA-01578: ORACLE 数据块损坏(文件号2,块号14)
  
  ORA-01110: 数据文件 2: 'D:\ORADATA\EYGLE\EYGLE01.DBF'
  
  此时alert_.log文件中会记录损坏块。
  ***
  Corrupt block relative dba: 0x0080000e (file 2, block 14)
  Bad check value found during buffer read
  Data in bad block -
   type: 6 format: 2 rdba: 0x0080000e
   last change scn: 0x0000.00078584 seq: 0x1 flg: 0x06
   consistency value in tail: 0x85840601
   check value in block header: 0xca4b, computed block checksum: 0x5a6
   spare1: 0x0, spare2: 0x0, spare3: 0x0
  ***
  Reread of rdba: 0x0080000e (file 2, block 14) found same corrupted data
  
  4.检查坏块
  
  也可以使用RMAN验证数据文件,以发现坏块:
  
  D:\>rman target /
  
  恢复治理器: 版本9.2.0.6.0 - Production
  
  Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
  
  连接到目标数据库: EYGLE (DBID=1365961916)
  
  RMAN> backup validate datafile 2;
  
  启动 backup 于 12-6月 -05
  
  正在使用目标数据库控制文件替代恢复目录
  
  分配的通道: ORA_DISK_1
  
  通道 ORA_DISK_1: sid=13 devtype=DISK
  
  通道 ORA_DISK_1: 正在启动 full 数据文件备份集
  
  通道 ORA_DISK_1: 正在指定备份集中的数据文件
  
  输入数据文件 fno=00002 name=D:\ORADATA\EYGLE\EYGLE01.DBF
  
  通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
  
  完成 backup 于 12-6月 -05
  
  RMAN> exit
  
  恢复治理器完成。
  
  此时alert_.log文件中会记录RMAN发现的坏块信息:
  ***
  Corrupt block relative dba: 0x0080000e (file 2, block 14)
  Bad check value found during backing up datafile
  Data in bad block -
   type: 6 format: 2 rdba: 0x0080000e
   last change scn: 0x0000.00078584 seq: 0x1 flg: 0x06
   consistency value in tail: 0x85840601
   check value in block header: 0xca4b, computed block checksum: 0x5a6
   spare1: 0x0, spare2: 0x0, spare3: 0x0
  ***
  Reread of blocknum=14, file=D:\ORADATA\EYGLE\EYGLE01.DBF. found same corrupt data
  
  5.查询RMAN发现的坏块信息
  
  09:08:25 SQL> select * from v$database_block_corruption where file#=2;
  
     FILE#   BLOCK#   BLOCKS CORRUPTION_CHANGE# CORRUPTIO
  ---------- ---------- ---------- ------------------ ---------
       2     14     1         0 FRACTURED
  
  已用时间: 00: 00: 00.00
  
  6.执行恢复
  
  D:\>rman target /
  
  恢复治理器: 版本9.2.0.6.0 - Production
  
  Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
  
  已连接到目标数据库 (未启动)
  
  RMAN> startup mount;
  
  Oracle 例程已启动
  
  数据库已加载
  
  系统全局区域总计       59842188 字节
  
  Fixed Size           454284 字节
  Variable Size         33554432 字节
  Database Buffers       25165824 字节
  Redo Buffers          667648 字节
  
  RMAN> blockrecover datafile 2 block 14 from backupset;
  
  启动 blockrecover 于 12-6月 -05
  
  正在使用目标数据库控制文件替代恢复目录
  
  分配的通道: ORA_DISK_1
  
  通道 ORA_DISK_1: sid=11 devtype=DISK
  
  通道 ORA_DISK_1: 正在恢复块
  
  通道 ORA_DISK_1: 正在指定要从备份集恢复的块
  
  正在恢复数据文件 00002 的块
  
  通道 ORA_DISK_1: 已从备份段 1 恢复块
  
  段 handle=D:\ORADATA\EYGLE_FULLBK.BAK tag=EYGLE params=NULL
  
  通道 ORA_DISK_1: 块恢复已完成
  
  正在开始介质的恢复
  
  完成介质的恢复
  
  完成 blockrecover 于 12-6月 -05
  
  7.检查数据的恢复
  
  D:\>sqlplus "/ as sysdba"
  
  SQL*Plus: Release 9.2.0.6.0 - Production on 星期日 6月 12 09:10:55 2005
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  连接到:
  
  Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
  With the Partitioning, OLAP and Oracle Data Mining options
  JServer Release 9.2.0.6.0 - Production
  
  09:10:55 SQL> alter database open;
  
  数据库已更改。

  
  已用时间: 00: 00: 07.01
  09:11:08 SQL> select * from v$database_block_corruption where file#=2;
  
     FILE#   BLOCK#   BLOCKS CORRUPTION_CHANGE# CORRUPTIO
  ---------- ---------- ---------- ------------------ ---------
       2     14     1         0 FRACTURED
  
  已用时间: 00: 00: 00.01
  09:11:12 SQL> select count(*) from t;
  
   COUNT(*)
  ----------
      896
  
  已用时间: 00: 00: 00.00
  
  此时数据已经恢复,但是block corruption信息仍然记录在数据库中,直到下次validate才会清除这部分信息:
  D:\>rman target /
  
  恢复治理器: 版本9.2.0.6.0 - Production
  
  Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
  
  连接到目标数据库: EYGLE (DBID=1365961916)
  
  RMAN> backup validate datafile 2;
  
  启动 backup 于 12-6月 -05
  
  正在使用目标数据库控制文件替代恢复目录
  
  分配的通道: ORA_DISK_1
  
  通道 ORA_DISK_1: sid=9 devtype=DISK
  
  通道 ORA_DISK_1: 正在启动 full 数据文件备份集
  
  通道 ORA_DISK_1: 正在指定备份集中的数据文件
  
  输入数据文件 fno=00002 name=D:\ORADATA\EYGLE\EYGLE01.DBF
  
  通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
  
  完成 backup 于 12-6月 -05
  
  RMAN>
  
  此时从数据库中查询,坏块信息被清除。
  
  09:11:22 SQL> select * from v$database_block_corruption where file#=2;
  
  未选定行
  
  已用时间: 00: 00: 00.00
  09:12:28 SQL>
上一篇:如何把数据导入不同的表空间? 人气:401
下一篇:关于PUSH_SUBQ提示的说明 人气:362
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵