ORACLE坏块(ORA-01578)处理方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE坏块(ORA-01578)处理方法

文章分类:数据库

0.模拟出现坏块环境

SQL> CREATE TABLESPACE "TEST"

2 LOGGING

3 DATAFILE 'D:\ORACLE\ORADATA\ALAN\TEST.ora' SIZE 1M EXTENT

4 MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

5 /

表空间已创建。

SQL> create user alantest identified by alantest

2 default tablespace test

3 temporary tablespace temp;

用户已创建

SQL> grant dba to alantest;

授权成功。

SQL> connect alantest/alantest

已连接。

SQL> show user

USER 为"ALANTEST"

SQL> create table test_alan as select * from dba_objects;

RMAN> backup database format='c:\rmanbackup\FULL_%U';

启动 backup 于 07-7月 -06

正在使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=18 devtype=DISK

通道 ORA_DISK_1: 正在激活 full 数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

在备份集中包含当前的 SPFILE

备份集中包括当前控制檔

输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\ALAN\SYSTEM01.DBF

输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\ALAN\UNDOTBS01.DBF 输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\ALAN\INDX01.DBF

输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\ALAN\USERS01.DBF

输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\ALAN\TOOLS01.DBF

输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\ALAN\CATTAB01.DBF

输入数据文件 fno=00007 name=D:\ORACLE\ORADATA\ALAN\TEST.ORA

通道 ORA_DISK_1: 正在激活段 1 于 07-7月 -06

通道 ORA_DISK_1: 已完成段 1 于 07-7月 -06

段 handle=C:\RMANBACKUP\FULL_0JHNJ63P_1_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:38

完成 backup 于 07-7月 -06

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

使用编辑工具修改数据文件生成坏块

C:\>dbv file=D:\ORACLE\ORADATA\ALAN\TEST.ora blocksize=8192

DBVERIFY: Release 9.2.0.6.0 - Production on 星期五 7月 7 14:53:46 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

DBVERIFY - 验证正在开始 : FILE = D:\ORACLE\ORADATA\ALAN\TEST.ora

标记为损坏的页12

***

Corrupt block relative dba: 0x01c0000c (file 7, block 12)

Bad check value found during dbv:

Data in bad block -

type: 6 format: 2 rdba: 0x01c0000c

last change scn: 0x0000.0007bc14 seq: 0x1 flg: 0x04

consistency value in tail: 0xbc140601

check value in block header: 0x91ea, computed block checksum: 0x110e spare1: 0x0, spare2: 0x0, spare3: 0x0

***

DBVERIFY - 验证完成

检查的页总数:128

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

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

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

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

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

处理的总页数 (段) : 0

失败的总页数 (段) : 0

空的页总数:34

标记为损坏的总页数:1

汇入的页总数:0

Highest block SCN : 506930 (0.506930)

1.对相关的表进行操作:

SQL> select * from alantest.test_alan where rownum=1234;

select * from alantest.test_alan where rownum=1234

*

ERROR 位于第 1 行:

ORA-01578: ORACLE 数据块损坏(文件号7,块号12)

ORA-01110: 数据文件 7: 'D:\ORACLE\ORADATA\ALAN\TEST.ORA'

SQL> select count(*) from alantest.test_alan;

select count(*) from alantest.test_alan

*

ERROR 位于第 1 行:

ORA-01578: ORACLE 数据块损坏(文件号7,块号12)

ORA-01110: 数据文件 7: 'D:\ORACLE\ORADATA\ALAN\TEST.ORA'

2. 检查alter.log出现的报错信息

Corrupt block relative dba: 0x01c0000c (file 7, block 12)

Bad check value found during buffer read

Data in bad block -

type: 6 format: 2 rdba: 0x01c0000c

last change scn: 0x0000.0007bc14 seq: 0x1 flg: 0x04

consistency value in tail: 0xbc140601

check value in block header: 0x91ea, computed block checksum: 0x91a spare1: 0x0, spare2: 0x0, spare3: 0x0

相关文档
最新文档