RadarURL
Skip to content
조회 수 3750 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

▣ 테이블스페이스(TABLESPACE)란 ?

  - 테이블스페이스는 하나 또는 여러개의 데이터 파일로 구성되어 있는 논리적인 데이터 저장 구조 입니다. 

  - 테이블스페이스는 크게 시스템(SYSTEM) 테이블 스페이스와 비시스템(NON-SYSTEM)  테이블 스페이스로 구분 됩니다.

  - 테이블스페이스는 사용자에게 공간을 할당할 수 있으며, 테이블스페이스 안에 저장되어   있을 데이터의 가용성을 제어할 수 있습니다.
    
 

1. 시스템 테이블 스페이스

 - 오라클 데이터 베이스를 생성할 때 자동으로 생기며 오라클 데이터 베이스의 기동을 위해
    꼭 필요한 테이블 스페이스 입니다.

 - 모든 데이터 사전(Data Dictionary) 정보와, 저장 프로시저, 패키지, 데이터베이스
    트리거등을 저장 합니다

  - 유저데이타가 포함될 수 있지만 관리 효율성 면에서 포함 시키지 않습니다

 

2. 비 시스템 테이블 스페이스

- 롤백세그먼트, 임시세그먼트, 응용프로그렘 데이타, 그리고 응용프로그렘 인덱스를 저장 할 수 있습니다

- 공간관리를 쉽게 하기 위해서 생성 합니다.

- 유저에게 할당되는 공간 입니다.

 

 

 
▣ 테이블스페이스의 생성

 

 


   - 옵션절을 생략할 경우 밑줄친 옵션이 디폴트 값입니다.
   - tablespace_name : 생성할 테이블 스페이스 명
   - DATAFILE : 새로 생성하는 테이블스페이스가 사용할 데이터 파일
   - filespec : 디렉토리 경로명을 포함한 파일명
   - size : 새로 생성되는 데이터 파일의 크기

   - ONLINE/OFFLINE
       ONLINE : 새로 생성되는 테이블 스페이스를 활성화 시키며, 생성 후 바로 사용할 수 있게 함
       OFFLINE : 테이블 스페이스를 비활성화 시키며, 생성 후 바로 사용할 수 없음

   - PERMANT/TEMPORARY : TEMPORARY 옵션을 사용하면 생성하는 테이블스페이스는
                                         임시 테이블스페이스가 됩니다.


  - DEFAULT STORAGE


     * INITIAL : 테이블 스페이스의 맨 첫번째 Extents의 크기
     * NEXT : 다음 Extents의 크기
     * MINEXTENTS : 생성할 Extents의 최소 값
     * MAXEXTENTS : 생성할 Extents의 최대 값
     * PCTINCREASE : Extents의 증가율, Default값은 50 입니다


 

테이블 스페이스 생성 예제

-- sysdba권한으로 접속을 합니다.
SQL> conn sys/manager as sysdba

-- 테이블스페이스 생성
SQL>CREATE TABLESPACE storm
         DATAFILE 'C:ORACLEORADATAapp_data.dbf' SIZE 100M
         DEFAULT STORAGE
             (INITIAL    10K
              NEXT      10K
              MINEXTENTS 2
              MAXEXTENTS 50
              PCTINCREASE 50)

   아래 그림 설명은 잘 못되었습니다.
  두번째 extent는 next의 원래 크기와 동일합니다.
  다음부터의 NEXT는 (1+pctincrease/100)에 next의 이전크기를 곱한 크기로 설정 됩니다.
  그러므로 16K는 세번째 extent의 크기가 됩니다.

  10k, 10k, 16k, 24K, 36k.. 이렇게 되겠죠..

 


▣ 테이블스페이스의 자동 확장


▣ 생성한 데이터파일이 다 채워졌을 경우 자동으로 데이터 파일을 확장하는 방법 입니다.

▣ AUTOEXTEND 옵션을 사용 하시면 됩니다.

▣ AUTOEXTEND 옵션 사용법
   - ON 아니면 OFF
   - CREATE DATABASE, CREATE TABLESPACE, ALTER TABLESPACE에서
     사용 할 수 있습니다.

▣ AUTOEXTEND 사용 예제

SQL> ALTER TABLESPACE storm
          ADD DATAFILE 'C:ORACLEORADATAapp_data02.dbf' SIZE 200M
          AUTOEXTEND ON NEXT 10M
          MAXSIZE 500M;

storm 테이블스페이스에 200M 데이터 파일을 추가 했는데요, 
이 데이터 파일의 크기인 200M를 전부 사용하게 되면 500M이 될 때까지 자동으로  10M 증가합니다.

 

▣ AUTOEXTEND 의 OFF

 SQL>  ALTER DATABASE DATAFILE ‘C:ORACLEORADATAapp_data02.dbf'
                 AUTOEXTEND OFF;

App_data02.dbf파일의 자동확장을 중지 시킵니다.    


▣ 수동으로 데이터 파일 크기 변경

  - ALTER DATABASE명령으로 데이터 파일의 크기를 변경 할 수 있습니다.

   예제)  
   SQL>ALTER DATABASE DATAFILE
           'C:ORACLEORADATAapp_data02.dbf' RESIZE 300M
 
   RESIZE명령으로 데이터 파일의 크기를 300M로 했습니다.
   기존 데이터 파일의 크기가 300M가 넘을 경우에는 300M로 줄어들게되고,
   300M가 되지 않았을 경우에는 300M로 늘어나게 됩니다.


 

 

▣ 비 활성화(OFFLINE) 테이블 스페이스

  - 오프라인 상태 테이블스페이스의 데이타에는 접근 할 수가 없습니다.
  - SYSTEM 테이블스페이스와 활성화된 롤백세그먼트를 가진 모든 테이블스페이스는
    오프라인 상태가 될 수 없습니다.


  - 테이블스페이스를 오프라인으로 만들기

     데이타베이스가 오픈되어 있다면 데이타베이스 관리자는 SYSTEM 테이블스페이스나
     활성 롤백세그먼트나  임시세그먼트를 가진 테이블스페이스를 제외한
     어떤 테이블 스페이스든지 오프라인 상태로 만들 수  있습니다.

     테이블스페이스가 오프라인상태가 됐을때 오라클 서버는 모든 관련된 모든 데이터
     파일을 오프라인 상태로 만듭니다.

 

 

  테이블스페이스는 세가지 모드로 오프라인 상태가 될 수 있습니다.
   * normal : 디폴드 값, 테이블스페이스의 모든 데이터 파일에 대해 체크 포인트를 수행
                     합니다.
   * immediate : CheckPoint를 수행하지 않습니다.
   * temporary : 테이블스페이스의 ONLINE데이터 파일에 대해 체크 포인트를 수행 합니다.

  예제)
  SQL> ALTER TABLESPACE app_data OFFLINE;


 

 

▣ 데이터 파일의 이동(ALTER DATABASE)

 1) 데이터베이스를 종료 합니다.
 2) 운영체제 명령을 사용하여 데이터 파일을 이동 합니다.
 3) 데이터베이스를 마운트 합니다.
 4) ALTER DATABASCE RENAME FILE명령을 수행하여 이름을 변경합니다.
 5) 인스턴스를 시작합니다.


1) 인스턴스의 종료

C:>SQLPLUS /nolog
SQL>conn sys/manager  as sysdba
SQL>shutdown immediate;


2) 운영체제 명령을 사용하여 데이터 파일을 이동

 - 운영체제 명령을 이용해서 데이터 파일을 이동 시킵니다.
 - UNIX에서는 mv명령을 이용해서 새로운 위치로 이동 시킵니다.


3) 데이터베이스 마운트

SQL>startup mount;


4) ALTER DATABASE명령의 수행

SQL>ALTER DATABASE RENAME FILE
           'C:oracleoradatastorm.dbf' to
           'D:oracleoradataoraclestorm.dbf' ;

alter database명령을 실행하면 오라클은 파일이 존재하는가를 검사합니다.
만약 이단계에서 에러가 발생하면 파일이름이 정확한지 다시 확인 하시면 됩니다.


5) 인스턴스 시작

SQL>alter database open


 

 

▣ 읽기전용(Read Only) 테이블 스페이스


   - 테이블스페이스는 온라인 상태 이어야 합니다.

   - 활성화된 트랜잭션은 허용되지 않습니다.(DML 작업)

   - 테이블 스페이스에 활성화된 롤백 세그먼트가 포함되어 있지 않아야 합니다.

   - 테이블 스페이스는 현재 온라인 백업에 포함되어 있지 않아야 합니다.

 

 


SQL>ALTER TABLESPACE app_data  READ ONLY;

==>app_data 테이블 스페이스를 읽기 전용으로 변경 시킵니다.


 
 
 
 
 
 ▣ 테이블 스페이스의 삭제


  ◈ 데이타를 가지고 있는 테이블스페이스는 INCLUDING CONTENTS옵션 없이는 삭제할 수
      없습니다.

  ◈ 컨트롤 파일 내에 있는 파일 포인터만 삭제됩니다. (데이터 파일은 존재)

  ◈ 데이타베이스 파일은 여전히 존재하므로 운영체제 레벨에서 명시적으로 삭제 되여야만 합니다.

  ◈ 데이터 딕셔너리의 내용이 변경 됩니다.

  ◈ TableSpace를 삭제 하기 전에 테이블스페이스를 오프라인 상태로 할 것을 권장 합니다.

  ◈ TableSpace가 일단 삭제되면 그 데이타는 데이타베이스에 더 이상 존재하지 않게 됩니다.

 

 


  - INCLUDING CONTENTS: TableSpace에 Data가 이미들어있을 경우 들어있는 내용을
                                           포함해서 모두 삭제 합니다.

  - CASECADE CONSTRAINTS : Primary Key가 설정되어 있는 경우에 child 의 Foriegn Key를  
                                        삭제하고 Tablespace를 삭제 합니다.


 SQL> DROP TABLESPACE app_data  INCLUDING CONTENTS ;

 ==>app_data테이블 스페이스를 삭제 합니다.
 
 
 
 DBA_TABBLESPACES 데이터 사전

SQL>conn sys/manager as sysdba
SQL>SELECT tablespace_name, initial_extent, max_extents,  min_extlen
         FROM dba_tablespaces;


 


DBA_DATA_FILES 데이터 사전

SQL>conn sys/manager as sysdba
SQL> SELECT file_name, tablespace_name
          FROM dba_data_files;


 


콘트롤파일의 데이타파일 정보와 테이블스페이스 정보

SQL>conn sys/manager as sysdba
SQL> SELECT status,enabled, t.name,d.name
          FROM  v$datafile d, v$tablespace t
          WHERE t.ts#=d.ts#;
 
STATUS    ENABLED       NAME            NAME
-------   ----------      ------------   -------------------------------------
SYSTEM  READ WRITE SYSTEM       C:ORACLEORADATAORACLESYSTEM01.DBF
ONLINE    READ WRITE RBS             C:ORACLEORADATAORACLERBS01.DBF
ONLINE    READ WRITE USERS         C:ORACLEORADATAORACLEUSERS01.DBF
ONLINE    READ WRITE TEMP           C:ORACLEORADATAORACLETEMP01.DBF
ONLINE    READ WRITE TOOLS         C:ORACLEORADATAORACLETOOLS01.DBF
ONLINE    READ WRITE INDX            C:ORACLEORADATAORACLEINDX01.DBF
ONLINE    READ WRITE DRSYS         C:ORACLEORADATAORACLEDR01.DBF
ONLINE    READ WRITE STORM        C:ORACLEORADATAORACLESTORM.DBF


 


테이블 스페이스의데이터 파일과 테이블 스페이스의 크기 확인
 
DBA_DATA_FILES 데이터 사전을 이용 하면 됩니다.
 
SQL> COL FILE_NAME FORMAT A40
SQL> COL TABLESPACE_NAME FORMAT A15
 
SQL>  SELECT file_name, tablespace_name, bytes, status FROM  DBA_DATA_FILES;
 
FILE_NAME                                                    T ABLESPACE_NAME      BYTES     STATUS
-------------------------------------              ---------------    ------------    ------------
C:ORACLEORADATAORACLESYSTEM01.DBF   SYSTEM           248250368   AVAILABLE
C:ORACLEORADATAORACLERBS01.DBF          RBS                545259520    AVAILABLE
C:ORACLEORADATAORACLEUSERS01.DBF      USERS            113246208    AVAILABLE
C:ORACLEORADATAORACLETEMP01.DBF       TEMP               75497472     AVAILABLE
C:ORACLEORADATAORACLETOOLS01.DBF     TOOLS             12582912     AVAILABLE
C:ORACLEORADATAORACLEINDX01.DBF         INDX                60817408     AVAILABLE
C:ORACLEORADATAORACLEDR01.DBF            DRSYS            92274688      AVAILABLE
 
◎ FILE_NAME : DATAFILE의 물리적인 위치와 파일명을 알 수 있습니다.
◎ TABLESPACE_NAME : 테이블 스페이스의 이름을 알 수 있습니다.
◎ BYTES : 테이블 스페이스의 크기를 알수 있습니다.
◎ STATUS : 테이블 스페이스의 이용 가능 여부를 알 수 있습니다.
 

테이블 스페이스별 사용 가능한 공간의 확인

DBA_FREE_SPACE 데이터 사전

 
SQL> SELECT tablespace_name, SUM(bytes), MAX(bytes)
         FROM DBA_FREE_SPACE
         GROUP BY tablespace_name

 
TABLESPACE_NAME SUM(BYTES) MAX(BYTES)
---------------           ----------     ----------
DRSYS                     88268800           88268800
INDX                        60809216           60809216
RBS                       524279808          498589696
SYSTEM                      65536                 65536
TEMP                      75489280           74244096
TOOLS                     12574720           12574720
USERS                   113238016          113238016
  

◎ SUM을 사용한 이유는하나의 테이블 스페이스에 분산되어 있는 여유공간을 합한 것이며,
◎ MAX를 사용한 이유는 여유 공간중 가장 큰 공간의 SIZE를 의미 합니다.
 
 


 데이타 화일에 대한 총 크기와 남아있는 공간, 사용한 용량, 남은 %율

 
DBA_FREE_SPACE, DBA_DATA_FILES 데이터 사전

 
SQL> COL FILE_NAME FORMAT A40
SQL> COL TABLESPACE_NAME FORMAT A30
SQL> SET LINESIZE 150
SQL> SELECT  b.file_name "FILE_NAME",                                         --  DataFile Name
                 b.tablespace_name "TABLESPACE_NAME",                      -- TableSpace Name
                 b.bytes / 1024 "TOTAL SIZE(KB)",                                    -- 총 Bytes
                 ((b.bytes - sum(nvl(a.bytes,0)))) / 1024 "USED(KB)",         -- 사용한 용량
                 (sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)",                  -- 남은 용량
                 (sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %"               -- 남은 %
         FROM   DBA_FREE_SPACE a, DBA_DATA_FILES b
         WHERE a.file_id(+) = b.file_id
         GROUP BY b.tablespace_name, b.file_name, b.bytes
         ORDER BY b.tablespace_name
 
 
FILE_NAME                                                  TABLESPACE_NAME  TOTAL SIZE(KB)   USED(KB) FREE SIZE(KB)     FREE %
-------------------------------------                ---------------     --------------   -------------    ------------- ----------
C:ORACLEORADATAORACLEDR01.DBF            DRSYS                    90112            3912         86200            95.6587358
C:ORACLEORADATAORACLEINDX01.DBF         INDX                        59392                8         59384            99.9865302
C:ORACLEORADATAORACLERBS01.DBF          RBS                       532480          20488        511992            96.1523438
C:ORACLEORADATAORACLETEMP01.DBF       TEMP                       73728               8         73720             99.9891493
C:ORACLEORADATAORACLETOOLS01.DBF     TOOLS                      12288               8         12280            99.9348958
C:ORACLEORADATAORACLEUSERS01.DBF      USERS                    110592               8        110584           99.9927662
   

출처 : http://blog.daum.net/_blog/BlogTypeView.do?blogid=04eOW&articleno=12292551&categoryId=649222&regdt=20070817163122#ajax_history_home

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
21 MySQL Dump / Import (덤프 / 임포트) JAESOO 2016.10.10 71
20 빅데이터 시대, DB·데이터 암호화 솔루션 길라잡이 JAESOO 2015.04.28 371
19 mariadb 원격 접속 허용 JAESOO 2014.04.29 2953
18 Database(데이터베이스) 관련 Naming Rule(이름설정 규칙) [SQL] JaeSoo 2013.12.03 5886
17 iBATIS(아이바티스) 시작 JaeSoo 2013.09.22 4263
16 iBatis(아이바티스)란? JaeSoo 2013.09.22 5192
15 innodb 와 myisam 의 차이점과 성능비교 JaeSoo 2013.04.11 4394
14 DB 모델링 툴 검토 JaeSoo 2013.03.21 3670
13 데이터베이스 모델링 툴의 새로운 대안 eXERD JaeSoo 2013.03.21 3989
12 무료 DB모델링툴(Freeware) 검토결과 1 JaeSoo 2013.03.21 4652
11 ERD 그리는 프로그램 JaeSoo 2013.03.21 3586
10 [ERD 툴] DB Modelling 툴 종류 및 비교 JaeSoo 2013.03.21 4148
9 innodb를 myisam으로 변환 가능한가요? JaeSoo 2012.07.28 4223
8 InnoDB vs MyISAM JaeSoo 2012.07.28 2713
» 테이블 스페이스(TABLE SPACE)란? JaeSoo 2012.07.20 3750
6 SAM,DAM,VSAM,ISAM,SMS JaeSoo 2012.07.12 4417
5 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN JaeSoo 2012.05.08 7140
4 쿼리의 결합 : UNION 으로 쿼리 결합하기 JaeSoo 2012.05.08 3619
3 ERD 를 엑셀 EXCEL 로 변환 JaeSoo 2012.04.23 5164
2 관계형 데이터 모델(Relational Data Model) 의 설계 JaeSoo 2012.02.17 5860
Board Pagination Prev 1 2 Next
/ 2

PageViews   Today : 8   Yesterday : 1,315   Total : 19,717,314  /  Counter Status   Today : 5   Yesterday : 316   Total : 1,395,650
Site Info   Member : 230  /  Total documents : 1,221   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소