오라클

TABLESPACE 확장하는 방법

OEasy 2006. 11. 2. 11:31
 
BULLETIN CATEGORY
BULLETIN TOPIC
: RDBMS   
: TABLESPACE 확장하는 방법

  오라클에서 테이블 스페이스를 확장할 때는 여러 가지 방법을 사용할 수 있다. 이 방법의 선정은 오라클 버전이나 디스크의 사용 상태, 데이타 화일의 구성계획 등에 따라 결정할 수 있다. 테이블 스페이스를 확장하기 전에 먼저 그 테이블스페이스를 구성하는 데이타 화일들을 점검해 본다.     
  예를 들어 테이블 스페이스 TOOLS 를 확장한다고 가정하면   

 $sqlplus system/manager   

 SQL> select file_name, bytes    
       from dba_data_files   
       where tablespace_name = 'TOOLS';   

 이와 같이하면 현재 TOOLS 테이블 스페이스를 구성하고 있는 화일이름과 크기 (bytes)가 출력된다.    

 1. Tablespace에 datafile 추가하는 방법   
     
 Oracle 7.1이하에서는 이 방법만을 사용할 수 있다. 다음과 같은 명령문을 사용한다.   
     
 SQL> alter tablespace tools  add datafile '/oracle/dbs/tools2ORA.dbf' size 50M;   

 여기서는 화일의 크기를 50M 로 주었는데 이것은 디스크의 FREE SPACE와 기존의 데이타 화일의 크기 및 앞으로 들어갈 데이타의 크기 등을 고려하여 적절한 값으로 결정하도록 한다. 추가하는 데이타 화일의 이름은 기존의 화일과 동일한 이름이 아니기만 하면 되지만 편의상 기존의 화일에 일련번호를 붙여서 사용하는 것이 일반적이다.   
    

 2. 존재하는 데이타 화일의 크기 늘리는 방법   

 오라클 7.2 부터는 기존의 데이타 화일의 크기를 변경시켜서 확장할 수도 있다.   
예를 들어 TOOLS 테이블 스페이스가 현재 50M 크기의 /oracle/dbs/toolsORA.dbf 화일로 구성되어 있다면 다음과 같은 명령으로 이 화일의 크기를 100M로 늘릴 수 있다.   

 SQL> alter database datafile    '/oracle/dbs/toolsORA.dbf' resize 100M;   

 RESIZE 옵션은 V7.2에서 추가된 것으로 기존의 데이타 화일을 확장 또는 축소할 수 있다. 축소하는 경우는 데이타가 들어 있는 경우 어느 한계값 이하로 내려가지는 않는다.    
    

 3. 자동으로 데이타 화일이 늘어나도록 하는 방법   

 이 방법도 Oracle 7.2부터 새로 추가된 기능이다.   
 다음의 명령문은 존재하는 데이타 화일을 대상으로 한 것으로 데이타가 늘어나면서 이 데이타 화일을 가득 채우게 되면 자동적으로 10M씩 데이타 화일의 크기가 늘어나게 된다. 여기서는 최대로 200M까지 확장할 수 있도록 설정하였다.   

 SQL> alter database datafile    
       '/oracle/dbs/toolsORA.dbf'   
       autoextend on   
       next 10M   
       maxsize 200M;   

 이 방법은 아래와 같이 Tablespace 를 만들 때 생성하는 데이타 화일에도 지정할 수 있다.

 SQL> create tablespace test   
       datafile   '/oracle/dbs/testORA.dbf'  size 100M   
       autoextend on   
       next 50M   
       maxsize 500M;   

    위의 명령으로 지정하면 testORA.dbf 화일은 100M로 생성된 후 데이타 화일이 50M 씩 늘어나서 최대 500M 까지 늘어나도록 지정한 것이다.   
    

  [  Tablespace확장 시 발생할 수 있는 에러 ]   

 1. ORA-01118, ORA-00059  ERROR   

   ORA-01118 :  "cannot add any more database files: limit of %s exceeded"   
   ORA-00059 :  "maximum number of DB_FILES exceeded"   

 위의 두 에러는 datafile의 추가할 때 데이타 화일의 개수를 설정한 값을 초과하는 경우 발생하는 에러이다.  이 두 에러에 대한 조치 방법은 별도의 장에 설명하였다.   
    

 2. ORA-00406  ERROR   

   ORA-00406 :  "COMPATIBLE parameter needs to be %s or greater"   

 위 에러는 Oracle 7.2이상에서 데이타 화일의 RESIZE 나 AUTOEXTEND 를 설정할 때 발생할 수 있다.  이 에러는 $ORACLE_HOME/init<ORACLE_SID>.ora  화일에 COMPATIBLE  이라는 parameter의 값이 설정되어 있지 않거나  7.1 이하로 설정되어 있을 때 발생한다.  이 에러를 해결하기 위해서는 COMPATIBLE parameter 를 7.2.0.0 이상으로 setting하고 Oracle 을 restartup하면 된다.    
    

 3. ORA-01119  ERROR    
       
    위 에러는 데이타 화일을 확장할 때 그 데이타 화일이 위치하는 disk에 충분한 공간이 없는 경우에 발생한다.  이 에러 하나만 발생하는 경우라면 사용할 수 있는 공간이 충분한 다른 디스크에 데이타 화일을 추가하도록 한다.  이 에러와 함께 ORA-7352, ORA-7340 등 ORA-73XX 의 에러가 함께 발생하면 데이타 화일을 지정한 디렉토리에 오라클이 READ/WRITE 할 수 있는 권한이 있는 지,  또는 같은 이름의 화일이 있는 것은 아닌 지 확인해야 한다.  
 


Oracle Korea Customer Support Technical Bulletins