SQL> show parameter undo_retention
NAME TYPE VALUE
------------------------------------ ----------- --------
undo_retention integer 900
SQL> create undo tablespace undo_big datafile size 1m
2 autoextend on next 1m maxsize 2048M ;
테이블스페이스가 생성되었습니다.
SQL>
SQL> create undo tablespace undo_small datafile size 1m
2 autoextend off ;
테이블스페이스가 생성되었습니다.
SQL>
SQL> show parameter undo_retention
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_retention integer 900
SQL>
SQL> alter system set undo_tablespace=undo_big scope=memory;
시스템이 변경되었습니다.
SQL> create table t ( x char(2000), y char(2000), z char(2000));
테이블이 생성되었습니다.
SQL> insert into t values ( 'x','x','x');
1 개의 행이 만들어졌습니다.
SQL> begin
2 from i in 1 .. 500
3 lop
4 update t set x=i, y=i, z=i;
5 commit;
6 end loop;
7 end;
8 /
from i in 1 .. 500
SQL> begin
2 for i in 1 .. 500
3 loop
4 update t set x=i, y=i,z=i;
5 commit;
6 end loop;
7 end;
8 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select bytes, maxbytes
2 from dba_data_files
3 where tablespace_name='UNDO_BIG';
BYTES MAXBYTES
---------- ----------
5242880 2147483648
결론. 오라클은 Undo 데이터 파일을 확장하지 않았지만(확장하도록 허용되지 않았지만),
그렇다고 트잰잭션이 수행되지 않은 것도 아니다.
오히려 오라클은 전혀 롤백이 필요 없는 언두 정보를 사전에 말료시켰다.
CREATE UNDO TABLESPACE UNDO_NEW DATAFILE SIZE
ALTER SYSTEM SET UNDO_TABLESPACE=UNDO_NEW SCOPE=BOTH
DROP TABLESPACE OLD_UNDO TABLESPACE
- 강좌 URL : http://www.gurubee.net/lecture/3477
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.