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 |
---|