2016년 1월 24일 일요일

[oracle]commit,rollback

트랜잭션이란 :  sql을 실행하여 데이터베이스를 변경 추가 삭제 하는 작업의 논리적 단위

오라클 rdbms 는 일정 시간을 두고 명시적으로 commit 또는 rollback 명령어를 실행하지 않을 경우 일정시간마다 실제 데이터 베이스의 데이터를  트랜잭션 인스턴스에 가져와 사용자의 sql 명령어를 트랜잭션 인스턴스에서 실행하게 된다. 설정된 commit 시간이 되면
실제 데이터에 변경된 데이터를 반영하고 트랜젹센 인스턴를 초기화하고 데이터를 새로 가져오게 된다.

이때, commit 문과 rollback 명령어를 이용하여 트랜잭션 인스턴스에서 실행된 sql 결과를
실제 디비에 반영하거나 트랜잭션 인스턴스에 sql 결과를 되돌리는 등으 제어를 할수 있다.

commit : 트랜잭션 인스턴스 초기화 시점부터 현재까지 실행된 sql 결과를 실제 데이터 베이스에 반영하고 다시 트랜잭션 인스턴스를 초기화 한다.

rollback : 트랜잭션 인스턴스를 초기화 한다.(데이터복구)


rollback 문은 savepoint 로 sql 지점으로 부분 복구가 가능하다.

sql
..
..
..

1번구간

savepoint p1;

sql

..
...
..
..


rollback to p1;

위 sql 문을 예로 들면 트랜잭션 인스턴스의 데이터는 1번구간으로 시점 데이터로 복원된다.



sqlPlus 나 sqlDeveloper 사용시 정산 종료 하면 자동으로 commit 하여 데이터를 보관하지만 정전이나 기타 오류로 인해 비정상적으로 프로그램이 종료될시 인스턴스가 초기화된 시점 즉, 마지막 commit 구간으로 데이터가 rollback 된다.





댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1