개발자세상/Database관련
Oracle에서 Datafile 사용량 체크
headiron
2009. 3. 4. 14:06
이번에 본사 Database를 dump 받아 서 import 시키는 중에 자꾸 size 오류가 나서
file 사용량을 보고 싶으나.... Toad가 없는 관계로 query를 인터넷으로 찾아 보니
아래와 같이 나온다.
SELECT b.file_name "FILE_NAME", -- DataFile Name
b.tablespace_name "TABLESPACE_NAME", -- TableSpace Name
b.bytes / 1024 / 1024 "TOTAL SIZE(MB)", -- 총 Bytes
((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024 "USED(MB)", -- 사용한 용량
(sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)", -- 남은 용량
(sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %", -- 남은 %
round((b.bytes / 1024 / 1024) - ((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)) ForFree,
'alter database datafile '''||b.file_name||''' resize '||round((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)||'M;' str
FROM DBA_FREE_SPACE a, DBA_DATA_FILES b
WHERE a.file_id(+) = b.file_id
AND (b.tablespace_name like 'CSR%' or b.tablespace_name like 'IRIS%') -- CSR이나 IRIS만 선택
GROUP BY b.tablespace_name, b.file_name, b.bytes
ORDER BY b.tablespace_name;
그동안 Oracle을 4년 넘게 사용 안하다 보니 다 까먹은 것 같다.-.-
흠.. 이번에 DBGuide 교육 당첨되서 다시 한번 좀 써 봤으면 좋겠는데..^^
file 사용량을 보고 싶으나.... Toad가 없는 관계로 query를 인터넷으로 찾아 보니
아래와 같이 나온다.
SELECT b.file_name "FILE_NAME", -- DataFile Name
b.tablespace_name "TABLESPACE_NAME", -- TableSpace Name
b.bytes / 1024 / 1024 "TOTAL SIZE(MB)", -- 총 Bytes
((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024 "USED(MB)", -- 사용한 용량
(sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)", -- 남은 용량
(sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %", -- 남은 %
round((b.bytes / 1024 / 1024) - ((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)) ForFree,
'alter database datafile '''||b.file_name||''' resize '||round((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)||'M;' str
FROM DBA_FREE_SPACE a, DBA_DATA_FILES b
WHERE a.file_id(+) = b.file_id
AND (b.tablespace_name like 'CSR%' or b.tablespace_name like 'IRIS%') -- CSR이나 IRIS만 선택
GROUP BY b.tablespace_name, b.file_name, b.bytes
ORDER BY b.tablespace_name;
그동안 Oracle을 4년 넘게 사용 안하다 보니 다 까먹은 것 같다.-.-
흠.. 이번에 DBGuide 교육 당첨되서 다시 한번 좀 써 봤으면 좋겠는데..^^