레이블이 Backup&Recovery인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Backup&Recovery인 게시물을 표시합니다. 모든 게시물 표시

2009년 8월 13일 목요일

BMR(Block Media Recovery) - Step 9

▣ 복구 절차

Error 발생 => dbv로 여부, 개수 확인 => exp로 위치 찾고 => 찾은 위치로 => BMR(Block Media Recovery)

   

▣ BLOCKRECOVER

▶ 해당 T/S의 백업이 있어야 함(없어도 가능하지만 복잡)

▶ 사용법

BLOCKRECOVER DATAFILE 6 BLOCK 3;

   

▣ RMAN BMR

▶ View : V$DATABASE_BLOCK_CORRUPTION

▶ 범위시간을 결정해서 자동으로 실행하는 방법

BLOCKRECOVER CORRUPTION LIST RESTORE UNTIL TIME 'sysdate - 10';

※ dbv : 여부 + 개수        

   exp : 위치

▣ 준비

   

▣ 고장내기

[oracle@edrsr4p1 ~]$ vi -b ts.ts

   

▣ 에러 찾기

   

# vi /u01/app/oracle/admin/orcl/bdump/alert_orcl.log

   

▣ exp 로 에러위치 알아내기

   

[oracle@edrsr4p1 ~]$ exp hr/hr

EXP-00091: Exporting questionable statistics.

EXP-00091: Exporting questionable statistics.

. . exporting table T1

EXP-00056: ORACLE error 1578 encountered

ORA-01578: ORACLE data block corrupted (file # 6, block # 16)

ORA-01110: data file 6: '/home/oracle/ts.ts'

. exporting synonyms

. exporting views

   

▣ BLOCKRECOVER 로 복구

   

▣ 확인

Block Corruption

▣ Block Corruption 징후

▶ ORA-01578 : "Oracle data block corrupted (file # %s, block # %s)";

▶ alert.log에서 확인 가능

   

▣ Corruption 처리

▶ Check the alert log and operating system logfile

▶ Use available diagnostic tools to find out the type of corruption => dbv, exp

▶ Determine whether the error persists by running checks multiple times

▶ Recover data from the corrupted object if necessary => BMR

   

▣ Corruption-Related Features

▶ 물리적 에러

순서

Feature

Corruption Detected

Repairs Corruption

0

DB_BLOCK_CHECKSUM

Physical

False

1

ORA-01578

  

  

2

DBVERIFY

Physical

False

3

Exp

Physical

False

4

Block media recovery

None

True

※ DB_BLOCK_CHECKSUM : 물리적인 오류시 에러발생 - 파라미터

   

▶ 논리적 에러

순서

Feature

Corruption Detected

Repairs Corruption

0

DB_BLOCK_CHECKING

Logical

False

1

논리적 에러

  

  

2

ANALYZE

Logical

False

3

Rebuild

  

  

4

Flashback

Logical

True

※ DB_BLOCK_CHECKING : 기본값 False

   

▣ Table Move

   

▣ Rebuild 할 index가 많을 경우

2009년 8월 12일 수요일

Flashback

▣ Flashback 기능을 사용하려면 아래와 같이 Flashback이 on 모드여야 한다.

   

▣ Recyclebin

  1. 삭제된 테이블은 recyclebin안에서 빈공간으로 인식된다.
  2. DB 운영시 빈공간으로 인식되며 만약 DB의 용량이 부족하다면 휴지통 용량을 사용한다.
  3. 지워진 테이블은 예고없이 휴지통에서 삭제됨
  4. Datafile이 Auto-Extend일 경우에는 recyclebin이 확장됨

   

Table Drop & Recycle

   

▣ 되살리려는 테이블명이 이미 존재할 경우

   

EM

   

▣ DB 전체 Recycle Purge

   

Querying the RecycleBin

   

▣ 휴지통에 있는 테이블 내용 확인

   

▣ 공간 절약을 위해 Flashback log를 만들지 않는 T/S 지정

ALTER TABLESPACE <ts_name> FLASHBACK {ON|OFF}

=> on으로 바꿀 때는 mount 모드에서만 가능

확인> SELECT name,flashback_on FROM v$tablespace;

   

▣ Monitoring Flashback Database

▶ View the flash recovery area disk quota

SELECT estimated_flashback_size,flashback_size FROM V$FLASHBACK_DATABASE_LOG;

▶ Determine the current flashback window

SELECT oldest_flashback_scn,oldest_flashback_time FROM V$FLASHBACK_DATABASE_LOG;

▶ Monitoring logging in the Flashback Database Log

SELECT * FROM V$FLASHBACK_DATABASE_LOG;

   

▶ V$FLASH_RECOVERY_AREA_USAGE

   

▣ Guaranteed Restore Points

해당 restore point가 가능하도록 Flashback log를 지우지 않음

CREATE RESTORE POINT before_load GUARANTEE FLASHBACK DATABASE;

Flashback Architecture

Recovering Read-Only Tablespace

▣ Read only Tablespace는 Recover 필요 없음

단, 백업이후 한번이라도 Read write 모드 였던 Tablespace는 Recover 필요

Case 2, Case 3은 recover 필요

Incomplete Recovery : Best Practices

  1. 에서는 Mirror DB 구축 ( by UserManaged whole Backup)
  2. Plan for and practice scenarios ahead of time
  3. Investigate and verify that incomplete recovery is necessary
    1. 전.후 과정에 whole 백업 필요
  4. Follow all steps carefully
  5. Take whole database backups before and after recovery
  6. Always verify that the recovery was successful
  7. Take advantage of restore points

Incomplete Recovery

Incomplete Recovery

  • 불완전 복구
  • DB 전체의 datafile만 restore하고 Archive와 Redo를 일부만 적용시켜서 과거 버전으로 복구함

   

Complete Recovery vs Incomplete Recovery

   

▣ Incomplete Recovery 종류

  • Time-based recovery => 고의로
  • Cancel-based recovery => 어쩔 수 없이
  • Change-based recovery => SCN
  • Log sequence recovery => log파일 생성 기준

   

▣ Incomplete Recovery 사용예 - 1

  1. 고장

   

  1. 복구

    [oracle@edrsr4p1 backup]$ cat restore.sh

    cp /backup/*.dbf /u01/app/oracle/oradata/ORCL/datafile/

    cp /backup/*.dbf /u01/app/oracle/oradata/ORCL/datafile/

    cp /backup/*.dbf /u01/app/oracle/oradata/ORCL/datafile/

    cp /backup/*.dbf /u01/app/oracle/oradata/ORCL/datafile/

    cp /backup/*.dbf /u01/app/oracle/oradata/ORCL/datafile/

       

       

   

   

Incomplete Recovery 사용 예 - 2 (Time-based)

 1. 고장

   

 2. 복구

   

 3. 확인

   

   

 4. 백업 : resetlogs 로 open 하면 반드시 백업해야 함

   

Incomplete Recovery 사용 예 - 3 (Log Sequence Recovery)

※ 용량이 부족할 경우 위와 같이 아카이브 파일을 일부씩 복사한 후 복구 작업을 실시한다.