DBAtlas · 데이터베이스 운영 아틀라스

손상 블록 온라인 복구(block media recovery, 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;

하는 일

손상된 블록만 백업(또는 flashback 로그 / Active Data Guard standby)에서 복원하고 redo로 roll forward한다. 데이터 파일과 테이블스페이스는 온라인 상태로 유지되며, 애플리케이션은 해당 블록에 접근할 때만 오류를 받는다.

사용 시점

ORA-01578 / ORA-01110과 함께 국소적 블록 손상이 나타날 때, 데이터 파일 전체 복원이 불필요한 다운타임을 유발할 때.

주의

해당 블록을 포함한 정상 백업과 그 이후 현재까지의 모든 아카이브 로그가 필요하다. NOLOGGING 작업으로 인한 손상(ORA-26040)은 이 방법으로 복구할 수 없으며 객체를 재생성해야 한다. Enterprise Edition 기능이다. 손상의 원인(스토리지, HBA, 펌웨어)을 찾지 않으면 재발한다.

DBAtlas에서 열기 →

관련 항목