오라클 데이터 구조
테이블스페이스 생성 명령어
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
'ORACLE > ADMIN' 카테고리의 다른 글
Oracle Listener 구성(정적등록vs동적등록) (0) | 2020.07.28 |
---|---|
Oracle undo 언두 관리 (0) | 2020.07.21 |
Oracle redo log file, control file 다중화 (0) | 2020.07.20 |
Oracle User 유저 생성 (2) | 2020.07.19 |
Oracle Database 데이터베이스 수동 생성 (5) | 2020.07.17 |