Bug 8339404 - ORA-1578 - Blocks can be misplaced in ASM during a REBALANCE
Database blocks can be misplaced if there is a pending IO (not submitted to the
storage yet) while the ASM extent is being relocated by an ASM REBALANCE operation.
Soon after the ASM extent is relocated, the previous pending write I/O is
submitted to the storage causing the corruption.
Subsequent SQL operations in the database may fail with error ORA-1578
while trying read the block from the affected segment.
DBVERIFY shows "Bad header found during dbv" with a misplaced block:
Example:
file 27, block 8195 (dba: 0x06c02003) is identified as corrupt
because the content of that block belongs to a different block
rdba: 0x06c01a03(file 27, block 6659)
DBVERIFY - Verification starting : FILE = +GROUP1/data_1.269.586785881
Page 8195 is marked corrupt
Corrupt block relative dba: 0x06c02003 (file 27, block 8195)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x06c01a03 last change scn: 0x08e4.371d0fa4 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0fa40602
check value in block header: 0x7965
computed block checksum: 0x0
The SCN in the content for the misplaced block can be used to convert it to
timestamp (last change scn: 0x08e4.371d0fa4) using function scn_to_timestamp
or v$archived_log and check the ASM alert log to identify if there was a
rebalance around that time for ASM group GROUP1 as cited by the above example.
The patch for this bug needs to applied to both ASM and DB instances.
Workaround
1. Apply RMAN Blockrecover or datafile recover.
or
2. If this is a table, recreate the table skipping the corrupt block
storage yet) while the ASM extent is being relocated by an ASM REBALANCE operation.
Soon after the ASM extent is relocated, the previous pending write I/O is
submitted to the storage causing the corruption.
Subsequent SQL operations in the database may fail with error ORA-1578
while trying read the block from the affected segment.
DBVERIFY shows "Bad header found during dbv" with a misplaced block:
Example:
file 27, block 8195 (dba: 0x06c02003) is identified as corrupt
because the content of that block belongs to a different block
rdba: 0x06c01a03(file 27, block 6659)
DBVERIFY - Verification starting : FILE = +GROUP1/data_1.269.586785881
Page 8195 is marked corrupt
Corrupt block relative dba: 0x06c02003 (file 27, block 8195)
Bad header found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x06c01a03 last change scn: 0x08e4.371d0fa4 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0fa40602
check value in block header: 0x7965
computed block checksum: 0x0
The SCN in the content for the misplaced block can be used to convert it to
timestamp (last change scn: 0x08e4.371d0fa4) using function scn_to_timestamp
or v$archived_log and check the ASM alert log to identify if there was a
rebalance around that time for ASM group GROUP1 as cited by the above example.
The patch for this bug needs to applied to both ASM and DB instances.
Workaround
1. Apply RMAN Blockrecover or datafile recover.
or
2. If this is a table, recreate the table skipping the corrupt block
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-675507/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM Rebalance(摘自Blogspot)ASM
- Oracle ASM ACFS disk group rebalanceOracleASM
- Oracle ASM Rebalance執行過程OracleASM
- Code::Blocks Debug配置BloC
- MOS上一片關於ASM Rebalance很好的文章ASM
- 學習ASM技術(四)--條帶化原理和rebalanceASM
- [zt] Oracle10g ASM Auto IO Rebalance新特性及ASM體系結構OracleASM
- Bug 4632780 - PMON "failed to acquire latch" during shutdownAIUI
- Oracle OCP 1Z0 053 Q659(ASM Rebalance Trigger)OracleASM
- rebalance的原理
- 遇到ASM的兩個BUGASM
- ASM Diskgroup Can Not Be Shown When Creating Database With DBCAASMDatabase
- Subject: Bug 3827736 - LPX-225 during datapump import with statisticsImport
- Blocks Programming Helper ↗ Blocks in System APIsBloCAPI
- ORA-1578 解決思路
- ora-07445 LATCHING DURING KSSADPM/KSSREM OPERATIONS,bug 4927533.REM
- JavaScript需要BlocksJavaScriptBloC
- Kafka 消費者組 RebalanceKafka
- ASM例項使用CREATE PFILE FROM MEMORY的bugASM
- Blocks的實現BloC
- Overview of Data Blocks(二)ViewBloC
- Dumping Oracle BlocksOracleBloC
- dba_tables.blocks、dba_tables.empty_blocks和dba_segments.blocks之間是什麼關係BloC
- 【故障處理】Bug : ASM FAILS WITH CHECKRESOURCE ERROR ERROR CODE = 139ASMAIError
- Kafka Consumer 的 Rebalance 機制Kafka
- (譯)窺探Blocks(2)BloC
- iOS-Blocks學習iOSBloC
- (譯)窺探Blocks (1)BloC
- Can you create a second voting disk in a different ASM diskgroup when using External Redundancy in 1ASM
- Can't debug c++ project because unable to static library start program *.libC++Project
- [linux]安裝code::blocksLinuxBloC
- Autonomous PL/SQL Blocks (151)SQLBloC
- Format of Index Blocks (207)ORMIndexBloC
- 12c ASM audit目錄增長過快的bugASM
- ORA-1578 Corrupt Block Found in Encrypted Database (Doc ID 1329437.1)BloCDatabase
- Can'tgetKerberosrealmROS
- ftp "CanFTP
- Blocks深入理解和詳解BloC