RDS for Oracle에서 테이블스페이스 축소
Oracle Database 26ai(26.0.0.0)부터 Amazon RDS for Oracle은 rdsadmin.rdsadmin_util.shrink_tablespace 프로시저로 테이블스페이스 축소를 지원합니다. 이 프로시저를 사용하여 데이터 파일을 축소함으로써 테이블스페이스에서 미사용 공간을 회수합니다. 축소는 데이터 마이그레이션 또는 테이블스페이스 재생성 없이 스토리지 사용을 줄입니다.
개요
시간이 지남에 따라 Oracle 데이터베이스의 테이블스페이스에 삭제 또는 재구성된 데이터로 인해 미사용 공간이 누적될 수 있습니다. rdsadmin.rdsadmin_util.shrink_tablespace 프로시저는 Oracle DBMS_SPACE.SHRINK_TABLESPACE 기능을 래핑하고 필요한 내부 권한을 처리합니다.
테이블스페이스 축소는 다음 모드를 지원합니다.
-
분석 모드(
DBMS_SPACE.TS_MODE_ANALYZE) – 테이블스페이스를 평가하여 변경 없이 회수할 수 있는 공간의 양을 보고합니다. -
축소 모드(
DBMS_SPACE.TS_MODE_SHRINK) – 객체를 이동하고 테이블스페이스의 데이터 파일 크기를 조정하여 미사용 공간을 회수합니다. 이것이 기본 모드입니다.
요구 사항
테이블스페이스 축소를 사용하려면 DB 인스턴스가 다음 요구 사항을 충족해야 합니다.
-
Oracle Database 26ai 이상
-
Oracle Enterprise Edition
구문
EXEC rdsadmin.rdsadmin_util.shrink_tablespace( p_tablespace_name => 'tablespace_name', p_shrink_mode =>mode, p_target_size =>target_bytes);
파라미터
| 파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
|---|---|---|---|---|
|
|
|
— |
예 |
축소할 테이블스페이스의 이름입니다. |
|
|
|
|
아니요 |
축소 모드입니다. 분석만 수행하려면 |
|
|
|
|
아니요 |
대상 크기(바이트)입니다. 가능한 최소 크기로 축소하려면 |
예제
테이블스페이스에서 회수 가능한 공간 분석
테이블스페이스를 변경하지 않고 분석하려면 다음 명령을 실행합니다.
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_ANALYZE);
다음은 예제 출력입니다.
-------------------ANALYZE RESULT------------------- Total Movable Objects: 0 Total Movable Size(GB): 0 Original Datafile Size(GB): .1 Suggested Target Size(GB): .06 Process Time: +00 00:00:00.021513
테이블스페이스를 최소 크기로 축소
테이블스페이스를 축소하고 모든 미사용 공간을 회수하려면 다음 명령을 실행합니다.
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS');
다음은 예제 출력입니다.
-------------------SHRINK RESULT------------------- Total Moved Objects: 0 Total Moved Size(GB): 0 Original Datafile Size(GB): .1 New Datafile Size(GB): .05 Process Time: +00 00:00:00.281151
테이블스페이스를 특정 대상 크기로 축소
테이블스페이스를 바이트 단위의 대상 크기로 축소하려면 p_target_size 파라미터를 지정합니다. 대상이 달성 가능한 최소 크기보다 작은 경우 Oracle은 자동으로 크기를 상향 조정합니다.
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_SHRINK, 52428800);
고려 사항
테이블스페이스를 축소할 때는 다음 사항을 고려하세요.
-
테이블스페이스 축소는 온라인 작업입니다. 축소 중에 테이블스페이스의 객체에 계속 액세스할 수 있습니다.
-
축소 작업은 데이터 파일의 크기를 조정하기 전에 테이블스페이스 내에서 테이블 및 인덱스와 같은 객체를 이동하여 여유 공간을 통합할 수 있습니다.
-
인덱스는 축소 작업 후에도 유효하며 데이터 무결성이 유지됩니다.
-
p_target_size의 값이 객체가 현재 차지하는 공간보다 작으면 Oracle은 달성 가능한 최소 크기로 대상을 조정합니다. -
p_target_size의 값은 현재 테이블스페이스 크기를 초과해서는 안 됩니다. 현재 크기보다 작거나 같은 대상을 지정합니다. -
테이블스페이스의 객체에 대한 활성 트랜잭션으로 인해 작업이 사용 가능한 공간을 모두 회수하지 못할 수 있습니다. 최상의 결과를 얻으려면 활동이 적은 기간 동안 축소를 실행하세요.
-
rdsadmin_util래퍼 없이DBMS_SPACE.SHRINK_TABLESPACE를 직접적으로 호출하는 것은 지원되지 않습니다. 항상rdsadmin.rdsadmin_util.shrink_tablespace래퍼를 사용해야 합니다.
관련 리소스
-
Oracle Database 설명서의 DBMS_SPACE.SHRINK_TABLESPACE
-
자세한 내용은 Oracle DB 인스턴스에 대한 공통 데이터베이스 작업 수행 섹션을 참조하세요.