FLASHBACK 메모리 - 사람 살리는 메모리
1. FLASHBACK 메모리
- 사용자 실수에 의한 데이터 수정 시, 백업 없이 복구할 수 있음
- FLASHBACK메모리는 Undo데이터를 기반으로 수정되는 정보를 저장하고 있음
2. FLASHBACK QUERY : 테이블이 특정 시점에 있는 정보들을 가져오는 작업
- 삭제된 내용을 보고 실수한 데이터를 수정할 수 있음
예)
->
-- 삭재된 시점의 번호 - 1 : 삭제 직전의 정보
SELECT *
FROM empl AS OF SCN 719742;
-- empl 이라는 테이블을 719742의 시점의 정보로 되돌리는 작업
3. FLASHBACK VERSION QUERY : 테이블이 수정되는 시점들을 확인할 수 있는 작업
- VERSIONS_STARTTIME : 테이블의 시작 시점
- VERSIONS_ENDTIME : 테이블의 마지막 시점
- VERSIONS_STARTSCN : 테이블이 수정된 처음 시점
- VERSIONS_ENDSCN : 테이블이 수정된 마지막 시점
- VERSIONS_OPERATION : 해당 VERSION에서 수행된 작업
- SCN : SYSTEM CHANGE NUMBER
-> DB 자체의 시계
-> OS LEVEL의 시간을 보는 것이 아님
-> 데이터가 수정된 내부적인 시간
- MINVALUE : 가장 오래된 데이터
- MAXVALUE : 가장 최근 데이터
예)
->
-- 조회 작업
-- empl 이라는 테이블이 수정되는 모든 시점을 확인
SELECT
VERSIONS_STARTTIME,
VERSIONS_ENDTIME,
VERSIONS_STARTSCN,
VERSIONS_ENDSCN,
VERSIONS_OPERATION,
E.*
FROM empl
VERSIONS BETWEEN SCN MINVALUE
AND MAXVALUE E ;
4. FLASHBACK TABLE : 실수로 데이터를 수정되기 이전에 Undo데이터로 돌아가는 작업
- ALTER TABLE table ENABLE ROW MOVEMENT;
- 작업을 먼저 확성화 시켜야 함
- 테이블의 메모리 위치를 수정할 수 있도록 만들어 줌
- FLASHBACK TABLE table TO SCN (scn_number);
- table를 scn_number의 시점으로 되돌림
예)
->
ALTER TABLE empl ENABLE ROW MOVEMENT;
FLASHBACK TABLE empl TO SCN 719742;
-- 테이블 자체를 719742시점의 테이블로 되돌리는 작업
5. FLASHBACK DROP : 일반 파일을 휴지통으로 보내서 임시삭제를 시키는 것과 같은 작업
- SELECT * FROM USER_RECYCLEBIN;
- 테이블 휴지통을 조회하는 방법
- FLASHBACK TABLE table TO BEFORE DROP;
- table이라는 테이블이 휴지통 목록에 있을 때 다시 살리는 작업
예)
->
-- 삭제한 테이블이 휴지통에 저장 되어있는지 확인
SELECT * FROM USER_RECYCLEBIN;
-- 삭제한 테이블을 다시 살리는 작업
FLASHBACK TABLE empl TO BEFORE DROP;
'Database - Oracle DB > 2주차(Database - Oracle DB)' 카테고리의 다른 글
[SQL] DB 스터디 - 16 (0) | 2019.01.10 |
---|---|
[SQL] Advanced SQL - TOP-n 질의 활용 (0) | 2019.01.09 |
[SQL] DB 스터디 - 15 (0) | 2019.01.09 |
[SQL] DB 스터디 - 14 (0) | 2019.01.09 |
[SQL] DB 스터디 - 13 (0) | 2019.01.09 |