ORA-01578: Oracle data block corrupted (file #, block #)
OracleNe demek?
Belirtilen datafile'daki bir veri bloğu bozulmuş; Oracle bloğun tutarlılık kontrolünden (checksum) geçemediğini bildiriyor. Fiziksel bozulma söz konusu.
Neden olur?
Disk/donanım arızası, depolama katmanı hataları, işletim sistemi ya da denetleyici sorunları, güç kesintisi sonucu yarım yazılmış bloklar veya bozuk yedek/geri yükleme.
Nasıl çözülür?
Bozulmayı doğrulayın ve kapsamını görün: RMAN> VALIDATE DATABASE / VALIDATE CHECK LOGICAL DATAFILE n; ayrıca DBVERIFY (dbv) çalıştırın ve v$database_block_corruption'a bakın. Yedek varsa blok düzeyinde kurtarın: RMAN> RECOVER DATAFILE n BLOCK m; ya da listedeki tüm bloklar için RMAN> RECOVER CORRUPTION LIST; (eski BLOCKRECOVER komutu 11g'den beri deprecated'dır). Index bloğuysa index'i yeniden oluşturun. Donanım/disk sağlığını mutlaka kontrol edin; kök neden genelde depolamadır.
Aynı motorda diğer kayıtlar
- ORA-01000Maximum open cursors exceeded
- ORA-00018Maximum number of sessions exceeded
- ORA-28000The account is locked
- ORA-01722Invalid number
- ORA-02049Timeout: distributed transaction waiting for lock
- enq: TX - row lock contentionWait: oturum, başka bir transaction'ın tuttuğu row-level lock'ı bekliyor
- log file syncWait: oturum, commit'te LGWR'ın redo'yu diske yazmasını bekliyor