Database - Oracle DB/2주차(Database - Oracle DB)

[SQL] DB 스터디 - 17

김야키 2019. 1. 10. 13:57


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