tablespace 사이즈 줄이기 0 2 1,766

by 연금술사 [2014.04.30 15:30:27]


안녕하세요.
테이블스페이스의 용량이 커서 불필요한 데이타를 delete하여 사용량을 줄였는데 전체로 잡힌 용량을 줄이는데 실패를 하였습니다.

구글링을 해보니 링크(http://blog.naver.com/PostView.nhn?blogId=jangjinkyu09&logNo=130089800207)내용 따라 시도를 해보았습니다.
[방법 1]으로는 줄일수 있는 용량이 현재의 용량과 비슷하여 의미가 없었습니다.
[방법 2]으로 하려고 하는데 잘 이해가 안가 질문을 올립니다.

내용을 옮겨오면 아래와 같은데요.
[방법 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 

 

여기서 이해가 안가는 부분이 있습니다.

1.  1,4번을 보면 익스포트/임포트를 하는 부분에 테이블스페이스가 명시된 부분이 없고 유저만 있는데 무슨의미인가요?
2.  2번에서 테이블스페이스를 드롭하고 데이타 파일을까지 지우는데 무슨 이유인지?

DB는 사용만 하다 관리란걸 하게되었습니다.
그냥 "그런가보다 하고" 쓰기만 하다가 관리를 하려니 개념이 아직 부족합니다.
조언 부탁드립니다.

by 타락천사 [2014.04.30 18:03:18]

1. exp/imp 시, Script 내에 현재 위치한 Tablespace 정보가 존재 합니다.

2. drop tablesapce 후, 그 구성 그대로 다시 생성 하려는 의도로 보이네요.

10g 시면, shrink 도 한번 알아보세요

http://www.oracle-base.com/articles/10g/space-object-transaction-management-10g.php

 


by 이런잭쓴 [2014.05.07 14:54:58]

1번은 위분이 설명 드린데로고요 .

2번 drop tablespace tbs including contents; 라는 옵션을 사용하여 삭제시  O.S상에 테이블스페이스 데이터파일은 지워지지 않습니다.. 그렇기때문에 Drop문을 날려주신후 O;/S상에서 rm -f DDDD 명령어로 지워주셔야 하죠 .

 

export/import가 빠르긴 하지만.

11G시라면 별도의 임시 TBS 생성 후 테이블 또는 인덱스를 Move시킨후 tablespace rename하는것도 방법이 될수 있겠네요 .


 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입