본문

#테이블스페이스 #데이터파일 관리

반응형

1. Oracle Error

DB에 데이터를 저장할 공간이 부족할 경우 아래와같은 에러가 발생한다. (FEPd log)

Caused by: java.sql.SQLException: ORA-01683: unable to extend index AIMIR.SYS_C004466 partition LPEM201811 by 8192 in tablespace AIMIRDBIDX

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)

    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)

    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)

    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)

    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)

    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943)

    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)

    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)

    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4875)

    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1361)

    at com.jolbox.bonecp.PreparedStatementHandle.executeUpdate(PreparedStatementHandle.java:205)

    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)


2. 테이블 스페이스 관리

테이블 스페이스 점검 및 조치 절차는 Oracle SQL Developer S/W를 기반으로 작성되었다.

P.S. Oracle SQL Developer Download: https://www.oracle.com/tools/downloads/sqldev-v192-downloads.html

 

2.1 테이블 스페이스 잔여공간 확인

Oracle SQLd는 테이블 스페이스 사용정보를 확인할 수 있는 Reports 기능을 제공한다.

 

a) Free Space탭에서 Free MB, Used 정보로 잔여공간을 확인한다.

b) Datafiles탭에서 Size MB, Maximum Size MB를 비교하여 데이터파일 추가 여부를 판단한다.

datafile list 확인

 

※ 여기서 잠깐!

테이블스페이스 또는 데이터파일을 추가하기 전! 먼저 사용 가능한 서버의 디스크 공간을 확인한다.

 

-. 잔여 공간 확인: df -h


2.2 테이블스페이스

A. 테이블스페이스 생성

CREATE TABLESPACE 테이블스페이스명 DATAFILE '/경로/DBF파일명'

SIZE ○○M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

 

CREATE TABLESPACE AIMIRPART201912M DATAFILE '/disk2/data/orcl1/AIMIRPART201912M.DBF'

SIZE 10000M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

 

 

B. 테이블스페이스 삭제

DROP TABLESPACE 테이블스페이스명 
INCLUDING CONTENTS AND DATAFILES
CASCADE CONSTRAINTS;

 

DROP TABLESPACE AIMIRPART201912M 
INCLUDING CONTENTS AND DATAFILES 
CASCADE CONSTRAINTS;

 

C. 테이블스페이스 삭제

ALTER TABLESPACE 변경전테이블스페이스명 RENAME TO 변경후테이블스페이스명;

 

ALTER TABLESPACE AIMIRPART201912 RENAME TO AIMIRPART201912M;


2.3 데이터파일

A. 데이터파일 추가

ALTER TABLESPACE 테이블스페이스명 ADD DATAFILE '/경로/DBF파일명'
SIZE ○○M AUTOEXTEND ON NEXT ○○M MAXSIZE ○○M;


a)
AIMIRPART

ALTER TABLESPACE AIMIRPART201912M ADD DATAFILE '/disk2/data/orcl1/AIMIRPART201912M_11.DBF'

SIZE 10000M AUTOEXTEND ON NEXT 10000M MAXSIZE 10000M;

 

b) AIMIRDAT

ALTER TABLESPACE AIMIRDAT ADD DATAFILE '/disk2/data/orcl1/AIMIRDAT011.dbf'
SIZE 10000M AUTOEXTEND ON NEXT 2000M MAXSIZE 10000M;

 

c) AIMIRIDX

ALTER TABLESPACE AIMIRIDX ADD DATAFILE '/disk2/data/orcl1/AIMIRIDX031.DBF'

SIZE 10000M AUTOEXTEND ON NEXT 2000M MAXSIZE 32000M;

 

 

B. 데이터파일 삭제

ALTER TABLESPACE 테이블스페이스명 DROP DATAFILE '/경로/DBF파일명';


ALTER TABLESPACE AIMIRPART201912M DROP DATAFILE '/disk2/data/orcl1/AIMIRPART201912M_11.DBF';

 

 

C. 데이터파일명 변경

ALTER 테이블스페이스명 RENAME DATAFILE '변경전데이터파일' TO '변경후데이터파일';

ALTER AIMIRPART201912M RENAME DATAFILE '/disk2/data/orcl1/AIMIRPART201812M_11.DBF' TO '/disk2/data/orcl1/AIMIRPART201912M_11.DBF';

 

P.S. 바이트 계산기
 https://ko.calcuworld.com/%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4/%EB%B0%94%EC%9D%B4%ED%8A%B8-%EA%B3%84%EC%82%B0%EA%B8%B0/


2.4 파티션

각 테이블별 파티셔닝 정보를 기술하고 파티션 정보 관리하는 방법을 기술한다.

 

2.4.1 파티셔닝 정보

SELECT TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER = 'AIMIR';

PARTITION TABLE NAME PARTITION TYPE DURATION
AIMIRPART- LP_EM
DAY_EM
MONTH_EM
ECG_STS_LOG
BILLING_BLOCK_TARIFF
METERINGDATA_EM
EVENTALERTLOG
COMMLOG
POWER_QUALITY
METEREVENT_LOG
RANGE

1
AUDITLOG 3
AIMIRHASH- DEPOSIT_HISTORY
PREPAYMENTLOG
HASH  
AIMIRDAT AIMIRPART, AIMIRHASH를 제외한 나머지 데이터 (DEBTLOG, METER, ROLE etc)    

 

a) 테이블 선택, 마우스 우 클릭 → 'Edit' 버튼 클릭

 

 

반응형

공유

댓글