오라클에서 Temporary file은 메모리에서 완료할 수 없는 대량의 정렬작업등이 발생 했을 때에, 임시적으로 사용되는 디스크 공간이다. temporary tablespace상에만 tempfile을 사용 가능하며, temporary tablespace에는 global temporary table을 생성해줄 수도 있고, 대량의 정렬 작업이나, 출력값이 메모리 안에 다 들어가지 않을 경우등에 임시로 사용된다.

템프 파일에 저장되는 내용들은 복구에 사용할 필요가 없다는 의미가 되므로, 기본적으로 이에 대한 리두 로그는 발생되지 않는다.

만약 운영체제에서 지원된다면, 템프파일은 처음 생성시에 실제로 공간이 사용되지는 않는다.

 

sys@CATDB> !df
Filesystem           1K-blocks      Used Available Use% Mounted ON
/dev/mapper/VolGroup00-LogVol00
                      19172036  12216852   5965592  68% /
/dev/sda1               101086     12620     83247  14% /boot
tmpfs                   255104         0    255104   0% /dev/shm

sys@CATDB> !ls -l /home/oracle/datafile/catdb
합계 2290248
-rw-r----- 1 oracle dba 314580992  1월 20 09:04 catalog01.dbf
-rw-r----- 1 oracle dba   7061504  1월 20 11:39 control01.ctl
-rw-r----- 1 oracle dba   7061504  1월 20 11:39 control02.ctl
-rw-r----- 1 oracle dba   7061504  1월 20 11:39 control03.ctl
-rw-r----- 1 oracle dba  52429312  1월 20 11:39 redo01.log
-rw-r----- 1 oracle dba  52429312  1월 20 09:03 redo02.log
-rw-r----- 1 oracle dba  52429312  1월 20 09:04 redo03.log
-rw-r----- 1 oracle dba 429924352  1월 20 11:37 sysaux01.dbf
-rw-r----- 1 oracle dba 429924352  1월 20 11:37 system01.dbf
-rw-r----- 1 oracle dba  99622912  1월 20 09:31 temp01.dbf
-rw-r----- 1 oracle dba 330309632  1월 20 11:37 undotbs01.dbf
-rw-r----- 1 oracle dba 560996352  1월 20 09:04 users01.dbf

-- df 명령을 통해 확인되는 여유 공간은 5,965,592KB, 
-- ls 명령을 통해 확인되는 해당 디렉토리 사용량은 2,290,248KB이다.

sys@CATDB> CREATE TEMPORARY TABLESPACE temptemp tempfile '/home/oracle/datafile/catdb/temptemp01.dbf' SIZE 10000m;

TABLESPACE created.

-- 약 10GB 짜리 템프파일을 추가한다.

sys@CATDB> !ls -l /home/oracle/datafile/catdb                                                                      
합계 2290324
-rw-r----- 1 oracle dba   314580992  1월 20 09:04 catalog01.dbf
-rw-r----- 1 oracle dba     7061504  1월 20 11:40 control01.ctl
-rw-r----- 1 oracle dba     7061504  1월 20 11:40 control02.ctl
-rw-r----- 1 oracle dba     7061504  1월 20 11:40 control03.ctl
-rw-r----- 1 oracle dba    52429312  1월 20 11:40 redo01.log
-rw-r----- 1 oracle dba    52429312  1월 20 09:03 redo02.log
-rw-r----- 1 oracle dba    52429312  1월 20 09:04 redo03.log
-rw-r----- 1 oracle dba   429924352  1월 20 11:37 sysaux01.dbf
-rw-r----- 1 oracle dba   429924352  1월 20 11:37 system01.dbf
-rw-r----- 1 oracle dba    99622912  1월 20 09:31 temp01.dbf
-rw-r----- 1 oracle dba 10485768192  1월 20 11:40 temptemp01.dbf
-rw-r----- 1 oracle dba   330309632  1월 20 11:37 undotbs01.dbf
-rw-r----- 1 oracle dba   560996352  1월 20 09:04 users01.dbf

sys@CATDB> !df
Filesystem           1K-blocks      Used Available Use% Mounted ON
/dev/mapper/VolGroup00-LogVol00
                      19172036  12216928   5965516  68% /
/dev/sda1               101086     12620     83247  14% /boot
tmpfs                   255104         0    255104   0% /dev/shm

-- ls 명령을 통해 확인되는 해당 템프파일의 사이즈는 약 10GB이지만, 해당 디렉토리의 사용량은 76KB 증가했다. 
-- df 명령을 통해 확인되는 디스크 여유 공간도 76KB 줄어든 5,965,516KB이다.

 

위와 같은 상황에서 템프파일이 사용되는 작업이 생기면 실제 사용량에 따라서 최대 10GB까지 증가하게 된다. 단, 디스크 여유공간은 6GB에도 못미치고 있기 때문에 실제로는 디스크 공간 부족이라는 문제가 더 먼저 발생하게 된다. 또한 디스크 공간 부족으로 인해 부가적인 문제가 발생하게 될 수도 있으므로, 가능하다면 cp --sparse=never 혹은 dd 명령어 등을 통해서, 템프 파일이 사용하게될 공간을 미리 확보해두는 것이 좋을 수도 있다.

레이블 (0)

  • 레이블 없음

0 댓글

로그인 상태가 아닙니다. 변경하는 경우 익명으로 표기됩니다. 이미 계정이 있다면 로그인을 원하실 수 있습니다.

첨부 파일  (0)

첨부 파일 추가하기
공유된 파일이 아직 없습니다.