'DBA_DATA_FILE'에 해당되는 글 1건

  1. 2017.06.16 :: 오라클 TABLESPACE와 DATAFILE
데이터베이스 2017. 6. 16. 15:44

TABLESPACE와 DATAFILE


- TABLESPACE : 논리적 데이터 저장 공간

- DATAFILE     : 물리적 데이터 저장 공간, 즉 실제 데이터가 저장되는 Disk영역을 말 함



TABLESPACE 생성 Script


 - DATAFILE 1개

1
2
3
CREATE TABLESPACE TABLESPACE_NAME
DATAFILE 'D:\ORACLE\ORADATA\ORCL\TEST_TS01' SIZE 100M
AUTOEXTEND ON NEXT 2M MAXSIZE 500M;
cs


 - DATAFILE 1개 이상

1
2
3
DATAFILE 'D:\ORACLE\ORADATA\ORCL\TEST_TS01' SIZE 30G AUTOEXTEND OFF
       , 'D:\ORACLE\ORADATA\ORCL\TEST_TS02' SIZE 30G AUTOEXTEND OFF
       , 'D:\ORACLE\ORADATA\ORCL\TEST_TS03' SIZE 30G AUTOEXTEND OFF
cs


AUTOEXTEND

- DATAFILE SIZE 자동확장 여부, ON/OFF로 설정

- AUTOEXTEND가 OFF로 설정할 경우, NEXT, MAXSIZE의 크기는 0으로 설정해야 한다.

  NEXT, MAXSIZE를 기술하지 않으면 Default 값(0)으로 설정됨


NEXT

- 초기설정 값(100M)보다 많은 공간이 요구될때 자동으로 확장되는 디스크 공간크기

- K(킬로 바이트), M(메가 바이트)단위 사용


MAXSIZE

 - 확장 될수 있는 최대 크기 입니다.

 - K(킬로 바이트), M(메가 바이트)단위 사용

 - MAXSIZE가 명시되지 않았으면 데이터 파일의 최대 크기는 디스크 공간과 OS에서 지원되는 최대 파일 크기로 제한 된다. 


ex) Windows 32bit : 16G

    Windows 64bit : 32G




TABLESPACE 수정 Script


1
2
3
4
5
6
7
8
9
10
1) TABLEPACE에 수동으로 DATAFILE 추가
ALTER TABLESPACE DQ_MAN_TS ADD DATAFILE 'D:\ORACLE\ORADATA\ORCL\DQ_MAN_TS02.DBF' SIZE 30G;
 
2) 기존 DATAFILE 속성 변경 -  수동으로 SIZE증가
ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ORCL\DQ_MAN_TS01.DBF' resize 2G;
 
3) 기존 DATAFILE 속성 변경 -  자동으로 SIZE증가
  ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ORCL\DQ_MAN_TS01.DBF'
  AUTOEXTEND ON NEXT 5M
  MAXSIZE 30G;
cs




TABLESPACE 용량 및 사용량 확인


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT A.TABLESPACE_NAME AS "테이블스페이스"
     , ROUND(SUM(A.TOTAL)/1024/1024,1"전체(MB)"
     , ROUND(SUM(A.TOTAL)/1024/1024,1)-ROUND(SUM(A.FREE_SPACE)/1024/1024,1"사용(MB)"
     , ROUND(SUM(A.FREE_SPACE)/1024/1024,1"여유(MB)"
     , ROUND((ROUND(SUM(A.TOTAL)/1024/1024,1)- ROUND(SUM(A.FREE_SPACE)/1024/1024,1))/ROUND(SUM(A.TOTAL)/1024/1024,1)*100,2"사용률(%)"
  FROM (SELECT TABLESPACE_NAME
             , 0 AS TOTAL
             , SUM(BYTES) AS FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME
        UNION
        SELECT TABLESPACE_NAME
             , SUM(BYTES) TOTAL
             , 0 AS FREE_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) A
 GROUP BY A.TABLESPACE_NAME
 ORDER BY TABLESPACE_NAME
;
cs


DBA_SEGMENTS   : 세그먼트의 할당량을 조회

DBA_FREE_SPACE : 사용가능한 익스텐트 정보 조회

DBA_DATA_FILES : 할당된 물리적 공간


'데이터베이스' 카테고리의 다른 글

오라클 권한 조회  (0) 2017.06.28
오라클 계정과 권한  (0) 2017.06.23
TIMESTAMP 연산  (0) 2017.05.11
오라클 - PIVOT과 UNPIVOT  (0) 2017.02.02
오라클의 동적 PL SQL 작성 - EXECUTE IMMEDIATE  (0) 2017.01.24
posted by 생각퍼즐
: