본문 바로가기

SQL

create tablespace


create tablespace $DBName datafiles 'Path/datafile.dbf' size 10 M

- 주의

dbf 파일을 생성하기전에 해당 디렉토리는 직접 생성해줘야 함

 

- Table Space (논리적)
- system 또는 sys 계정에 연결되어 있어야 만들수 있다 => DBA계정(관리자계정)
- data file이 저장될수 있는 공간이다 (물리적)
 블록   (db의 최소단위)
 익스텐트  (공간할당의 기본개념)
 세그먼트  (TS에 저장되는 Object 단위)
 데이터 파일  (물리적공간)
 테이블스페이스 (논리적공간)
- MS-SQL에서의 DataBase같은 개념이다
- 계정단위이다

- table space 만들기 (확보)
 1. D폴더에 'oraDB17'폴더를 생성한다
 2. sqlplus -> /as sysdba 로 접속
 3. SQL>show user로 현재 관리자를 확인(sys인지 확인)
 4-1. Create tablespace [테이블명] Datafile '[경로\*.dbf]' size [숫자]m;
  예)SQL>create tablespace ts01 datafile 'd:\oraDB17\ts01Df01.dbf' size 2m;
 4-2. insa테이블스페이스의 insa.dbf로 oraDB17폴더에 초기 사이즈 500k 자동 500씩 증가 최고 10M 크기까지로 생성
  SQL> create tablespace insa
    datafile 'd:\oraDB17\insa.dbf' size 500k
    autoextend on next 500k maxsize 10M

- table space 수정
 1. Alter tablespace [테이블명] Add Datafile '[경로\*.dbf]' size [숫자]m;
  =>datafile을 하나 더 만든다
  예)SQL>alter tablespace ts01 add datafile 'd:\oraDB17\ts01Df02.dbf' size 2m;

- table space 삭제
 1. drop tablespace [테이블스페이스명]
  예)SQL>drop tablespace ts01;
  => 나머지 데이터파일들은 물리적으로 os상에서 지워야한다

 

 

create tablespace : 오라클 데이터베이스내에서 생성되고 처리될 테이블들의 레코들들이 실제로 존재할 영역을 디스크 상에 물리적으로 생성시키는 명령어이다.

 tablespace_name : 생성될 테이블 스페이스의 이름이다.

 datafile : 데이터베이스내에서 사용되는 레코드들이 실제로 디스크상에 파일로 존재하게 되는데, 이때의 파일의 위치와 이름을 지정하는 곳이다.

 data_file : 데이터베이스내에서 사용되는 레코드들이 실제로 디스크상에 파일로 존재하게 되는데, 이때의 파일의 위치와 이름을 지정하는 곳이다.

 data_full_file_name : 레코드들이 실제로 존재할 디렉토리(절대패스사용)와 파일의 이름이다.

 size : 테이블 스페이스내의 레코드들을 저장할 디스크상의 파일의 최대 코기를 지정해 줄 수 있다.

 datafilesize : 레코드들을 저장할 파일의 크기를 k(킬로바이트), M(메가바이트)의 단위를 사용하여 나타낼 수 있다.

 initial : 테이블 생성시 해당 테이블에 할당되어 있는 영역의 크기를 지정해 줄 수 있다.

 datafilesize_min : 테이블생성시 사용할 수 있는 공간의 크기로, 예를 들어 10m로 지정되면 생성된 임의의 테이블에 입력되는 데이터들을 10m의 영역에 저장한다는 의미이다.

 next : 처음에 저장될 데이터의 영역인 initial만큼을 다 쓰고 더 이상의 공간이 없을 때, 사용할 수 있는 영역을 할당 시켜 준다.

 datafilesize_max : 추가로 테이블에 데이터가 입력될 때, 사용할 수 있는 여역의 크기이다. 예를 들어 5M를 할당하여 두면, 임의의 테이블이 사용한 영역이 10M (위의 initial영역의 크기이다)를 넘을 경우, 주가로 5M만큼의 영역을 더 사용할 수 있게 된다. 따라서 총 사용공간은 15M가 된다.

 minextents minuum : next 영역으로 할당할 수 있는 최소의 갯수를지정해 줄 수 있다.

 maxextents maxnum : next 영역으로 할당할 수 있는 최대의 갯수를 지정해 줄 수 있다.

 picincrease num : next를 지정하여 추가로 사용할 영역을 확장하고자 할 때, 늘어날 영역의 크기를 '%'로 나타낸 값이다. pct는 '%'를 의미한다. 예를 들어 picincrease 5라고 지정해 두면, next로 추가로 작업할 영역을 늘여 줄때, 처음에는 next롤 설정된 영역만을 확장시켜 주나, 두 번째부터는 next영역의 크기에서 5%만큼 더 크게 확장시켜 주게 되는 것이다.

 online/offline : 테이블 스페이스 생성시 online이나 offline 중 택일하여 쓸 수 있으며, 생략하면 online을 의미한다.
online으로 설정하여 테이블 스페이스를 생성하면, 테이블스페이스를 생성함과 동시에 데이터베이스 사용자들이 사용가능하다는 것을 의미하며, 일반적으로 online으로 설정하여 사용한다.

 -- 테이블스페이스 정보 조회
select * from dba_data_files;
select * from dba_tablespaces;

-- 테이블스페이스생성
  create tablespace info_data
  datafile '/oracle/infodata/infodata.dbf'
  size 200m
  default storage(
     initial     80k
     next        80k
     minextents  1
     maxextents  121
     pctincrease 80
     )online;

-- 테이블스페이스 online / offline
 > alter tablespace tablespace_name offline;
 > alter tablespace tablespace_name online;

 -- 생성된 테이블 스페이스의 추가하기 공간 늘여주기
  alter tablespace info_data
  add datafile '/oracle/infodata/infodata/dbf'
  size 100m;

 -- 생성된 테이블 스페이스 크기 변경하기
  alter database datafile '/oracle/infodata/infodata.dbf'
  RESIZE 200M;

 -- 테이블스페이스 변경하기
  alter tablespace tax2110
  default storage(
     initial        1024k
     next           2048k
     minextents     1
     maxextents     5
    )online ;
  pctincrease 기본이 50%이다

 -- 테이블스페이스 자동확장 추가 (Automatic Extension)
  alter tablespace tax2110
  add datafile 'd:\tablespace\tax2110_03.dbf'
  size 50m
  autoextend on next 10m
  maxsize 100m;
  -> maxsize 를 지정할때 데이터 화일보다 크거나 같아야함.

 -- 기존테이블스페이스에 자동확장 변경하기
  alter database datafile 'd:\tablespace\tax2110_03.dbf'
  autoextend on next 10m
  maxsize 100m;

 -- 테이블스페이스 삭제
  drop tablespace tablespace_name
  including contents    --> 테이블스페이스의 모든 세그먼트를 삭제( 데이터가 있는 테이블스페이스는 삭제할수 없다)
  cascade constraints;  --> 삭제된 테이블스페이스 내의 테이블의 기본키와 유일키를 참조하는
         다른 테이블스페이스의 테이블로부터 참조무결성 제약 조건을 삭제합니다.
$ rm kit.dbf    -- Drop한 tablespace명의 Datafile이 kit.dbf일때.


 -- 테이블 스페이스 의 물리적파일까지 삭제하기
drop tablespace test_tbs including contents and datafiles;
 

-- 오프라인 테이블스페이스
  alter tablespace tax2110 offline;
 
-- 데이터베이스 사용자 아이디 생성 및 수정
  create user 사용자아이디
  identified by 비밀번호(새비밀번호)


-- 유저생성
create user panda
identified by panda123

default tablespace yswater_ts;


-- 생성한 유저에 권한주고 연결하기
grant resource,connect to panda;
grant dba to panda;

강신윤 홈피에서 퍼왔어요.

'SQL' 카테고리의 다른 글

페이징에 이용되는 ROWNUM  (0) 2009.12.21
DBlink 생성  (0) 2009.12.21
TRIGGER BASE -sample  (0) 2009.12.21
ORACLE 9i MS-SQL 함수 대체  (0) 2009.12.21
필드네임 검색으로 테이블 찾기  (0) 2009.12.21