您的位置:首页 > 其它

ORA-01578: 处理一例。

2015-03-10 12:02 375 查看
警告日志里出现错误:

Errors in file /u01/app/oracle/diag/rdbms/r92cfdb/r92cfdb/trace/r92cfdb_smon_22972.trc (incident=361333):

ORA-01578: ORACLE data block corrupted (file # 11, block # 2186414)

ORA-01110: data file 11: '/u01/app/oracle/oradata/r92cfdb/SEARCH_DATA_1.dbf'

偿试恢复:

SQL> select * from v$database_block_corruption;

FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO

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

11 2186414 1 0 FRACTURED

-bash-3.2$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Tue Mar 10 03:10:00 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: R92CFDB (DBID=1492361450)

RMAN> blockrecover datafile 11 block 2186414;

Starting recover at 10-MAR-15

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=5066 device type=DISK

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 03/10/2015 03:10:35

RMAN-06026: some targets not found - aborting restore

RMAN-06023: no backup or copy of datafile 11 found to restore

看看是什么对象损坏了吧:

SQL> SELECT tablespace_name, segment_type, owner, segment_name

2 FROM dba_extents

3 WHERE file_id = &fileid

and &blockid between block_id AND block_id + blocks - 1; 4

Enter value for fileid: 11

old 3: WHERE file_id = &fileid

new 3: WHERE file_id = 11

Enter value for blockid: 2186414

old 4: and &blockid between block_id AND block_id + blocks - 1

new 4: and 2186414 between block_id AND block_id + blocks - 1

TABLESPACE_NAME SEGMENT_TYPE OWNER

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

SEGMENT_NAME

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

SEARCH_DATA INDEX SEARCHSYS

DR$EQ$DOC_PATH_IDX$X

还是是索引,

既然不能恢复,删除重新建立吧:

set long 9999

select dbms_metadata.get_ddl('INDEX','DR$EQ$DOC_PATH_IDX$X','SEARCHSYS') from dual;

CREATE INDEX "SEARCHSYS"."DR$EQ$DOC_PATH_IDX$X" ON "SEARCHSYS"."DR$EQ$DOC_PATH

_IDX$I" ("TOKEN_TEXT", "TOKEN_TYPE", "TOKEN_FIRST", "TOKEN_LAST", "TOKEN_COUNT")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS COMPRESS 2

STORAGE(INITIAL 5242880 NEXT 52428800 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "SEARCH_DATA"

问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: