본문 바로가기
개발

dbeaver auto commit 설정 해제하기 / 오라클 데이터 롤백하기

by 정보알려주는언니 2021. 4. 23.

나는 프로젝트에서 db tool이 지정되지 않은 경우에는 주로 dbeaver를 쓰는 편이다.

프로젝트 철수를 하고 다음 프로젝트에 투입을 하게되는데, 보통 PC를 포맷하고 철수하다 보니

모든 프로그램이 삭제된 상태로 다음 프로젝트에 투입된다.

 

이번에도 마찬가지로 신규 프로젝트 투입 후 dbeaver를 새로 설치하게 되었다.

지금 투입된 프로젝트에서 oracle을 사용 중인데, where 절을 빼먹고 update문을 날리는 초보적인 실수를 하게 되었다.

 

 

 

dbeaver auto commit 설정 변경


오라클 Database를 사용하는 경우

보통 auto commit이 비활성화되어있는 경우가 많으나,

사용하는 db툴에 따라 Auto commit이 default 활성화되어있을 수 있다.

 

내가 사용한다고 언급한 dbeaver의 경우 아래와 같이 확인 가능하다.

Auto-Commit : 자동 커밋 / SQL문 실행 시 즉시 커밋됨
Manual Commit : 수동 커밋 / SQL문 실행 후 commit 명령어 실행 후 커밋됨
Smart Commut mode : 데이터 수정 모드 시 수동모드, 조회 시 자동모드로 전환 (Smart모드는 아래 dbeaver 사이트의 자세한 설명을 참조하기 바란다)

DBEAVER 트랜잭션 모드

DBEAVER AUTO COMMIT 확인방법
DBeaver의 경우 위 경로를 통해 확인/수정 가능

 

 

 

 

 

ORACLE 데이터 롤백


 

 

조건을 빼먹고 DELETE 또는 UPDATE를 하게 되어 AUTO COMMIT 된 경우

데이터 복구를 하기 위해 아래와 같이 이전 데이터를 확인 가능하다.

 

 

SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '시간' MINUTE);

 

예를 들어 테이블명이 TEST이고, DELETE FROM TEST를 날려

3분 전 데이터 복구를 원하는 경우, 아래와 같이 사용할 수 있다.

 

INSERT INTO TEST SELECT * FROM TEST AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '3' MINUTE);

 

 

 

dbeaver는 트랜잭션 모드가 auto commit로 되어있기 때문에 최초 설치 시 변경을 해주는 것이 좋다.

oracle은 롤백이 가능하지만, mysql이나 mssql은 데이터 롤백 방법이 까다롭기 때문이다. 

 


댓글