ORA-01578: Oracle data block corrupted (file #, block #)(Oracle データブロックの破損)
Oracle意味
指定されたデータファイル内のデータブロックが破損している。Oracle はブロックが整合性チェック (チェックサム) に失敗したことを報告している。これは物理破損である。
原因
ディスク/ハードウェア障害、ストレージ層のエラー、オペレーティングシステムまたはコントローラの問題、停電後の部分書き込みブロック、または破損したバックアップ/リストア。
対処方法
破損とその範囲を確認する: RMAN> VALIDATE DATABASE / VALIDATE CHECK LOGICAL DATAFILE n。DBVERIFY (dbv) も実行し、v$database_block_corruption を確認する。バックアップがあればブロックレベルでリカバリする: RMAN> RECOVER DATAFILE n BLOCK m; または一覧のすべてのブロックに対して RMAN> RECOVER CORRUPTION LIST; (旧来の BLOCKRECOVER コマンドは 11g 以降非推奨)。インデックスブロックであればインデックスを再構築する。必ずハードウェア/ディスクの健全性を確認する。根本原因は通常ストレージにある。
同じデータベースの他の項目
- 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 contention待機: 別トランザクションが保持する行レベルロックでセッションがブロックされている
- log file sync待機: コミット時に LGWR が redo をディスクにフラッシュするのをセッションが待っている