Tip
2010.04.19 23:12

DATAFILE SIZE 줄이는 계산

조회 수 13475 추천 수 0 댓글 1

DATAFILE SIZE를 줄이는 방법
=====================

 

PURPOSE
-------


Explanation
-----------
기존의 datafile을 resize하여 늘리거나 줄일 수 있습니다.
datafile size를 증가하는 경우는 disk에 free space만 있다면 다음과 같이 간단합니다.
다음과 같이 늘리면 되나 줄일 경우는 계산을 하여 줄여야 합니다.

<Bulletin No: 10165> 참고

SQL>alter database datafile   '/oracle/dbs/toolsORA.dbf' resize 100M;


줄이실 경우는 주의가 필요합니다. 만일 지정한 size만큼 data가 있다면
error가 발생되고 resize되지 않습니다.

SQL> alter database datafile   '/oracle/dbs/toolsORA.dbf' resize 100M;
alter database datafile   '/oracle/dbs/toolsORA.dbf' resize 100M'
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value


방법1
-------

1) 줄이고자하는 file id를 확인합니다.

SVRMGR> select file_id, file_name from dba_data_files;

2) 얼마를 사용했는지 확인합니다.

SVRMGR> select block_id, blocks from dba_extents
     2> where file_id='FILE_ID' order by block_id;

FILE_ID 대신에 줄이려는 file id를 기술합니다.

3)현재 사용중이 db block size를 확인합니다.

SVRMGR> show parameter db_block_size

만일 2048일 경우 다음과 같이 계산합니다.

2)에서 조회된 마지막의 block_id, blocks 값을 가지고 계산합니다.
block_id * 2048 + blocks * 2048 의 결과에 한 block더한 값만큼만 줄이는
것이 가능합니다.
만일 마지막으로 조회된 값이 block_id가 578261, blocks가 515일 경우
578261*2048 + 515*2048 =1185333248로 최소한 1.2GB이상은 써야 합니다.

4) 실제 datafile을 줄입니다.

svrmgr>alter database datafile   '/oracle/dbs/toolsORA.dbf' resize
1200M;


방법 2
-------

1) 기존의 data export
exp username/password file=filename owner=username log=username.log

2) tablespace drop

svrmgr>drop tablespace tbs including contents;
rm datafile

tbs대신에 작게 만드시려는 tablespace name을 기술합니다.
datafile대신에 tablespace와 연계된 모든 datafile을 remove합니다.

3) tablespace재생성
svrmgr>create tablespace tbs
             datafile '...' size 100M;
원하시는 size로 줄입니다.

4) data import
imp username/password file=filename fromuser=username touser=username
commit=y log=imp.log

Example
-------


Reference Documents

  • 유주환 2010.04.22 14:58

    실제 줄일 때 감으로 사이즈를 줄이는데 경우가 많은데 위 내용을 이용하면 유용하겠네요


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Q&A Oracle관련 게시물만 Sean 2014.04.09 84902
100 Tip 오라클 null값 정리 유주환 2010.04.18 29867
99 Tip sysaux resize 유주환 2010.04.18 25290
98 Tip Analyze 통계정보 dbkill 2010.04.11 13296
97 Tip Expdp/Impdp시 ORA-31633 에러 해결 방법 2 김준호 2010.04.20 22479
» Tip DATAFILE SIZE 줄이는 계산 1 고구마 2010.04.19 13475
95 Tip 세마포어에 대하여 고구마 2010.04.19 13230
94 Tip DML_DDL_로그기록_체크 유주환 2010.04.19 13417
93 Tip 통계 백업 및 생성 유주환 2010.04.18 16183
92 Tip shared pool / library cache 고구마 2010.04.28 25066
91 Tip DML 문의 처리과정 고구마 2010.04.28 17306
90 Tip Buffer Cahe 관련 대기 이벤트들 고구마 2010.04.28 25635
89 Tip Buffer busy waits 고구마 2010.04.28 19597
88 Tip 버퍼캐시와 OWI 1 고구마 2010.04.28 19873
87 Tip IDLE EVENT 유주환 2010.04.23 21499
86 Tip 권한주기 고구마 2010.04.23 15733
85 Tip 핫백업 디비올리기 유주환 2010.04.09 34980
84 Tip partiton table truncate 및 rebuild 작업 유주환 2010.04.09 10545
83 Tip How to Use DBMS_STATS to Move Statistics to a Different Database 고구마 2010.04.09 17064
82 Tip 10G FGA AUDIT 1 고구마 2010.04.09 23607
81 Tip EM 재구성 고구마 2010.04.09 26261
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8