- 오라클 운영시에 실수로 데이터를 삭제,업데이트 하는 경우에 commit을 하면 데이터 복구가 힘들 수 있다.
이 때, 좋은 기능을 소개하려고 한다.
- Oracle 9i부터 지원하고, 운영하는 DB의 최대 백업 시간 설정에 따라 그시간 까지 복구가 가능하다.
- 학교에서 일할때는 91시간까지 설정이 되어있었는데 현회사는 72시간정도인듯..?
- 이 이상 지난 데이터에 대해서 복구를하려면 오라클업체를 불러서 큰금액을 지출하고 복구를 해야한다..
- 그래서 회사 이직때 처음하는게 timestamp와 테이블 찾기편한 select * from all_tab_columns부터 실행해본다..
-- 10초전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' SECOND)
WHERE 컬럼 = 'A'; -- 조건문 사용 가능
-- 10분전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
-- 5시간전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '5' HOUR)
-- 3일전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' DAY)
-- 특정시간 기준으로 데이터 조회
SELECT * FROM USER_TB AS OF TIMESTAMP(TO_DATE('20230317 11:30:00', 'YYYYMMDD HH24:MI:SS'));
--현재 데이터와 10분전 데이터 비교
SELECT * FROM STUDENT where NAME = '학생명'
UNION ALL
SELECT * FROM STUDENT AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where NAME = '학생명';
ddd
- 여기에서 나름 꿀팁이라면 insert, update , delete하기 전에 복제 테이블을 호다닥 만들수 있는 방법을 추천한다.
Create table '백업된테이블명' as select * from '백업할테이블명;
을 하면 1초만에 백업테이블을 만들수 있고, DB 변환한다음 다시 덮어주면 된다.
#Timestamp Lib\/E: Musings of an Introverted Black Boy,#Timestamp, data Value, and Quality,#Timestamp: Musings of an Introverted Black Boy,#Timestamps and Timepieces,#time stamp,#Time Stamp Counter,#Time Stamp Disable,#Time Stamp Order,#Time Stamp Protocol,#Time Stamping Authority,#타임스탬프 어플,#오라클 timestamp,#timestamp,#t i m e s t a m p s nostalgaia,#timestamp 변환,#timestampdiff,#timestamp to string,#timestamp converter,#timestamp 오라클,#timestamp to localdatetime,#timestamp datetime 차이,#timestamp 형식,#timestamp란,#timestamp format,#timestamp 현재시간,#timestamp without time zone,#timestamp milliseconds,#timestamp with time zone,#timestamp(6)
'Study > SQL.' 카테고리의 다른 글
[Oracle]여러로우 한줄로 붙이기(LISTAGG) (0) | 2024.01.22 |
---|---|
[Oracle] 최근 삭제한 테이블 복구(FLASHBACK) (0) | 2024.01.17 |
프로그래머스 SQL Lv.1 최댓값 구하기 (0) | 2022.07.11 |
프로그래머스 SQL Lv.1모든레코드 조회하기 (0) | 2022.07.11 |
Oracle DB, MySql 구문차이 (0) | 2021.09.08 |