오라클 테이블스페이스(Tablespace) 구조와 관리

데이터베이스 성능 최적화와 안정적인 운영의 출발점은 바로 테이블스페이스를 어떻게 설계하고 관리하느냐에 달려 있다. 테이블스페이스는 논리적인 저장 단위로서, 용도와 관리 방식에 따라 그 특성이 명확히 구분된다. 오늘은 오라클을 중심으로 테이블스페이스의 분류와 핵심 관리 전략, 그리고 실무적인 운영 지침을 심층적으로 살펴본다.


1. 용도에 따른 테이블스페이스 분류: 시스템과 비시스템

테이블스페이스는 크게 시스템 운영을 위한 공간과 유저 데이터를 위한 공간으로 나뉜다.

① 시스템 테이블스페이스 (SYSTEM & SYSAUX)

  • SYSTEM 테이블스페이스: 데이터 딕셔너리 정보와 유저 오브젝트 정보를 저장하는 핵심 영역이다. DB 생성 시 필수이며 삭제가 불가능하다.

  • SYSAUX 테이블스페이스: 오라클 10g부터 도입된 보조 테이블스페이스이다. 과거 SYSTEM에 집중됐던 통계 정보나 AWR(Automatic Workload Repository) 데이터를 분산 저장하여 부하를 줄여주는 역할을 한다. 운영 중 SYSAUX 용량이 비정상적으로 늘어난다면 AWR 보관 주기(Retention)가 기본 설정보다 길게 잡혀 있지 않은지 점검해야 한다.

② 비시스템 테이블스페이스 (General, Temporary, Undo)

  • 일반 테이블스페이스: 실제 업무 데이터와 인덱스를 저장하는 공간이다.

  • 임시(Temporary) 테이블스페이스: 정렬(ORDER BY, GROUP BY) 작업 시 사용하는 공간이다. 대규모 인덱스 생성이나 대량 데이터 정렬 시 공간 부족 에러가 잦으므로, 작업 전 모니터링을 통해 필요시 파일을 추가하는 유연한 대응이 필요하다.

  • 언두(Undo) 테이블스페이스: 롤백을 위한 이전 이미지 데이터를 저장한다. 자동 관리 모드를 위해 지역 관리 방식으로 생성하는 것이 권장된다.


2. 성능을 결정짓는 익스텐트(Extent) 관리 방식

데이터 저장 단위인 익스텐트의 관리 방식은 데이터베이스 전체 성능에 직결된다.

  • 지역 관리(Locally Managed Tablespace, LMT): 데이터 파일 헤더의 비트맵(Bitmap)을 이용해 익스텐트 사용 여부를 자체 관리한다. 딕셔너리 조회가 필요 없어 성능이 우수하며, 현재 오라클에서 가장 권장하는 방식이다.

  • 딕셔너리 관리(Dictionary Managed): 과거 방식이다. 익스텐트 할당 시마다 시스템 테이블스페이스의 딕셔너리를 조회하므로 부하가 발생할 수 있다.


3. 효율적인 세그먼트 공간 관리 (ASSM vs Manual)

  • 자동 세그먼트 공간 관리(ASSM): 비트맵을 사용하여 세그먼트 내의 여유 공간을 자동으로 관리한다.

  • 수동 세그먼트 공간 관리: 프리리스트(Free List)를 통해 수동 관리하며 설정이 복잡할 수 있다는 차이가 있다.


4. 실무자를 위한 관리 팁 및 운영 전략

실제 데이터베이스를 운영하며 주의해야 할 핵심 사항은 다음과 같다.

  • 권한 관리의 엄격함: 일반 사용자가 SYSTEM 테이블스페이스를 점유하지 못하도록 유저 생성 시 QUOTA 옵션을 명확히 할당해야 한다. UNLIMITED TABLESPACE 권한은 관리자 계정 외에는 신중히 부여하는 것이 원칙이다.

  • 설정 우선순위 활용: 오라클 설정은 세그먼트 > 테이블스페이스 > DB 기본값 순으로 적용된다. 특정 대용량 테이블에만 별도의 스토리지 옵션이 필요하다면 세그먼트 수준에서 최적화하는 것이 효율적이다.

  • 생성 구문의 정석: 테이블스페이스 생성 시 LMT와 ASSM을 명시적으로 설정하는 습관이 중요하다.

-- 실무 권장형 테이블스페이스 생성 구문
CREATE TABLESPACE TS_DATA01
DATAFILE '/u01/app/oracle/oradata/DB10G/ts_data01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL   -- LMT 방식 명시
SEGMENT SPACE MANAGEMENT AUTO; -- ASSM 방식 명시

데이터베이스 운영의 성패는 초기 설계 단계에서 테이블스페이스를 얼마나 용도별로 잘 분리했느냐에 달려 있다. 데이터와 인덱스 공간을 분리하고, 정렬 작업의 특성을 고려한 Temp 설계를 마쳤다면 운영의 안정성을 확보한 것이나 다름없다. 이와 같은 체계적인 관리는 시스템 전체의 일관성과 성능을 유지하는 핵심 기반이 된다.

댓글 남기기