반응형
-- 1분전 데이터 개수
select count(*) from 테이블명 as of timestamp(systimestamp - interval '1' MINUTE );
-- 1시간전 데이터 개수
select count(*) from 테이블명 as of timestamp(systimestamp - interval '1' HOUR );
-- 1일 이전의 해당 테이블의 데이터 조회
select * from 테이블명 as of timestamp (SYSTIMESTAMP - INTERVAL '1' DAY);
-- 예를 들어, 현재 189 라는 코드의 데이터가 날아갔다면,
insert into 테이블명
select * from 테이블명 as of timestamp(systimestamp - interval '1' MINUTE )
WHERE 코드칼럼='189';
-- 두번째 방법 이 방법은 완전한 되돌리기이므로, 그사이에 새로운 데이터가 나타났다면
-- 그 시간 사이에 새로운 데이터들이 삭제된다.
-- 예시, 2분전 데이터로 되돌린다.
FLASHBACK TABLE 테이블명 TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' MINUTE);
* 상황에 따라, insert로 복구할지, update로 복구할지, flashback 명령어를 사용할지 선택.
* 이 부분은 ORACLE 설정에서 FlashBack 옵션이 켜져있어야 한다.
(9i 버전 이후 사용가능이 가능하다.)
'Database' 카테고리의 다른 글
[MySQL/mariaDB] 구분자로 잘라서 행으로 반환하자. (feat. json_table()) (1) | 2022.05.20 |
---|---|
ORACLE connection leak 체크 쿼리 (0) | 2021.12.31 |
ORACLE 테이블 명세 쿼리 (0) | 2021.12.31 |
MySQL 명세서 출력 쿼리 (0) | 2021.12.30 |
MySQL 서브쿼리 subquery 성능이슈 (0) | 2021.12.30 |
댓글