Study/SQL.

[Oracle] 최근 변경 데이터 조회(Timestamp)

의미없는 시간은 없다. 2024. 1. 17. 16:34

- 오라클 운영시에 실수로 데이터를 삭제,업데이트 하는 경우에 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)

반응형