본문 바로가기

교육/Oracle

Day 48 (오라클 기초구성2)

반응형

물리적 환경 구성 (테이블 스페이스 및 데이터 파일 구성)

[오라클 기초구성2]Oracle DATABASE 테이블스페이스 및 데이터파일 구성.pdf
3.38MB


  

Oracle Database 테이블스페이스 및 데이터파일 구성

 

 

 

 <목차>

1.   테이블 스페이스

  (1)   테이블 스페이스 정의

  (2)   테이블 스페이스 구성 계획

  (3)   테이블 스페이스 생성

 

2.   데이터 파일 관리

  (1)   데이터 파일 정의

  (2)   데이터 파일 구성 계획

  (3)   데이터 파일 관리

 

3.   테이블 스페이스 관리

  (1)   테이블 스페이스 용량 늘리기

  (2)   테이블 스페이스 이동

      1)  Offline상태에서 이동

      2)  Online상태에서 이동

  (3)   테이블 스페이스 삭제

 

 

 

1.    테이블 스페이스

 

  (1)   테이블 스페이스 정의

 

  테이블 스페이스란 오라클 내에서 실질적으로 데이터가 저장되는 물리적인 공간으로 세그먼트들로 구성된다. 사용자가 생성할  있는 테이블 스페이스는 일반 테이블 스페이스임시 테이블 스페이스실행취소 테이블 스페이스가 있다.

 

  (2)   테이블 스페이스 구성 계획

 

테이블스페이스 명

php

st

spare

구성 데이터 파일 명


 

php01

st01

spa01

php02

st02

spa02

데이터 파일 크기

100M

100M

200M

extent 관리

locally management 방식

segment space 관리

auto management 방식

 

테이블스페이스 명

tmp

undo

구성 데이터 파일 명

tmp01

undo01

데이터 파일 크기

100M

100M

extent 관리

locally management 방식

segment space 관리

auto management 방식

 

  (3)   테이블 스페이스 생성

 

SQL> SELECT tablespace_name, status, contents,
2 extent_management, segment_space_management
3 FROM dba_tablespaces;
// 테이블 스페이스 이름, Online/Offline 여부, 테이블 스페이스 속성, extent 관리방식, 세그먼트 영역 관리     방식에 대한 정보를 출력한다.

SQL> SELECT tablespace_name, bytes, file_name

2 FROM dba_data_files;

// 딕셔너리를 이용해 테이블 스페이스 이름, 크기, 테이블 스페이스의 구성 데이터파일 이름에 대한 정보를 출력한다.

SQL> SELECT tablespace_name, bytes, file_name

2 FROM dba_temp_files;

// 딕셔너리를 이용해 임시 테이블 스페이스 이름, 크기, 임시 테이블 스페이스의 구성 데이터파일 이름에 대한 정보를 출력한다.

SQL> SELECT t.name tablespace_name, d.bytes, d.name file_name

2 FROM v$tablespace t, v$datafile d

3 WHERE t.ts#=d.ts#;

// 파라미터값을 이용해 테이블 스페이스 이름, 크기, 테이블 스페이스 구성 데이터파일 이름에 대한 정보를 출력한다.

SQL> CREATE TABLESPACE <테이블 스페이스 명>

2 DATAFILE '<데이터 파일 명>' SIZE <크기>

3 SEGMENT SPACE MANAGEMENT AUTO;

4 EXTENT MANAGEMENT LOCAL;

// 테이블 스페이스의 크기를 지정하여 테이블 스페이스를 생성한다. 오라클 9i버전에서는 Default Extent management locally방식으로 정의되지만 segment space management default manual이므로 auto로 사용하기 위해서는 정의해주어야 한다. 오라클 8i버전에서는 Extent management default dictionary방식이고 segment space management default manual이므로 locally방식과 segment space management auto로 사용하기 위해서는 반드시 정의해 주어야 한다.

php 테이블 스페이스와 st 테이블 스페이스를 생성한다.
tmp 테이블 스페이스를 생성한다 .
undo 테이블 스페이스를 생성한다 .

 

2.    데이터 파일 관리

 

  (1)   데이터 파일의 정의

 

    데이터 파일이란 테이블 스페이스에 대한 물리적은 구조를 표현한 것이다.

 

  (2)   데이터 파일 구성 계획

테이블스페이스명

php

st

spare

데이터파일명

php01

php02

st01

st02

spa01

spa02

용량

50M

50M

50M

50M

50M

50M

확장용량

10M

10M

10M

10M

10M

10M

한계용량

100M

100M

100M

100M

200M

200M

 

테이블스페이스명

tmp

undo

데이터파일명

tmp01

undo01

용량

50M

50M

 

(3)   데이터 파일 관리

 

SQL> ALTER TABLESPACE <테이블 스페이스 명>
2 ADD DATAFILE '<추가될 데이터 파일 명>' SIZE <크기>;
// 테이블 스페이스에 데이터 파일을 추가한다.

SQL> ALTER DATABASE DATAFILE

2 '<data file>' RESIZE <크기>;

// 데이터 파일의 크기를 변경한다.

SQL> ALTER DATABASE

2 DATAFILE '<변경할 데이터 파일 명>

3 AUTOEXTEND [ON | OFF] NEXT <크기> MAX SIZE <크기>;

// 데이터 파일이 확장할 경우 확장 계획에 대한 설정 값이다. 크기변경과 같이 사용할 수 없다.

SQL> SELECT tablespace_name, file_name, autoextensible, increment_by, maxbytes

2 FROM dba_data_files

3 WHERE tablespace_name= <테이블 스페이스 >;

// 데이터 파일의 확장 계획에 대한 설정 값을 출력한다.

테이블 스페이스에 데이터 파일을 추가한다 .
데이터 파일의 크기를 수정한다.  동시에 수정은 불가능하므로 한번에 한 파일씩 수정해야 한다 .
데이터 파일의 크기가 자동적으로  200M 까지  5M 씩 확장되도록 설정한다 .

 

3.    테이블 스페이스 관리

 

(1)   테이블 스페이스 용량 늘리기

SQL> CREATE TABLESPACE <테이블 스페이스 명>
2 DATAFILE '<데이터 파일 명>' SIZE <크기>
3 AUTOEXTEND ON NEXT <크기> MAXSIZE <크기>;
// 테이블 스페이스의 데이터 파일이 자동으로 확장되게 테이블 스페이스를 생성한다.

SQL> ALTER TABLESPACE <테이블 스페이스 명>

2 ADD DATAFILE '<추가될 데이터 파일 명>' SIZE <크기>

3 AUTOEXTEND ON NEXT <크기> MAXSIZE <크기>;

// 테이블 스페이스에 자동으로 확장되는 데이터 파일을 추가한다.

 

자동으로 크기가 확장되는 데이터 파일을 가진 테이블 스페이스를 생성하고 데이터 파일을 추가한다 .

(2)   임시 테이블 스페이스 변경

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <임시 테이블 스페이스 명>;

임시 테이블 스페이스를 temp에서 tmp로 변경한다.

 

(3)   테이블 스페이스 이동

 

1)     Offline상태에서의 이동

SQL> ALTER TABLESPACE <테이블 스페이스 명> [OFFLINE | ONLINE];
// 테이블 스페이스의 상태를 Online이나 Offline으로 변경한다.

SQL>!mv <이동하기 전 데이터파일명> <이동할 데이터파일위치>

// 실제 데이터 파일의 이름을 변경하거나 데이터 파일을 이동한다.

SQL> ALTER TABLESPACE <테이블 스페이스 명> RENAME DATAFILE

2 '<변경 전 데이터파일명>’

3 TO '<변경 할 데이터파일명>';

// 오라클 시스템 내에서 테이블 스페이스를 사용할 파라미터 값을 변경한다.

Offline  상태에서 데이터 파일을 이동시킨다. DB의 안정성 때문에 Offline에서의 이동은 잘 사용하지 않는다.

 

2)     Online상태에서의 이동

SQL> SHUTDOWN IMMEDIATE;
// 오라클 종료

SQL> STARTUP MOUNT;

// MOUNT단계까지 오라클 실행

SQL> ALTER TABLESPACE RENAME file

2 '<변경 전 데이터파일명>’

3 TO '<변경 할 데이터파일명>';

// 실제 데이터 파일의 이름을 변경하거나 데이터 파일을 이동한다.

SQL> ALTER DATABASE OPEN;

// OPEN단계까지 오라클 실행

파라미터 값을 변경하기 전에 파일을 먼저 이동해 주어야 한다.

 

 

(3)   테이블 스페이스 삭제

SQL> DROP TABLESPACE <테이블 스페이스 명>
2 [INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS];
// 지정된 tablespace를 삭제한다. 일반적인 경우에서는 사용하지 않는다.
// INCLUDING CONTENT : Tablespace segment가 존재할 때 segment를 같이 삭제한다.
// CASCADE CONSTRAINTS : 삭제되는 tablespace table을 다른 tablespace table이 참조하는 경우에 해당 constraint를 같이 삭제한다.
// AND DATAFILES : Tablespace에 포함된 data file을 같이 지운다. 이 옵션을 쓰지 않으면 데이터 파일은 OS상에서 직접 지워야 한다

테이블 스페이스를 삭제한다 .

반응형

'교육 > Oracle' 카테고리의 다른 글

Day 50 (DB 파티션)  (0) 2020.01.30
Day 49 (DB)  (0) 2020.01.29
Day 48 (DB)  (0) 2020.01.28
Day 46 (DB_인덱스)  (0) 2020.01.22
Day 45 (DB)  (0) 2020.01.21