Amazon Relational Database Service(Amazon RDS) Oracle DB 인스턴스를 설정했는데 계속해서 예상 용량보다 늘어나고 있습니다. 이유는 무엇이고 해결하려면 어떻게 해야 합니까?

데이터베이스 기능에 필요한 작업을 수용하려면 임시 테이블스페이스가 크게 증가될 수 있습니다. RDS Oracle 데이터베이스는 모든 테이블스페이스에 대해 자동 확장이 활성화된 상태로 생성됩니다. 즉, 각 테이블스페이스는 추가 데이터를 수용하기 위해 필요한 작업이 더 이상 없거나 할당된 스토리지가 모두 사용되기 전까지 계속해서 증가합니다.

이 문제를 해결하려면 다음 단계를 완료하십시오.

테이블스페이스의 데이터에 할당된 공간의 양 찾기

1.    데이터에 할당된 공간의 양을 확인하고 임시 파일에 할당된 공간의 양과 비교합니다.

SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 AS GBYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME;
SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 AS GBYTES FROM dba_temp_files GROUP BY TABLESPACE_NAME; 

2.    데이터베이스에 할당된 여유 공간의 양을 확인합니다.

SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 AS GBYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;

3.    온라인 redo 로그에 할당된 공간의 양을 확인합니다.

SELECT SUM(bytes*members) bytes FROM v$log;

4.    control 파일에 할당된 공간의 양을 확인합니다.

SELECT SUM(block_size * file_size_blks) bytes FROM v$controlfile;

5.    audit ADUMP 및 trace/log 파일 BDUMP 디렉터리에 할당된 공간의 양을 확인합니다.

SELECT * FROM DBA_DIRECTORIES;

SELECT * FROM table(rdsadmin.rds_file_util.listdir('ADUMP'));

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP'));

SELECT SUM(FILESIZE)/1024/1024 as total_mb FROM table(rdsadmin.rds_file_util.listdir('ADUMP'));

SELECT SUM(FILESIZE)/1024/1024 as total_mb FROM table(rdsadmin.rds_file_util.listdir('BDUMP'));

필요한 것보다 많은 스토리지를 소비하는 테이블스페이스 축소

1.    예상보다 많은 스토리지를 사용하는 경우 더 적절한 값으로 파일 크기를 조정합니다. 예를 들어 temp 테이블스페이스가 100GB의 스토리지를 사용하는 경우 다음 명령을 실행하여 temp 테이블스페이스를 10GB로 축소합니다.

ALTER TABLESPACE temp RESIZE 10g;

참고: 테이블스페이스에 10GB 임계값을 초과하는 익스텐트가 할당된 경우 이 명령이 실패합니다. 명령을 재시도하고 크기 조정 파라미터에 대해 조금씩 더 큰 값을 지정하십시오. 또는 다음 명령을 실행하십시오.

ALTER TABLESPACE temp SHRINK SPACE KEEP 10g;

2.    조금씩 더 큰 값으로 크기 조정할 수 없는 경우 현재 임시 세그먼트가 할당되어 있는 세션을 종료합니다. 임시 세그먼트가 할당된 세션을 확인하려면 다음 쿼리를 실행합니다.

SELECT * FROM v$sort_usage;

3.    세션을 종료할 수 없는 경우 다른 단계를 고려합니다. 예를 들어 기본 temp2 테이블스페이스를 생성하고, 원래 temp 테이블스페이스를 삭제하고, 원하는 파라미터를 사용하여 새 기본 temp 테이블스페이스를 다시 생성한 다음, temp2 테이블스페이스를 삭제합니다.

4.    임시 테이블스페이스가 아닌 테이블스페이스의 경우 세그먼트를 이동하여 데이터 파일 끝의 공간을 확보하면 데이터 파일의 크기를 축소할 수 있습니다. 온라인 redo 로그에 할당된 테이블스페이스를 작업하는 경우 이 프로세스가 번거로울 수 있으며 테이블스페이스가 자동으로 지워지고 데이터 파일 축소 프로세스가 완료되기 전까지 시간이 조금 걸릴 수 있습니다.

5.    현재 아카이브 로그 및 추적 파일 보존 설정을 보려면 다음 명령을 실행합니다.

SET SERVEROUTPUT ON;
EXEC rdsadmin.rdsadmin_util.show_configuration; 

6.    인스턴스 아카이브 로그 파일의 크기를 확인하려면 다음 명령을 실행합니다.

select nvl(sum(BLOCKS * BLOCK_SIZE),0) bytes from V$ARCHIVED_LOG
  where FIRST_TIME >= SYSDATE-(replace_archivelog_retention_hours/24) and DEST_ID=1; 

7.    여유 공간을 확보하기 위해 제거할 수 있는 불필요한 .dmp 파일이 있는지 확인합니다. data_pump_dir에 가져오기 작업 후 지워지지 않은 .dmp 파일이 있는지 확인하려면 다음 쿼리를 실행합니다.

SELECT * FROM TABLE(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DATA_PUMP_DIR')) ORDER by mtime;

이 쿼리에서 .dmp 파일이 검색되면 다음 쿼리에서 해당하는 파일 이름을 지정하여 파일을 삭제할 수 있습니다.

EXEC utl_file.fremove('DATA_PUMP_DIR','[file name]');

페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2015년 10월 30일

업데이트된 날짜: 2018년 5월 4일