- HOME
- Post in | ORACLE/Operation & Admin
- Post at | 2018. 10. 18. 15:01 | by Rasta Lion.
- View comment
Datafile Resize 계산하기
- maxshrink.sql -
set verify off
column file_name format a50 word_wrapped
column smallest format 999,990 heading ""Smallest|Size|Poss.""
column currsize format 999,990 heading ""Current|Size""
column savings format 999,990 heading ""Poss.|Savings""
break on report
compute sum of savings on report
column value new_val blksize
select value from v$parameter where name = 'db_block_size'
/
select file_name,
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
ceil( blocks*&&blksize/1024/1024) currsize,
ceil( blocks*&&blksize/1024/1024) -
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
from dba_data_files a,
( select file_id, max(block_id+blocks-1) hwm
from dba_extents
group by file_id ) b
where a.file_id = b.file_id(+)
/
column cmd format a75 word_wrapped
select 'alter database datafile '''||file_name||''' resize ' ||
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) || 'm;' cmd
from dba_data_files a,
( select file_id, max(block_id+blocks-1) hwm
from dba_extents
group by file_id ) b
where a.file_id = b.file_id(+)
and ceil( blocks*&&blksize/1024/1024) -
ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0
/
테이블 스페이스에 공간이 부족해서 여유공간을 확보하려고 테이블에 데이터를 지우고 축소를 하려면?
해당 Tablespace가 automatic segment management 가 되어있어야 하고
해당 Table은 row movement가 enable 되어있어야 합니다
되어있다면
SQL> alter table [table_name] shrink space;
SQL> alter table [table_name] shrink space cascade;
Shrink 작업으로 HWM를 당긴 다음에 Resize 작업을 진행해야 합니다.
Shrink는 온라인 상태에서 가능하나 시간이 오래 걸리고,
HWM 당길 테이블들을 기존에 담고 있는 Tablespace로 Move 명령을 하면 Reorg 작업이 가능합니다.
단, Tablespace를 offline 상태에서 해야합니다.
'ORACLE > Operation & Admin' 카테고리의 다른 글
CURSOR_SHARING (0) | 2018.10.31 |
---|---|
ASM 용량 확인 (0) | 2018.10.28 |
Datafile Resize 계산하기 (0) | 2018.10.18 |
Listener password (0) | 2018.10.14 |
CBO 와 바인드 변수, 바인드 피크 (0) | 2018.05.17 |
Oracle 8i Startup, shutdown (0) | 2018.04.09 |