오라클 테이블 스페이스 생성 =============================================================
*테이블 스페이스 생성
create tablespace [tspace1]
datafile ['c:\oracle_space\tspace1.dbf'] size [10M];
*옵션지정 테이블 스페이스 생성
create tablespace [tspace1]
datafile ['c:\oracle_space\tspace1.dbf'] size [10M]
default storage(
initial [2M] // <- extent(table)생성시 초기값지정
next [1M] // <- 추가값지정
minextents [1] // <- extent는 최소 1개 있어야 한다.
maxextents [121] // <- next extent는 최대 121회 요청가능하다.
pctincrease [0] // <- 매요청시마다 next로 활당할 퍼센트를 지정한다. 50이면 절반씩..(500k->250k->125k....)
);
*테이블 스페이스 제거/옵션
drop tablespace [tspace1]
including contents // <- 스페이스에 세크먼트들이나 등등이 있으면 같이 제거하는 옵션
cascade constraints // <- 다른 스페이스에서 참조되는 내용이 있더라도 그냥 제거하는 옵션
** 테이블스페이스를 드랍해도 물리적은 파일은 제거되지 않으므로 os측에서 제거해야한다.
*테이블스페이스를 선택하여 테이블생성
create table test
(a char(1))
tablespace tspace1 // <- 테이블스페이스 지정
오라클 테이블 스페이스관리 --------------------------------------------------------------
* Temporay Tabelspace
모든 Sort Operation을 위해 필요한 tablespace이다
영구적인 Object를 포함할 수 없다.
Syntax-
create tablespace [이름]
default storage [경로/파일명.dbf size 00M]
permanent - 영구적인 Object를 보유하도록 지정(default)
temporary - 임시 Object를 보유하도록 지정
예컨대, Order by 절 등을 처리하기 위해 암시적 정렬에 사용되는 Segment
테이블스페이스 생성시 temporary 키워드를 사용해 생성한다.
V$SORT_SEGMENT에 sort segment에 대한 공간 활당과 해제에 대한 정보를 볼 수 있다.
- 읽기 전용 으로 변경
alter tablespace [이름] read only;
- 일기 쓰기용으로 변경
alter tablespace [이름] read write;
v$DATAFILE 뷰는 DATA FILE 상태를 보여준다.
* 데이타 파일 크기 조정
-- data file 자동 size 조정
alter tablespace [이름]
add datafile ['경로/파일명.dbf'] size [00M] // <- 추가
autoextend on // <- 자동
next [0M] // <- 증가치
maxsize [000M]; // <- 최대치( 꼭 지정하여 사용하는것이 좋음 OS측면에서 제한이 있음 )
-- data file 수동 size 조정
alter database datafile ['경로/파일명.dbf'] resize [000M];
* 테이블스페이스와 관련된 딕셔너리
dba_tablespaces - 모든 테이블스페이스의 스토리지 정보 및 상태 정보를 갖고있다.
dba_data_files - 테이블스페이스를 구성하고 있는 각 데이타파일의 정보를 갖고있다.
dba_free_space - 테이블스페이스공간 사용에 관한 정보를 갖고있다.
dba_free_space_coalesce - 테이블스페이스의 수집 가능한 Extent에 대한 통계 정보를 갖고있다.
select tablespace_name, initial_extent,next_extent,min_extents,max_extents,pct_increase,status,contents from dba_tablespaces;
select tablespace_name, file_name, file_id, bytes, blocks, status, autoextensible from dba_data_files order by 1, 2;
select * from dba_free_space order by file_id, block_id;
select tablespace_name, total_extents,extents_coalesced,percent_extents_coalesced from dba_free_space_coalesced;
*****테이블스페이스 총 크기,사용량,남은 공간조회하는 쿼리문
select a.tablespace_name, round(sum(a.total)/1024/1024, 2) "Total(M)",
round((sum(a.total) - sum(nvl(b.free,0)))/1024/1024, 2) "Used(M)",
round(sum(nvl(b.free,0))/1024/1024,2) "Free(M)",
round((sum(a.total) - sum(nvl(b.free, 0))) / sum(a.total) * 100,2) "Used(%)"
from (select d.tablespace_name, d.file_id, sum(d.bytes) total from dba_data_files d
group by d.tablespace_name, d.file_id) a,
(select f.file_id, sum(f.bytes) free from dba_free_space f
group by f.file_id) b
where a.file_id = b.file_id(+)
group by a.tablespace_name;
*****
*테이블스페이스 공간 수집 (디스크 조각 모음)
alter tablespace [이름] coalesce;
'프로그래밍 > Oracle' 카테고리의 다른 글
오라클 사용자 생성/비번관리 (0) | 2012.01.02 |
---|---|
오라클 시스템/객체 권한 및 룰 (0) | 2012.01.02 |
오라클 인덱스 종류 및 활용 (0) | 2012.01.02 |
오라클 원격 데이터베이스 액세스 (0) | 2012.01.02 |
오라클 Export (익스포트), Import (임포트) (0) | 2012.01.02 |