DBAtlas · データベース運用アトラス

破損ブロックをオンラインで修復(ブロックメディアリカバリ、RECOVER CORRUPTION LIST)

OracleRMAN

コマンド

# 1) Detect corrupt blocks (populates v$database_block_corruption):
VALIDATE CHECK LOGICAL DATABASE;
# 2) Repair all blocks in the list (the datafile stays online):
RECOVER CORRUPTION LIST;
# or the file/block from the error message (ORA-01578: file# 7, block# 233):
RECOVER DATAFILE 7 BLOCK 233;
RECOVER DATAFILE 7 BLOCK 233 DATAFILE 9 BLOCK 1001;
# 3) Verify:
VALIDATE DATAFILE 7;
SELECT * FROM v$database_block_corruption;

概要

破損ブロックのみをバックアップ(またはフラッシュバックログ/Active Data Guardスタンバイ)からリストアし、REDOでロールフォワードする。データファイルと表領域はオンラインのままで、アプリケーションはそのブロックに触れたときのみエラーになる。

使用する場面

ORA-01578 / ORA-01110で局所的なブロック破損が発生したとき。データファイル全体のリストアでは不要な停止時間が発生するとき。

注意

そのブロックを含むクリーンなバックアップと、それ以降現在までのすべてのアーカイブログが必要。NOLOGGING操作による破損(ORA-26040)はこの方法では修復できず、オブジェクトを再構築する必要がある。Enterprise Editionの機能。破損の原因(ストレージ、HBA、ファームウェア)を特定しなければ再発する。

DBAtlas で開く →

関連項目