Database/Oracle

[Oracle] TableSpace에 DataFile 추가 하기

Pazery는ENFJ 2021. 12. 16. 13:01
반응형
Table Space가 Full 되면 Data File를 추가 해야 한다.

 

  • Table Space : 단어 그대로 DB Table 이 저장 되는 논리적인 공간
  • Data File : DB Table의 데이터가 물리적으로 저장되는 공간 (Data File 1개의 최대 용량 32GB)

>> 하나의 Table Space 는 1개 이상의 Data File로 구성되어 있다.

 

 

Table Space 및 용량 확인

SELECT    A.TABLESPACE_NAME AS "테이블스페이스명",
          A.FILE_NAME AS "파일경로",
          A.BYTES/1024/1024/1024 AS "총크기",
          (A.BYTES - B.FREE)/1024/1024/1024 AS "사용공간",
          B.FREE/1024/1024/1024 AS "여유 공간",
          TO_CHAR( (B.FREE / A.BYTES * 100) , '999.99')||'%' AS "여유공간"
FROM
(
 SELECT FILE_ID,
        TABLESPACE_NAME,
        FILE_NAME,
        SUBSTR(FILE_NAME,1,200) AS FILE_NM,
        SUM(BYTES) BYTES
   FROM DBA_DATA_FILES
 GROUP BY FILE_ID,TABLESPACE_NAME,FILE_NAME,SUBSTR(FILE_NAME,1,200)
) A,
(
 SELECT TABLESPACE_NAME,
        FILE_ID,
        SUM(NVL(BYTES,0)) AS FREE
   FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME,FILE_ID
) B
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME
 AND A.FILE_ID = B.FILE_ID
ORDER BY A.TABLESPACE_NAME;

Data File 설정한 최대 용량 또는 최대 용량(32GB) 가 Full 이라면 Data File 을 추가하여야 합니다.

Table Space에 Data File 추가 하는 방법

ALTER TABLESPACE {TABLE_SPACE_NAME} ADD DATAFILE {DATA_FILE_NAME} SIZE {SIZE};

ex)ALTER TABLESPACE my_space ADD DATAFILE 'kevin_datafile02.dtf' SIZE 100M;

Table Space에 Data File 추가하면서 Auto Extensible 설정 하는 방법

ALTER TABLESPACE {TableSpaceName} ADD DATAFILE {DataFileName} SIZE {초기용량} AUTUEXTEND ON NEXT {자동증가 용량} MAXSIZE {최대 용량}

ex)
ALTER TABLESPACE TableSpaceName ADD DATAFILE '/kevin_datafile03.DBF' SIZE 100M AUTUEXTEND ON NEXT 100M MAXSIZE 32G

 

 

Table Space Auto Extensible 설정 확인 하는 방법

*Auto Extensible 설정을 해두면 DataFile이 테이블 용량에 따라 최대 용량까지 자동 증가

SELECT TABLESPACE_NAME, AUTOEXTENSIBLE, FILE_NAME FROM DBA_DATA_FILES;

 

Table Space Auto Extensible 설정 방법

*Auto Extensible 설정을 해야 하는 이유는 DB서버의 디스크 용량을 DataFile이 효율적으로 점유하기 위해서다.

ALTER DATABASE DATAFILE {DATA_FILE_NAME.dtf} AUTOEXTEND ON NEXT {추가 할 용량} MAXSIZE {최대 용량};

ex) ALTER DATABASE DATAFILE 'kevin_datafile01.dtf' AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;

 

Table Space 삭제 방법 / Data File Drop 방법

-- Drop Table Sapce
1. DROP TABLESPACE {TABLE_SPACE_NAME} INCLUDING CONTENTS AND DATAFILES;

-- Drop Data File
2. ALTER TABLESPACE {TABLE_SPACE_NAME} DROP DATAFILE 'kevin_datafile01.dtf';
반응형