오라클/Backup & Recovery

Flashback

빵순이^^ 2010. 7. 16. 15:52

1. Flashback 이점

 Flashback 기술은 recovery  기술의 혁신적 발전을 가져왔다. Flashback 기술은 데이터를 보면서 시점을 앞뒤로 되돌릴 수 있는 새로운 기능을 제공한다. Flashback 기술은 복잡하지 않고 간단히 변경된 데이터에만 작용하므로 recovery 과정이 매우 향상된다. 오류를 recovery하는데 걸리는 시간은 오류가 발생하는 데 걸리는 시간과 같다. 적용 가능한 경우 Flashback 기술은 사용 편리성, 가용성 및 복원 시간 측면에서 Media recovery에 커다란 이점을 제공한다.


2. Flahback 기술을 사용하는 경우

 객체 레벨  시나리오 예제  Flashback 기술  사용  데이터에 미치는 영향
 데이터베이스  테이블 truncate(불필요한 다중 테이블 변경 사항에 적용)  Database  Flashback 로그  True
 테이블  테이블 삭제  Drop  Recycle bin  True
   잘못된 where 절로 개신  Table  언두 데이터  True
   현재 데이터와 과거 데이터 비교  Query  언두 데이터  False
   행 버전 비교  Version  언두 데이터  False
 Tx  여러 데이터 기록 상태 조사  Transaction  언두 데이터  False



3. Flashback의 종류

1) Flashback Table

  • 테이블을 복원하지 않고 특정 시점으로 recovery 할 수 있다.
  • 언두 테이블스페이스에서 데이터를 검색한다.
  • Flashback Table 권한이 있어야 수행 가능하다.
  • row movement(행 이동)이 활성화 되어 있어야 한다.
    SQL> alter table employees ENABLE ROW MOVEMEN

 


2) Flashback Drop

  • Drop table 문의 경과를 실행 취소할 수 있다. DBA_RECYCLEBIN view를 통해 query 할 수 있는 Recycle Bin에 테이블이 있기 때문에 가능하다.

  • 고려사항

    • 다음의 상황에서 작동하지 않음.
      - SYSTEM 테이블 스패에스에 있는 테이블
      - Fine-Grained Auditing 또는 Virtual Private Database를 사용하는 테이블
      - dictionary-managed tablespace에 있는 테이블

    • 다음에 대해 종속성이 보장되지 않는다.
      - Bitmap-join index
      - Materialized view log
      - 참조 무결성 제약조건
      - table 보다 먼저 삭제된 index

 


3) Flashback Query

  • 특정 시간의 데이터베이스에 대해 query를 수행할 수 있다. select 문에 AS OF 절을 사용하여 데이터를 확인 할 시간을 정해 query 할 수 있다.



4) Flashback Versions Query

  • Flashback Query 기능을 사용하여 특정 시간 또는 유저가 지정한 SCN 범위에 따라 데이터베이스에 대한 Query를 수행할 수 있다. 그 결과를 Flashback Versions Query 기능을 이용해 두 시점 또는 두 SCN 사이에 존재하는 행의 모든 버전을 알 수 있다.
  • 반화된 행은 트랜잭션에서의 행 변경 기록을 나타낸다.
  • 커밋 된 행만 검색한다.

  • 고려사항

    • 다음을 Query 하는데 사용할 수 없다.
      - External Table
      - Temporary Table
      - Fixed Table
      - Views

    • DDL 명령에서 사용할 수 없다.
    • shrink 작업은 필터링하여 걸러낸다.

 


5) Flashback Transaction Query

  • 트랜잭션 레벨에서 데이터베이스에 수행한 변경 사항을 확인할 수 있는 진단 툴이다. 이 툴을 통해 데이터 베이스에서 문제를 진단하고 트랜잭션을 분석 및 감사할 수 있다. FLASHBACK_TRANSACTION_QUERY view를 사용해 특정 트랜잭션에 의한 변경 사항 또는 특정 기간 중의 변경 사항을 실행 취소하는 데 사용되는 모든 필요한 SQL 문을 확인할 수 있다.

  • 고려사항

    • DDL은 딕셔너리 갱신으로 표시된다.
    • 삭제된 객체는 객체 번호로 표시된다.
    • 삭제된 유저는 식별자로 표시된다.

 


6) Flashback Database

  • Flashback은 유저에 의해 논리적 데이터가 손상된 경우 사용할 수 있다. data에 물리적 손상이 발생했거나 media가 손상된 경우에는 기존의 recovery 방법을 사용해야 한다.

  • Flashback Database는 복원된 파일과 리두 로그 파일을 사용하는 기존 Point-In-Time Recovery 방식보다 빠르다. 데이터베이스의 크기가 활장할 수록 기존 Point-In-time Recovery에서 데이터 파일을 모두 복원하는데 걸리는 시간이 엄청나게 늘어나가 된다. 이 때 Flashback Database를 사용할 경우 데이터 파일을 복원할 필요가 없으므로 데이터베이스 recovery 시간은 데이터베이스 크기가 아니라 취소해야 할 변경사항 수에 비례한다.

    Flashback Database는 Flashback Database 로그 파일을 사용하여 구현된다. 오라클 데이터베이스는 데이커 블록의 이전 이미지를 주기적으로 기록한다. 이 블록 이미지를 재사용하여 원하는 목표 시간 직전에 로그가 캡춰된 시점으로 데이터 파일 변경 사항을 빠르게 취소할 수 있다. 그런 다음 데이터 간의 차이를 메우기 위해 리두로그 파일의 변경 사항이 적용된다.

  • 고려사항

    • Flashback 작업 완료 후 Database를 여는 방법
      - 정확한 목표 시간 또는 SCN이 사용되었는지 확인하려면 읽기 전용 모드로 연다.
      - 갱신을 허용하려면 RESETLOGS 파라미터를 사용한다.

    • Flashback을 사용할 수 없는 경우
      - control file이 복원되었거나 재생성 된 경우
      - tabase space가 삭제된 경우
      - datafile이 shrink 된 경우 

'오라클 > Backup & Recovery' 카테고리의 다른 글

Oracle 장애 유형과 문제해결  (0) 2010.10.04