Amazon RDS for Oracle DB 인스턴스의 스토리지를 관리하려면 어떻게 해야 합니까?
모범 사례를 사용하여 Amazon Relational Database Service(Amazon RDS) for Oracle DB 인스턴스의 스토리지를 관리하려고 합니다.
간략한 설명
Amazon RDS for Oracle DB 인스턴스에서 스토리지가 꽉 참 상태를 방지하려면 여러 단계를 거쳐야 합니다. DB 인스턴스에서 스토리지가 꽉 참이 발생하면 인스턴스 로그인이 정지되고 데이터베이스 증가가 중단됩니다. 사용 가능한 스토리지를 늘릴 때까지 추가 스토리지를 확보하기 위한 확장 프로그램은 다음과 유사한 오류로 실패합니다.
"ORA-27061: waiting for async I/Os failed
Error: Linux-x86_64 Error: 28: No space left on device"
해결 방법
FreeStorageSpace 지표 모니터링
FreeStorageSpace의 급격한 감소는 데이터베이스 사용량이 증가하여 스토리지가 꽉 참 상태로 전환될 수 있음을 나타냅니다. FreeStorageSpace가 감소하고 DB 인스턴스가 할당된 스토리지의 90% 이상을 사용하는 경우 데이터베이스에서 LOW_STORAGE 이벤트가 발생합니다. 오토 스케일링을 활성화한 경우 인스턴스가 스토리지 공간을 추가합니다.
Amazon CloudWatch 알람을 생성하여 FreeStorageSpace 지표를 모니터링하고 스토리지 공간이 임계값에 도달하면 알려줍니다.
자동 확장된 모든 테이블스페이스 검토
RDS for Oracle DB 인스턴스의 기본 테이블스페이스 유형은 AUTOEXTEND가 on일 때 bigfile입니다. bigfile 테이블스페이스의 최대 크기는 16TiB입니다. 테이블스페이스는 테이블스페이스의 최대 할당량 또는 DB 인스턴스에 할당된 스토리지까지 증가합니다. 할당된 스토리지가 가득 차면 인스턴스가 스토리지가 꽉 참 상태로 전환되며 테이블스페이스를 확장할 수 없습니다. 자세한 내용은 Oracle 웹사이트의 테이블스페이스 자동 확장을 참조하십시오.
애플리케이션의 요구 사항에 따라 테이블스페이스 확장을 계획하는 것이 좋습니다. 대량 로드 전에 스토리지가 꽉 참 문제를 피하려면 테이블스페이스의 크기를 조정하거나 더 많은 공간을 할당하십시오. 스토리지 규모를 조정하면 일반적으로 DB 인스턴스 성능에 영향을 주지 않으며 중단도 발생하지 않습니다. 스토리지 크기를 수정한 후 DB 인스턴스는 스토리지 최적화 상태가 됩니다.
참고: DB 인스턴스를 수정하기 전에 Amazon RDS DB 인스턴스용 스토리지 사용을 참조하십시오.
Amazon RDS의 Oracle 파일 크기 할당량 확인
RDS for Oracle DB 인스턴스에 있는 단일 파일의 최대 크기는 16TiB입니다. 이 할당량을 초과하여 bigfile 테이블스페이스의 데이터 파일 크기를 조정하면 다음과 유사한 오류가 발생합니다.
"ORA-01237: cannot extend datafile 6
ORA-01110: data file 6: '/rdsdbdata/db/mydir/datafile/myfile.dbf'ORA-27059:
could not reduce file sizeLinux-x86_64 Error: 27:
File too largeAdditional information: 2"
"스토리지 할당량 초과" 오류 해결
AWS 계정 수준에서 할당된 스토리지가 할당량에 도달한 경우 새 RDS DB 인스턴스를 생성하려고 하면 다음과 유사한 오류가 발생합니다.
"Storage quota exceeded by <x>; requested size: <x>"
이 오류를 해결하려면 할당량 증가를 요청하거나 사용하지 않는 백업을 삭제하여 계정의 공간을 즉시 확보하십시오.
BDUMP 디렉터리를 차지하는 대용량 추적 파일 관리
BDUMP 디렉터리에 대용량 추적 파일이 생성되는 경우가 있습니다. 이러한 파일은 스토리지를 차지하며 보존 정책에 따라 제거됩니다. 또한 DB 인스턴스에서 스토리지가 꽉 참 상태가 발생하는 요인이 될 수 있습니다.
추적 파일은 누적되어 디스크 공간을 사용할 수 있습니다. 기본적으로 Amazon RDS는 7일이 경과된 추적 파일과 로그 파일을 지웁니다. 추적 파일 보존 기간을 설정하려면 show_configuration을 사용하십시오. 구성 결과를 보려면 SET SERVEROUTPUT 명령을 실행하십시오.
추적 파일을 관리하는 방법에 대한 자세한 내용은 Oracle 데이터베이스 로그 파일을 참조하십시오.
BDUMP 디렉터리의 파일을 크기별로 정렬하려면 다음과 유사한 명령을 실행합니다.
select FILENAME, FILESIZE/1024/1024/1024"GB",MTIME from TABLE (rdsadmin.rds_file_util.listdir(p_directory => 'BDUMP')) order by 3 desc
사용하지 않는 파일을 식별한 후 fremove dbms 패키지를 사용하여 추적 파일 보존에서 대용량 파일을 삭제합니다.
exec UTL_FILE.FREMOVE ('BDUMP',' <TRACEFILENAME');
다음 예에서는 현재 추적 파일 보존 기간을 보여 준 다음, 새 추적 파일 보존 기간을 설정합니다.
# Show the current tracefile retentionSQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retentionVALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours:SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440);SQL> commit; #show the new tracefile retentionSQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retentionVALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
DATA_PUMP_DIR 디렉터리를 사용하는 대규모 Data Pump Directory 관리
Oracle Data Pump를 사용하여 데이터를 이동하는 경우 사용 가능한 저장 공간을 줄이는 대용량 덤프 파일을 복사할 수 있습니다. 이 문제를 해결하려면 Amazon RDS for Oracle을 Amazon Elastic File System(Amazon EFS)과 통합하십시오. 이 설정을 사용하면 데이터베이스를 새로 고치기 위해 DATA_PUMP_DIR을 사용할 필요가 없습니다.
아카이브 로그 보존 확인
Amazon RDS는 PITR 목적의 백업 보존을 기반으로 아카이브 로그를 내부 스토리지에 백업합니다. RDS for Oracle에 대한 아카이브 로그 보존 설정에 따라 RDS 스토리지에 로컬로 저장된 아카이브 로그는 할당된 스토리지를 사용하는 요인이 됩니다.
아카이브된 redo 로그를 유지하려면 다음 파라미터를 사용하여 rdsadmin.rdsadmon_util.set_configuration을 실행합니다.
begin rdsadmin.rdsadmin_util.set_configuration( name => 'archivelog retention hours', value => '24'); end; / commit;
NAME:archivelog retention hours VALUE:24 DESCRIPTION:ArchiveLog expiration specifies the duration in hours before archive/redo log files are automatically deleted.
특정 기간 동안 DB 인스턴스가 사용한 공간을 확인하려면 다음 쿼리를 실행합니다. X를 쿼리하려는 시간 수로 바꾸십시오.
SELECT SUM(BLOCKS * BLOCK_SIZE) bytes FROM V$ARCHIVED_LOG WHERE FIRST_TIME >= SYSDATE-(X/24) AND DEST_ID=1;
보관된 아카이브 로그를 보려면 다음 명령을 실행하여 디렉터리 개체를 ARCHIVELOG_DIR로 생성합니다.
EXEC rdsadmin.rdsadmin_master_util.create_archivelog_dir;
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'ARCHIVELOG_DIR'));
데이터베이스에 조각화된 개체가 있는지 확인
조각화로 인해 데이터베이스 속도가 느려지고 불필요한 스토리지 공간이 사용됩니다. 조각화되어 공간을 가장 많이 사용하는 개체를 식별하려면 다음과 유사한 명령을 실행합니다.
select owner,table_name,round((blocks8),2)/1024 "size (mb)" , round((num_rowsavg_row_len/1024/1024),2) "actual_data (mb)", (round((blocks8),2) - round((num_rowsavg_row_len/1024/1024),2)) "wasted_space (mb)" from dba_tables where (round((blocks8),2) > round((num_rowsavg_row_len/1024/1024),2)) and owner='&schema_name' order by 4 desc;
조각화를 제거하려면 내보내기 및 가져오기를 사용하거나, 테이블을 다시 생성하거나, 테이블을 새 테이블스페이스로 이동할 수 있습니다.
참고: 사용 가능한 스토리지 지표는 조각화된 개체를 비우고 새 테이블스페이스로 이동한 후 조각화된 테이블스페이스를 삭제할 때만 영향을 받습니다.
AWR을 사용하여 DB 인스턴스의 성장 추세 분석
Oracle Enterprise 에디션에서는 AWR Explorer를 사용하여 과거 정보를 쿼리하고 데이터베이스의 성장 추세를 분석할 수 있습니다. 특정 기간(일수) 동안 개체 유형별 데이터베이스 스키마의 성장을 확인하려면 다음 명령을 실행합니다.
title "Total Disk Used by Object Type" select c.segment_type, sum(space_used_delta) / 1024 / 1024 "Space used (M)", sum(c.bytes) / 1024 / 1024 "Total Space (M)", round(sum(space_used_delta) / sum(c.bytes) * 100, 2) || '%' "Percent of Total Disk Usage" from dba_hist_snapshot sn, dba_hist_seg_stat a, dba_objects b, dba_segments c where end_interval_time > trunc(sysdate) - &days_back and sn.snap_id = a.snap_id and b.object_id = a.obj# and b.owner = c.owner and b.object_name = c.segment_name and space_used_delta > 0 and c.owner = '&schema_name' group by rollup(segment_type);
다른 방법 구현
다음 방법을 구현하여 인스턴스에서 스토리지가 꽉 참 상태를 방지할 수 있습니다.
- DB 인스턴스의 상태를 쿼리하려면 Amazon RDS를 모니터링하는 지표를 사용합니다.
- DB 인스턴스의 상태를 정기적으로 확인합니다.
- 워크로드가 주기적이거나 예측할 수 없는 경우 DB 인스턴스의 스토리지 오토 스케일링을 활성화합니다.
- Amazon RDS 이벤트 카테고리 및 이벤트 메시지에서 RDS-EVENT-0007 및 RDS-EVENT-0089를 검토합니다.
관련 항목
Amazon RDS DB 인스턴스의 프로비저닝된 전체 스토리지 크기를 줄이려면 어떻게 해야 합니까?
Amazon RDS for Oracle DB 인스턴스가 예상보다 많은 스토리지를 사용하는 이유는 무엇입니까?
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 3년 전