오라클 되돌리기

기록·2022년 5월 13일
0

update문을 쳤는데 commit을 하고 나서야
where 조건이 빠진 채 전체 데이터가 update 된 걸 발견했다.

찾아보니 timestamp를 이용해서 되돌릴 수 있다고 해서 실행했다.

select *
from AA
as of timestamp(systimestamp - interval '20' minute);

이 쿼리로 20분 전의 AA 테이블 데이터를 조회했더니 update 하기 전의 데이터가 있었다.

create table bak_AA
as
select *
from AA
as of timestamp(systimestamp - interval '20' minute);

bak_AA 테이블을 생성하며 20분 전의 데이터를 넣었다.

alter table AA rename to bak_AA_2022;
alter table bak_AA rename to AA;

잘못된 데이터가 있는 AA테이블을 bak_AA_2022라고 테이블명을 바꾸고,
20분 전의 데이터가 있는 bak_AA 테이블을 AA 테이블로 이름을 변경했다.

select *
from AA;

AA테이블을 조회하니 정상적으로 데이터가 되돌려진 것을 확인했다.

그리고,

drop table bak_AA_2022;

임시로 만든 테이블은 삭제했다!

항상 commit하기 전에 데이터가 잘 들어왔는지 확인하는 습관을 가져야겠다!!ㅠㅠ
그럼 rollback으로 바로 되돌릴 수 있으니!

0개의 댓글