티스토리 뷰

ORACLE/ADMIN

Oracle Tablespace 테이블스페이스 생성

공부하는알파카 2020. 7. 18. 23:20

오라클 데이터 구조

 

 

 

 

 

테이블스페이스 생성 명령어

PERMANENT TABLESPACE 

permanent object를 저장하는 일반적인 테이블스페이스

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLESPACE [ tablespace ] 
 
DATAFILE [ 테이블스페이스 저장 경로 SIZE  integer [ M | K ] ]
 
EXTENT MANAGEMENT LOCAL [ AUTOALLOCATE | 
 
UNIFORM SIZE integer [M|K] ] --extent 크기 결정(자동 or 고정)
 
[ SEGMENT SPACE MANAGEMENT AUTO ] -- segment 공간 자동 관리 설정
 
[ LOGGING | NOLOGGING ]; -- log를 남길지 안남길지 선택

 

TEMPORARY TABLESPACE 

임시로 data를 저장하는데 사용하는 임시 테이블스페이스

1
2
3
4
5
CREATE TEMPORARY TABLESPACE [ tablespace ] 
 
TEMPFILE [ 테이블스페이스 저장 경로...
 
-- 나머지는 일반 테이블스페이스 옵션과 같음

 

UNDO TABLESPACE 

ROLLBACK을 위한 UNDO 테이블스페이스

1
2
3
4
5
CREATE UNDO TABLESPACE [ tablespace ] 
 
DATAFILE [ 테이블스페이스 저장 경로 ...
 
-- 나머지는 일반 테이블스페이스 옵션과 같음

 

 

 

 

 

 

테이블스페이스 옵션

BIGFILE/SMALLFILE

•  SMALLFILE tablespace(default)

- datafile 여러 개 가질 수 있음

- 파일 하나 당 4백만개 블럭까지 가능(테이블스페이스 하나 당 1022개)

 

•  BIGFILE tablespace

- datafile 1개만 설정 가능(하나의 큰 datafile만 설정 가능)

- Tera Byte 단위 이상으로 지정할 경우, 파일 하나 당 40억개 블럭까지 가능

→ ASM 환경에서 유용(하나의 데이터파일에 diskgroup 생성하여 분산 저장)

 

 

 

Extent management dictionary/local

•  Dictionary

어디가 비어있고 사용되고 있는지를 딕셔너리 뷰에 저장하고 업데이트 반복

 

•  Local(default)

extent 할당과 관련된 정보를 테이블스페이스 datafile의 헤더에 비트맵으로 기록하고 사용

 

 ① AUTOALLOCATE(default)

- ALLOCATION_TYPE = SYSTEM

- 오라클이 extent 크기 결정

→ 처음에 64KB 짜리 extent 할당해주고, extent를 할당해달라는 요청이 계속 들어오면 더 큰 사이즈의 extent로 할당해줌 

 

② UNIFORM

- ALLOCATION_TYPE = UNIFORM

- extent 크기를 고정 사이즈로 지정

 extent 할당해달라는 요청이 계속 들어와도 블럭 사이즈 변화 안생김(계속 일정)

 

 

 

 

 

 

 

테이블스페이스 생성

 

OS 환경 : Oracle Linux 6.3
DB 환경 : Oracle Database 12.1.0.2

1. Temporary tablespace group 생성

 

create temporary tablespace temp1
tempfile '/u01/app/oracle/oradata/testdb/temp_1.dbf' size 100m
tablespace group tempgrp;
create temporary tablespace temp2
tempfile '/u01/app/oracle/oradata/testdb/temp_2.dbf' size 100m
tablespace group tempgrp;

Temporary tablespace group의 이름을 tempgrp로 하고 temp1, temp2로 구성한다.

 

 

잘 생성되었는지 명령어로 확인해본다.

 

select property_name, property_value
from database_properties
where property_name like 'DEFAULT%';

현재 default tablespace를 조회한다.

 

 

 

alter database default temporary tablespace tempgrp;

tempgrp를 default temporary tablespace로 설정한다.

 

 

select property_name, property_value
from database_properties
where property_name like 'DEFAULT%';

잘 설정되었다.

 

 

 

 

2. Default permanent tablespace 생성

  

create tablespace users
datafile '/u01/app/oracle/oradata/testdb/disk1/users.dbf' size 40m
extent management local uniform size 4m;

USERS라는 테이블스페이스를 생성한다.

 

 

alter database default tablespace users;

USER 테이블스페이스를 default permanent tablespace로 지정한다.

 

 

 

 

 

 

select tablespace_name, contents, status, allocation_type, extent_management, segment_space_management
from dba_tablespaces;

현재 데이터베이스에 존재하는 테이블스페이스와 정보를 조회한다.

 

 

 

 

 

 

테이블스페이스를 생성했으니 유저를 생성하러 가봅시다.

 

Oracle User 유저 생성

스키마와 유저 • 유저 DB 안에서 어떤 권한을 가진 객체이다. • 스키마 유저가 생성한(소유한) 모든 객체들의 집합이다. 권한 • 권한 - 시스템과 객체의 보안을 위해 존재한다. - 객체 권한이 ��

myalpaca.tistory.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함