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"
问题解决。
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"
问题解决。
相关文章推荐
- ORA-1547一例处理
- ORA-00201处理一例
- ora-01578 数据库坏块处理
- ORA-27102:out of memeory 故障处理一例
- 逻辑 STANDBY ORA-00368日志应用失败处理一例
- RAC 下处理ORA-12545错误一例
- ORA-30009 故障处理一例
- ORA-12537错误处理一例
- ORA-01578的处理
- ORA-00054 故障处理一例
- ORA-01578数据库坏块处理
- ORA-00054 故障处理一例
- ora-00201,ora-00202错误处理一例
- ORA-00054 故障处理一例
- Oracle 11g R2 (11.2.0.1.0)impdp 导入报ora-06512错误,处理一例
- ORA-12528处理一例---补充
- ORA-01578: ORACLE 数据块损坏 之奇妙处理 DBV
- 解决ORA-01578错误一例
- ORA-00704,ORA-1092处理一例
- ora.LISTENER.lsnr INTERMEDIATE 处理一例