개요
DBA_DATA_FILES 뷰를 확인하여 UNDO TABLESPACE의 사용량이 100%에 가깝게 집계된 경우, 실제로 확장이 필요한 상황인지 파악하기 어려울 때가 있습니다.
이는 UNDO 세그먼트는 사용 후 즉시 반환이 되는 것이 아니라, EXPIRE 처리된 후에도 재사용 시 기존에 EXPIRED된 세그먼트를 재할당하는 원리로 동작하기 때문입니다.
따라서 UNDO TABLESPACE의 실제 사용 현황을 정확히 파악하려면 다른 뷰를 통해 조회해야 합니다.
방법
FREE SIZE 조회 방법
UNDO RETENTION 기간이 충분히 지났을 경우 아래와 같이 FREE SIZE가 조회됩니다.
select ts_name as "TABLESPACE_NAME",
ROUND(total_size/1024/1024,2) as "TOTAL_SIZE(MB)",
ROUND((total_size - free_size) / 1024/1024 ,2)as "USED_SIZE(MB)",
ROUND(free_size/1024/1024,2) as "FREE_SIZE(MB)",
ROUND(( free_size / total_size) * 100,2) as "FREE_SIZE(%)"
from v$undo_free_space;
SQL
복사
•
V$UNDO_FREE_SPACE
TABLESPACE_NAME TOTAL_SIZE(MB) USED_SIZE(MB) FREE_SIZE(MB) FREE_SIZE(%)
UNDO 1024 44.12 979.88 95.69
SQL
복사
•
DBA_DATA_FILES
이 뷰에서는 사용량이 99.99로 집계되어 혼란을 줄 수 있습니다.
Tablespace Infomation
Tablespace Name Bytes(MB) Used(MB) Percent(%) Free(MB) Free(%) MaxBytes(MB) MAX_Free(%)
UNDO 1,024 1,024 99.99 0 .01 1,024 .01
SYSSUB 26 25 95.67 1 4.33 32,768 99.92
SYSTEM 116 104 89.44 12 10.56 32,768 99.68
USR 292 171 58.39 122 41.61 32,768 99.48
SQL
복사