오라클 구동-(2)테이블 스페이스 생성

2020. 1. 28. 17:14Security/운영체제 및 프로그램 설치

목차

1. 테이블 스페이스란

1-1. 테이블 스페이스 정의 및 특징

1-2. 테이블 스페이스 유형

1-3. 테이블 스페이스 생성 명령어

1-4. 테이블 스페이스 조회 명령어

2. 테이블 스페이스 생성

2-1. 관리자 접속

2-2. 테이블 스페이스 확인

2-3. 테이블 스페이스 생성

2-4. 최종 테이블스페이스 및 데이터 파일 상태 조회

 

1. 테이블 스페이스

1-1 테이블 스페이스 정의 및 특징 

- 데이터베이스 오브젝트 내 실제 데이터를 논리적으로 저장하는 공간

- 데이터 용량에 대한 물리적인 제약이 없음.

- tablespace는 데이터파일로 구성되어 있음.

- 사용자는 데이터파일을 지정 할 수 없음.

- 데이터파일은 tablespace에 무조건 저장되어있어야 함

- 한 개 이상의 데이터 파일로 테이블 스페이스 구성.

 

1-2 테이블 스페이스의 구성

SYSTEM 테이블 스페이스

- 데이터 베이스와 함께 생성. 직접 만들 수 없다.

- 데이터 딕셔너리 포함. 일반 관리자는 절대 직접 사용하면 안되고 빈 공간만 10% 이상으로 유지.

 

non-SYSTEM 테이블 스페이스(SYSTEM 테이블 스페이스가 아닌 나머지 전부 다)

- 유저용 테이블 스페이스 : 말 그대로 일반 사용자가 사용하는 테이블 스페이스

- temporary(임시) 테이블 스페이스 : 정렬하기 위해 임시로 저장하는 테이블 스페이스

- undo 테이블 스페이스 : undo segment를 저장.

 

1-3 테이블 스페이스 생성 명령어

<유저용 테이블 스페이스 생성 명령어> 

CREATE TABLESPACE <tablespace명>
DATAFILE <데이터 파일> SIZE <크기>; 

- 오라클 10g, 11g, 12c 버전에서 사용자용 tablespace 생성 명령어
- Extent management 는 locally 방식으로, segment space management는 AUTO 방식으로 생성

 

<temporary(임시) 테이블 스페이스 생성 명령어>

CREATE TEOMPORARY TABLESPACE <tablespace명>
TEMPFILE <템프 파일> SIZE <크기>;

 

<undo 테이블 스페이스 생성 명령어>

CREATE UNDO TABLESPACE <tablespace명>
DATAFILE <undo 데이터 파일> SIZE <크기>; 

 

1-4 테이블 스페이스 조회 명령어

<tablesapce의 상태 조회>

SELECT tablespace_name, status, contents, 
extent_management, segment_space_management 
FROM dba_tablespaces; 
- STATUS : 사용 가능여부 
- CONTENTS : 저장 Segment의 종류 
- EXTENT_MANAGEMENT : Extent의 할당 및 관리 방식 
- SEGMENT_SPACE_MANAGEMENT : Block내의 공간 관리 방식 

 

<Tablespace별 data file의 상태를 조회>

SELECT tablespace_name, bytes, file_name 
FROM dba_data_files; 
- BYTES : Data file의 크기 
- FILE_NAME : Data file의 경로명을 포함한 이름 

 

<Tablespace별 data file의 상태를 조회>

SELECT t.name tablespace_name, d.bytes, d.name file_name 
FROM v$tablespace t, v$datafile d 
WHERE t.ts#=d.ts#; 
- Dictionary가 아니라 dynamic performance view를 조회하는 것이므로 MOUNT 상태에서도 조회 가능.

 

 

2. 사용자 계정 생성

2-1. 관리자 접속

sqlplus / as sysdba

- 관리자 권한으로 접속. dba그룹에 속한 계정은 누구나 이렇게 접속 가능.

- sysdba는 sys의 권한을 의미.

 

2-2. 테이블 스페이스 확인

SELECT tablespace_name, status FROM dba_tablespaces; 

- 테이블 스페이스는 오라클의 저장 영역 구성을 의미한다. USERS, TEMP 테이블스페이스를 확인.

- 일반 사용자는SYSTEM, SYSAUX, UNDOTBS, TEMP이외의 USERS만 사용 가능.

 

2-3 테이블 스페이스 생성

CREATE TABLESPACE st 
DATAFILE 
'/app/ora12c/oradata/disk2/st01.dbf' SIZE 3M, 
'/app/ora12c/oradata/disk1/st02.dbf' SIZE 3M;

// 사용자가 사용할 테이블 스페이스 생성

 

CREATE TABLESPACE indx 
DATAFILE 
'/app/ora12c/oradata/disk1/indx01.dbf' SIZE 2M, 
'/app/ora12c/oradata/disk2/indx02.dbf' SIZE 2M;

// 인덱스를 저장할 테이블 스페이스 생성

 

2-4. 최종 테이블스페이스 및 데이터 파일 상태 조회

SELECT tablespace_name, status, contents, extent_management, segment_space_management 
FROM dba_tablespaces; 

SELECT tablespace_name, bytes, file_name 
FROM dba_data_files;