分享
 
 
 

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

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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 Full140M DISK00:00:22 12-6月 -05

BP 要害字: 1 状态: AVAILABLE 标记:TAG20050612T004442

段名:D:\ORADATA\EYGLE_FULL.BAK

包含的 SPFILE: 修改时间: 04-3月 -05

备份集 2 中的数据文件列表

文件 LV 类型 Ckp SCNCkp 时间 名称

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

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 Full140M DISK00:00:21 12-6月 -05

BP 要害字: 2 状态: AVAILABLE 标记:EYGLE

段名:D:\ORADATA\EYGLE_FULLBK.BAK

包含的 SPFILE: 修改时间: 04-3月 -05

备份集 4 中的数据文件列表

文件 LV 类型 Ckp SCNCkp 时间 名称

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

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 Size33554432 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 1410 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 Size454284 字节

Variable Size 33554432 字节

Database Buffers25165824 字节

Redo Buffers667648 字节

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 1410 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有