오라클 DB - 테이블 스페이스

2022. 11. 10. 17:28데이터베이스

테이블 스페이스

 

SYSTEM 테이블스페이스

• 데이터베이스와 함께 생성됩니다.
• 모든 데이터베이스에서 필요합니다.
• 내장 프로그램 단위를 포함하는 데이터 딕셔너리를 포함합니다.
• SYSTEM 실행 취소 세그먼트를 포함합니다.
• 사용자 데이터 포함을 허용하더라도 포함하지 않아야 합니다.

 

비SYSTEM 테이블스페이스

• 데이터베이스 관리가 더욱 유연해집니다.
• 실행 취소 세그먼트, 임시 세그먼트, 응용 프로그램 데이터 세그먼트 및 응용 프로그램 인덱스 세그먼트를 분리합니다.
• 백업 요구 사항에 따라 데이터를 분리합니다.
• 동적 데이터와 정적 데이터를 분리합니다.
• 사용자 객체에 할당된 공간의 양을 제어합니다.

 

테이블스페이스는 다음 명령을 사용하여 생성합니다.
CREATE TABLESPACE

EX)

CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

 

EX)

CREATE TABLESPACE tablespace
[DATAFILE clause]
[MINIMUM EXTENT integer[K|M]]
[BLOCKSIZE integer [K]]
[LOGGING|NOLOGGING]
[DEFAULT storage_clause ]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY]
[extent_management_clause]
[segment_management_clause]

 

지역적으로 관리되는 테이블스페이스 :

 - 테이블스페이스에서 관리되는 사용 가능한 확장 영역

 - 비트맵에 기록되는 사용 가능한 확장 영역

 - 각 비트는 블록 또는 블록 그룹과 대응

 - 비트 값은 사용 가능한 상태 또는 사용된 상태 표시

 - Oracle 서버에서는 비트맵 값을 변경하여 블록의 새 상태를 나타냅니다. 

 - Oracle9i에서는 지역적으로 관리되는 테이블스페이스가 기본 관리 방식입니다.

 

딕셔너리 관리 테이블스페이스 :

 - 데이터 딕셔너리에서 사용 가능한 확장 영역 관리

 - 확장 영역이 할당되거나 할당이 해제될 때 해당 테이블이 갱신됨.

 - 공간 할당받는것 자체가 시스템의 부담이 된다.

 

지역적으로 관리되는 테이블스페이스

 - 데이터 딕셔너리 테이블의 경합 줄임

 - 공간 항당이나 할당 해제가 발생할 경우 실행 취소 정보를 생성하지 않음

 - 병합이 필요 없음


CREATE TABLESPACE userdata

DATAFILE '/u01/oradata/uaerdata01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

 

딕셔너리 관리 테이블스페이스 :

어차피 안할거임

 

실행 취소 테이블스페이스

 - 실행 취소 세그먼트 저장

 - 다른 객체를 포함할 수 없음

 - 확장 영역이 지역적으로 관리됨

 - DATAFIEL 절 및 EXTENT MANAGEMENT 절만 사용할 수 있음

  CREATE UNDO TABLESPACE undo1

  DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;

 

임시 테이블스페이스

 - 정렬 작업에 사용

 - 영구 객체를 포함할 수 없음

 - 지역적으로 관리되는 확장 영역 권장

 CREATE TEMPORARY TABLESPACE temp

 TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M

 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

 

기본 임시 테이블스페이스

 - 모든 데이터베이스에서 사용되는 기본 임시 테이블스페이스를 지정합니다.

 - 임시 데이터를 저장할 경우 SYSTEM 테이블스페이스 사용을 제거합니다.

 - 다음을 사용하여 생성할 수 있습니다.

    - CREATE DATABASE : 지역적으로 관리됨

   

 - ALTER DATABASE

 - ALTER DATABASE

   DEFAULT TEMPORARY TABLESPACE temp;

 

기본 임시 테이블스페이스 생성

 - 데이터베이스를 생성하는 동안 다음 작업이 진행됩니다.

  CREATE DATABASE DBA01
  LOGFILE
  GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M,
  GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M,
  MAXLOGFILES 5
  MAXLOGMEMBERS 5
  MAXLOGHISTORY 1
  MAXDATAFILES 100
  MAXINSTANCES 1
  DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M
  UNDO TABLESPACE undotbs
  DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200
  DEFAULT TEMPORARY TABLESPACE temp
  TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M
  CHARACTER SET US7ASCII

 

기본 임시 테이블스페이스 생성

 - 데이터베이스를 생성한 후 다음 작업이 진행됩니다.

  ALTER DATABASE

  DEFAULT TEMPORARY TABLESPACE dafault_temp2;

 - 데이터베이스의 기본 임시 테이블스페이스를 찾으려면 DATABASE_PROPERTIES를 질의합니다.

   SELECT * FROM DATABASE_PROPERTIES;

 

TABLESPACE 늘리는 방법

 

1. DATA FILE의 크기를 늘리는 방법

   - 수동으로 늘리는 방법 : 특별한 환경적인 요소가 없다.

   - 자동으로 늘리는 방법 

      1-1. DATA FILE이 생성될때 늘어나게 설정하는 방법

      1-2. 사용중인 DATA FILE이 자동으로 늘어나게 설정하는 방법

 

2. DATA FILE을 추가하는 방법

   - 주로 저장매체가 추가된 경우나 또는 별도의 저장매체가 준비된경우

 

* TS에 데이터 파일이 동일한 물리적인 저장매체에 여러개 운영되는 경우는 ...