728x90

테이블 스페이스란

테이블 공간을 의미하며 데이터 공간이라고 말한다.

스토리지

데이터베이스의 데이터가 저장되는 공간

블록

블록은 오라클 데이터 베이스에 저장되는 논리적인 최소 단위이다. 블록 사이즈의 기본값은 8k 8192byte이다.

show parameter db_block_size

익스텐트

익스텐트는 여러 개의 블록들이 모여있는 집합이다. 하나의 익스텐트는 여러 개의 블록을 가질 수 있다.

세그먼트

세그먼트는 한개 이상의 익스텐트를 가지고 있다. 여러 개의 익스텐트가 모인 집합을 의미한다.

테이블 스페이스

여러 개의 세그먼트가 모이면 테이블 스페이스라고 한다. 테이블 스페이스는 논리적인 가장 큰 집합이다.

오라클 DB 기본 값 구성

오라클 DB를 기본 값으로 구성하면 5개의 테이블 스페이스와 데이터 파일이 만들어진다.

내 로컬 경로는 /opt/oracle/oradata/XE/이다.

SELECT
	TABLESPACE_NAME,
	FILE_NAME,
	BYTES/1024/1024 AS "SIZE(MB)"
FROM DBA_DATA_FILES
UNION ALL
SELECT
	TABLESPACE_NAME,
	FILE_NAME,
	BYTES/1024/1024
FROM DBA_TEMP_FILES
ORDER BY 1;
  1. SYSTEM : /oracle/app/oracle/oradata/DB이름/system01.dbf
    • 오라클 내부의 중요한 데이터를 저장하는 데이터 딕셔너리 테이블이 저장되는 장소
  2. SYSAUX : /oracle/app/oracle/oradata/DB이름/sysaux01.dbf
    • 대표적으로 AWR이 저장되는 장소이다. 그 외의 다른 것도 있다.
  3. USERS : /oracle/app/oracle/oradata/DB이름/users01.dbf
    • 오라클의 기본 계정의 데이터가 저장되어 있는 공간이다.
  4. UNDOTBS1 : /oracle/app/oracle/oradata/DB이름/undotbs01.dbf
    • 데이터 읽기 일관성이나 데이터 변경 작업을 했을 때 필요한 장소이다.
  5. TEMP : /oracle/app/oracle/oradata/DB이름/temp01.dbf
    • 메모리에 맞지 않는 여러 정렬 작업을 동시에 할 수 있는 아주 중요한 임시 공간이다.

DBA_SEGMENTS를 이용해 내부 테이블 인덱스를 조회

SELECT
    OWNER,
    SEGMENT_NAME,
    SEGMENT_TYPE,
    SEGMENT_SUBTYPE,
    TABLESPACE_NAME,
    BYTES,
    BLOCKS,
    EXTENTS
FROM DBA_SEGMENTS
WHERE SEGMENT_NAME IN ('WRH$_SQL_PLAN','WRH$_SQL_PLAN_PK','IDL_UB1$')
ORDER BY 1,2;

 

세그먼트 서브 타입 MSSM

Manual Segment Space Management으로 수동으로 세그먼트를 관리한다.

세그먼트 서브 타입 ASSM(Default)

Automatic Segment Space Management으로 자동으로 세그먼트를 관리한다.

옛날에는 MSSM을 사용하였지만 요즘엔 ASSM으로 많이 사용한다.

테이블 스페이스 데이터 파일 사이즈 변경

ALTER DATABASE DATAFILE '파일명' RESIZE 1G;

테이블 스페이스 데이터 파일 추가

ALTER DATABASE ADD DATAFILE  '파일명' SIZE 1G;

테이블 스페이스 생성

CREATE TABLESPACE 이름 DATAFILE '파일명' SIZE 1G AUTOEXTEND OFF;

테이블 스페이스를 MSSM으로 구성

CREATE TABLESPACE 이름 DATAFILE '파일명' SIZE 1G SEGMENT SPACE MANAGEMENT MANUAL;

테이블 스페이스를 ASSM으로 구성

CREATE TABLESPACE 이름 DATAFILE '파일명' SIZE 1G SEGMENT SPACE MANAGEMENT AUTO;

테이블 스페이스 상태 정보 확인

SELECT
    TABLESPACE_NAME,
    BLOCK_SIZE,
    SEGMENT_SPACE_MANAGEMENT
FROM DBA_TABLESPACES 

보통 DB 관리는 80% 사용을 할 때 데이터 파일을 늘려준다.

참고

https://www.youtube.com/watch?v=aTfu6zx2b28&list=PLKaW9UT2TL3Lpqrh_lJ8PHyHpR7NgdrPP&index=1 

 

728x90

+ Recent posts