본문
#테이블스페이스 #데이터파일 관리
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를 비교하여 데이터파일 추가 여부를 판단한다.
※ 여기서 잠깐!
테이블스페이스 또는 데이터파일을 추가하기 전! 먼저 사용 가능한 서버의 디스크 공간을 확인한다.
-. 잔여 공간 확인: 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';
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' 버튼 클릭
댓글