언두 테이블스페이스 크기 관리
2025. 2. 13. 00:03ㆍIT/Oracle
반응형
언두 테이블스페이스 기본 관리 원칙
1. 언두 테이블스페이스 크기 관리
- 언두 테이블스페이스의 적절한 크기를 설정해야 합니다. 이는 시스템의 트랜잭션 크기와 동시 사용자 수에 따라 달라집니다.
- 권장 크기는 일반적으로 트랜잭션 크기 × 동시 사용자 수 × 4입니다.
현재 언두 테이블스페이스 확인
SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
FROM dba_data_files
WHERE tablespace_name LIKE 'UNDO%';
크기 조정
ALTER DATABASE DATAFILE '/path_to_undo_file/undotbs01.dbf' RESIZE 2G;
추가 데이터파일 추가
ALTER DATABASE
ADD DATAFILE '/path_to_undo_file/undotbs02.dbf' SIZE 1G AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
2. 자동 확장 설정
언두 테이블스페이스를 자동 확장(AUTOEXTEND) 모드로 설정하면 트랜잭션 증가로 인해 언두 공간이 부족해지는 문제를 방지할 수 있습니다.
확인 및 설정
SELECT file_name, autoextensible
FROM dba_data_files
WHERE tablespace_name LIKE 'UNDO%';
-- 자동 확장 활성화
ALTER DATABASE DATAFILE '/path_to_undo_file/undotbs01.dbf' AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
3. 언두 보존 기간 설정
언두 보존 기간(UNDO_RETENTION)은 오라클이 언두 데이터를 보존하려는 최소 시간을 설정합니다.
이 값을 적절히 설정하면 롤백과 읽기 일관성 문제를 방지할 수 있습니다.
확인 및 설정
SHOW PARAMETER undo_retention;
-- 기본값(900초)을 변경:
ALTER SYSTEM SET undo_retention = 1800;
활용 사례
- OLTP 시스템: 짧은 UNDO_RETENTION 설정(예: 300~900초).
- DSS/데이터웨어하우스: 긴 UNDO_RETENTION 설정(예: 3600초 이상)
언두 테이블스페이스 모니터링
1. 언두 사용량 확인
현재 언두 테이블스페이스의 사용량을 모니터링하여 충분한 공간이 확보되었는지 확인합니다.
SELECT tablespace_name,
file_name,
bytes/1024/1024 AS size_mb,
maxbytes/1024/1024 AS max_size_mb,
autoextensible
FROM dba_data_files
WHERE tablespace_name LIKE 'UNDO%';
언두 사용량 분석
SELECT a.tablespace_name,
b.status,
SUM(a.bytes) / 1024 / 1024 AS used_mb
FROM dba_undo_extents a, v$rollstat b
WHERE a.segment_id = b.usn
GROUP BY a.tablespace_name, b.status;
2. 언두 알림 설정
언두 테이블스페이스 부족을 사전에 감지하려면 알림을 설정할 수 있습니다.
공간 임계값 설정
BEGIN
DBMS_SERVER_ALERT.SET_THRESHOLD(
metrics_id => DBMS_SERVER_ALERT.TABLESPACE_USAGE,
warning_level => 85,
critical_level => 95,
observation_period => 1,
consecutive_occurrences => 3,
instance_number => 1,
object_type => DBMS_SERVER_ALERT.OBJECT_TYPE_TABLESPACE,
object_name => 'UNDOTBS1'
);
END;
/
언두 테이블스페이스 문제 해결
1. 언두 테이블스페이스가 부족할 때
언두 공간이 부족하면 "ORA-30036: unable to extend segment in undo tablespace" 오류가 발생할 수 있습니다.
해결 방법
- 언두 테이블스페이스 확장
ALTER DATABASE DATAFILE '/path_to_undo_file/undotbs01.dbf' RESIZE 4G;
2. 자동 확장 활성화
ALTER DATABASE DATAFILE '/path_to_undo_file/undotbs01.dbf' AUTOEXTEND ON;
2. 불필요한 언두 테이블스페이스 제거
기존 언두 테이블스페이스를 삭제하려면
- 새 언두 테이블스페이스 생성
CREATE UNDO TABLESPACE undotbs2 DATAFILE '/path_to_undo_file/undotbs2.dbf' SIZE 1G AUTOEXTEND ON;
2. 새 언두 테이블스페이스 활성화
ALTER SYSTEM SET UNDO_TABLESPACE = undotbs2;
3. 기존 언두 테이블스페이스 삭제
DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES;
반응형
'IT > Oracle' 카테고리의 다른 글
| BETWEEN으로 존재하지 않는 파티션 데이터 조회 (1) | 2025.02.14 |
|---|---|
| Job Number 조회(ㅇ) (1) | 2025.02.14 |
| INSERT SELECT 성능 개선 기본 전략(ㅇ) (1) | 2025.02.13 |
| 오라클 코멘트 조회 (1) | 2025.02.12 |
| 오라클 19c에서의 Spark 및 하둡 통합 강화 의미 (2) | 2025.02.12 |