본문 바로가기
DBMS/ORACLE

[oracle] 세션 비정상 종료 시 commit/rollback 테스트

by 드바 2024. 6. 27.
반응형

 

exit 등으로 정상 종료 시 commit
kill, 네트워크 단절 등으로 비정상 종료 시 rollback

 

세션 정상 종료

SQL> CREATE TABLE sk.tab1 (c1 NUMBER) ;
Table created.

SQL> INSERT INTO sk.tab1 VALUES(1) ;
1 row created.

SQL> select * from sk.tab1 ;

	C1
----------
	 1

-- 정상 종료
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

-- 신규 접속
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

-- 정상 종료 데이터 commit 되어 반영되어있음
SQL> select * from sk.tab1 ;

	C1
----------
	 1

 

세션 비정상 종료

SQL> INSERT INTO sk.tab1 VALUES(2) ;

1 row created.

SQL> select * from sk.tab1 ;

	C1
----------
	 1
	 2


-- kill session 으로 비정상 종료
SQL> select * from sk.tab1 ;
select * from sk.tab1
*
ERROR at line 1:
ORA-12571: TNS:packet writer failure


-- 신규 접속
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

-- 비정상 종료 데이터 rollback 되어 안보임
SQL> select * from sk.tab1 ;

	C1
----------
	 1

SQL>

 

동일 세션에서 DML -> DDL 작업 진행

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from sk.tab1 ;

	C1
----------
	 1

SQL> INSERT INTO sk.tab1 VALUES(3) ;

1 row created.

SQL> select * from sk.tab1 ;

	C1
----------
	 1
	 3

-- 컬럼 추가
SQL> alter table sk.tab1 add (c2 number) ;

Table altered.

SQL> select * from sk.tab1 ;

	C1	   C2
---------- ----------
	 1
	 3

SQL> 


--# 신규 세션에서 조회
-- DDL은 auto commit 이므로 이전 DML문까지 DB 반영됨
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from sk.tab1 ;

	C1	   C2
---------- ----------
	 1
	 3

SQL>
반응형

댓글