생계/Oracle2017. 11. 6. 13:32
반응형

오라클 DB 를 운영시에 datafile 의 autoextend 속성을 on 으로 운영하면, 데이터 파일이

저절로 파일이 증가해서 따로 신경쓰지 않아도 되는 운영상의 이점이 있다. 

반면, 신경을 안쓰다보니, 필요이상으로 파일이 커지는 일도 종종 발생한다. 

그럴때는 datafile 을 resize 해보자.

 

● Datafile resize

 

### 1. 데이터 datafile  ###

   테이블 : alter table move -> resize

  인덱스 : alter index move, 재생성 -> resize

 

ALTER DATABASE DATAFILE '+DATA/testdb/datafile/ts_test_dat.277.921462245' RESIZE 5G;

ORA-03297: file contains used data beyond requested RESIZE value

=> datafile resize 가 실행되지 않는다면 move tablespace 명령으로 옮기자.

 

ALTER TABLE test.PART_TAB MOVE PARTITION P_201710 TABLESPACE TS_TEST_IMSI;

ALTER INDEX testdb.PK_PART_TAB rebuild TABLESPACE TS_TEST_IMSI;

ERROR at line 1:

ORA-14086: a partitioned index may not be rebuilt as a whole

local partitioned index 는 그냥 재생성 하자. move tablespace 가 안된다. 

ALTER DATABASE DATAFILE '+DATA/testdb/datafile/ts_test_dat.277.921462245' RESIZE 5G;

다시 해보면 된다. 

 

### 2. Temp datafile  ###

 

  TEMP 는 resize 가 안된다.  그냥 교체 하자. 

SQL> select FILE_NAME, TABLESPACE_NAME, TRUNC(BYTES/1024/1024) MB, STATUS  from DBA_TEMP_FILES;

FILE_NAME TABLESPACE_NAME   MB STATUS

---------------------------------------- ---------------------------------------- ---------- -------

+DATA/testdb/tempfile/temp.263.920253251 TEMP        21410 ONLINE

 

SQL> ALTER DATABASE DATAFILE '+DATA/testdb/tempfile/temp.263.920253251' RESIZE 10G;

ALTER DATABASE DATAFILE '+DATA/testdb/tempfile/temp.263.920253251' RESIZE 10G

*

ERROR at line 1:

ORA-01516: nonexistent log file, data file, or temporary file "+DATA/testdb/tempfile/temp.263.920253251"

 

CREATE TEMPORARY TABLESPACE TS_TEMP;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TS_TEMP;

DROP TABLESPACE TEMP;

CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '+DATA' SIZE 10G;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

DROP TABLESPACE TEMP TS_TEMP;

ALTER DATABASE TEMPFILE'+DATA/testdb/tempfile/temp.xxx.xxxxxxx' AUTOEXTEND OFF;   

** db가 생성해주는 일련번호를 확인하자.

 

### 3. Undo datafile  ###

 

   resize 가능하다.

ALTER DATABASE DATAFILE '+DATA/testdb/datafile/undotbs1.262.920253249' RESIZE 10G;    

ALTER DATABASE DATAFILE '+DATA/testdb/datafile/undotbs1.262.920253249' AUTOEXTEND OFF;   

 

반응형

'생계 > Oracle' 카테고리의 다른 글

oracle 12c silent mode 설치  (0) 2017.12.13
스키마모드 datapump 테스트  (0) 2017.12.06
오라클 스크립트 생성 SQL  (0) 2017.09.13
ORACLE 파티션 테이블 DDL 스크립트  (0) 2017.09.10
오라클 autotrace 옵션  (0) 2017.09.08
Posted by 돌고래트레이너