ORA-600 [kdBlkCheckError] [file#] [block#] [code]
來自METALINK 轉載一下
Description
Note: This fix causes the problem reported in bug 9711859.
** Please use the fix of <Bug 9711859> instead of this fix **
ORA-600 [5467] may be reported by SMON while recovering an aborted
transaction of allocating extents.
Rediscovery Notes
In the trace file segment header dump extent map shows
rdba=0x00000000 and length=0 in "Block Image after recovery".
eg:
Block image after block recovery
Extent Map
--------------------------------------
0x05c188c9 length:16
0x00000000 length: 0 <---- Invalid zero rdba/length
The affected blocks are type 0x23/0x24 as they contain Extent Map:
0x23=PAGETABLE SEGMENT HEADER
0x24=PAGETABLE EXTENT MAP BLOCK
Additional symptoms are:
ORA-600 [25012] [ts#] [0]
ORA-600 [25027] [ts#] [0]
due to dba=0x00000000 in the extent map.
ORA-600 [5400]
ORA-600 [5463]
In 10g+ or when db_block_checking is enabled errors are:
ORA-600 [kddummy_blkchk] [file#] [block#] [code]
ORA-600 [kdBlkCheckError] [file#] [block#] [code]
Where code can be 18009, 18038.
The trace file has an Operation related to extent map with the invalid zero dba:
Block Checking: DBA = <decimal dba>, Block Type = Pagetable extent map block
Incorrect extent map entry at offset <offset#>. DBA value is 0x00000000
TYP:0 CLS: 7 AFN:<file#> DBA:<hex dba> OBJ:<obj#> SCN:<scn> SEQ: <seq#> OP:14.4
kteop redo - redo operation on extent map
Testcase example:
drop table TC.T purge;
drop tablespace tc including contents and datafiles;
rem Disabling the checksum is optional and it is to reproduce the problem more easily:
alter system set db_block_checksum=false;
grant CONNECT, RESOURCE to TC identified by tc;
create tablespace TC datafile 'TC.dbf' size 100M autoextend off segment space management auto;
create table TC.T (i int, c clob) tablespace TC lob (c) store as (disable storage in row);
insert into tc.t select rownum,rownum from all_objects where rownum<=100;
commit;
alter table TC.T modify lob (C) (allocate extent (size 100M));
IMPORTANT
========
This fix is to prevent the issue to be introduced.
It does not repair existent corruption.
The corruption in a LOB segment does not avoid the segment to be read; e.g., lob segment can be read (exported).
========
Workaround
Retrieve the data and Drop/Create the affected Segment:
A. Get the data from the segment:
The most common cause of this bug is for a LOB so next examples are LOB focused:
- Move the lob segment:
alter table &table_owner.&table_with_lob move LOB (&&lob_column) store as (tablespace &tablespace_name);
- Create a new lob segment by creating the table with create table as select (CTAS) and drop the original table.
create table &new_table as select * from &table_with_lob; <- use parallel,etc for faster performance.
drop table &table_with_lob purge; (The purge option is necessary to avoid the same errors in recycle bin).
- Export the table and recreate it.
if using datapump, set db_block_checking=MEDIUM and export with estimate=statistics. Example:
expdp tc/tc tables=t estimate=STATISTICS reuse_dumpfiles=y directory=<dirname>
B. Drop the segment (only if MOVE was not used to retrieve the data)
If errors ORA-600 with ora-600 [kdBlkCheckError] or ORA-600 [kddummy_blkchk]
are produced by the drop, disable checksum, drop the segment and
re-enable the checksum by executing:
alter system set db_block_checksum=false;
Open a new session and drop table purge.
alter system set db_block_checksum=true;
If the error is still produced by SMON while cleaning the temporary segment
use the next procedures from dbms_space_admin to clear it:
segment_corrupt
segment_drop_corrupt
tablespace_rebuild_bitmaps
Note:
This fix causes the problem reported in bug 9711859.
* Please use the fix of <Bug 9711859> instead of this fix *
Description
Note: This fix causes the problem reported in bug 9711859.
** Please use the fix of <Bug 9711859> instead of this fix **
ORA-600 [5467] may be reported by SMON while recovering an aborted
transaction of allocating extents.
Rediscovery Notes
In the trace file segment header dump extent map shows
rdba=0x00000000 and length=0 in "Block Image after recovery".
eg:
Block image after block recovery
Extent Map
--------------------------------------
0x05c188c9 length:16
0x00000000 length: 0 <---- Invalid zero rdba/length
The affected blocks are type 0x23/0x24 as they contain Extent Map:
0x23=PAGETABLE SEGMENT HEADER
0x24=PAGETABLE EXTENT MAP BLOCK
Additional symptoms are:
ORA-600 [25012] [ts#] [0]
ORA-600 [25027] [ts#] [0]
due to dba=0x00000000 in the extent map.
ORA-600 [5400]
ORA-600 [5463]
In 10g+ or when db_block_checking is enabled errors are:
ORA-600 [kddummy_blkchk] [file#] [block#] [code]
ORA-600 [kdBlkCheckError] [file#] [block#] [code]
Where code can be 18009, 18038.
The trace file has an Operation related to extent map with the invalid zero dba:
Block Checking: DBA = <decimal dba>, Block Type = Pagetable extent map block
Incorrect extent map entry at offset <offset#>. DBA value is 0x00000000
TYP:0 CLS: 7 AFN:<file#> DBA:<hex dba> OBJ:<obj#> SCN:<scn> SEQ: <seq#> OP:14.4
kteop redo - redo operation on extent map
Testcase example:
drop table TC.T purge;
drop tablespace tc including contents and datafiles;
rem Disabling the checksum is optional and it is to reproduce the problem more easily:
alter system set db_block_checksum=false;
grant CONNECT, RESOURCE to TC identified by tc;
create tablespace TC datafile 'TC.dbf' size 100M autoextend off segment space management auto;
create table TC.T (i int, c clob) tablespace TC lob (c) store as (disable storage in row);
insert into tc.t select rownum,rownum from all_objects where rownum<=100;
commit;
alter table TC.T modify lob (C) (allocate extent (size 100M));
IMPORTANT
========
This fix is to prevent the issue to be introduced.
It does not repair existent corruption.
The corruption in a LOB segment does not avoid the segment to be read; e.g., lob segment can be read (exported).
========
Workaround
Retrieve the data and Drop/Create the affected Segment:
A. Get the data from the segment:
The most common cause of this bug is for a LOB so next examples are LOB focused:
- Move the lob segment:
alter table &table_owner.&table_with_lob move LOB (&&lob_column) store as (tablespace &tablespace_name);
- Create a new lob segment by creating the table with create table as select (CTAS) and drop the original table.
create table &new_table as select * from &table_with_lob; <- use parallel,etc for faster performance.
drop table &table_with_lob purge; (The purge option is necessary to avoid the same errors in recycle bin).
- Export the table and recreate it.
if using datapump, set db_block_checking=MEDIUM and export with estimate=statistics. Example:
expdp tc/tc tables=t estimate=STATISTICS reuse_dumpfiles=y directory=<dirname>
B. Drop the segment (only if MOVE was not used to retrieve the data)
If errors ORA-600 with ora-600 [kdBlkCheckError] or ORA-600 [kddummy_blkchk]
are produced by the drop, disable checksum, drop the segment and
re-enable the checksum by executing:
alter system set db_block_checksum=false;
Open a new session and drop table purge.
alter system set db_block_checksum=true;
If the error is still produced by SMON while cleaning the temporary segment
use the next procedures from dbms_space_admin to clear it:
segment_corrupt
segment_drop_corrupt
tablespace_rebuild_bitmaps
Note:
This fix causes the problem reported in bug 9711859.
* Please use the fix of <Bug 9711859> instead of this fix *
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-1867822/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle block phisical address to block#OracleBloC
- Oracle 18.3 Resize operation completed for file#Oracle
- ORA-600(kghfremptyds)和ORA-600(kghasp1)錯誤REM
- Oracle中臨時檔案File#和Db_files關係(zt)Oracle
- ORA-600(KSFD_DECAIOPC)和ORA-600(kfioReapIO00)錯誤AIAPI
- ORA-600(kffmXpGet)錯誤
- ORA-600 Lookup Error CategoriesErrorGo
- ORA-600(kcbchg1_12)和ORA-600(kdifind:kcbget_24)錯誤
- ORA-600(ktfbbsearch-8)和ORA-600(kewrose_1)錯誤ROS
- ORA-600(kjbrchkpkeywait:timeout)和ORA-600(kclcls_8)錯誤AI
- ORA-600(kgh_heap_sizes:ds)和ORA-600(kghGetHpSz1)錯誤
- ORA-600:[qertbGetPartitionNumber:qesma2],[],[],[]
- 【故障-oracle】ORA-600[KQLINVOBJUSER]OracleOBJ
- 關於oracle的ORA-600Oracle
- ora-600 / ora-7445 loopOOP
- ORA-600 函式彙總函式
- ORA-600 [2662]故障處理
- ORA-600(kcbgcur_1)錯誤GC
- ORA-600 [kjbrchkpkeywait:timeout]AI
- ORA-600 [ttcgcshnd-1 ]錯誤GC
- ORA-600(kclgclk_7)錯誤GC
- ORA-600(kcbnew_3)錯誤
- ORA-600(qersqCloseRem-2)錯誤REM
- ORA-600(qctopn1)錯誤
- ORA-600(kcblasm_1)錯誤ASM
- ORA-600(qkaffsindex5)錯誤Index
- ORA-600(kghuclientasp_03)錯誤client
- ORA-600(ttcgcshnd-2)錯誤GC
- ORA-600(kolaslGetLength-1)錯誤
- bug: ORA-1031 ORA-600[17285] ORA-600[KGANTC_1] Debugging PL/SQLSQL
- 事務槽引起的 ORA-600 事件事件
- ORA-600(kssadd: null parent)錯誤Null
- ORA-600(504)(row cache objects)錯誤Object
- ORA-600(ktrgcm_3)錯誤GC
- Drop Table Fails With ORA-600 [15264]AI
- ORA-600(krvxdds: duplicated session not)錯誤Session
- ORA-600(kjxgrdecidemem1)錯誤IDE
- ORA-600 [krslint.9] in PRIMARY databaseDatabase