MySQL용 Aurora 호환 로컬 스토리지에 무엇이 저장되며, 로컬 스토리지 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 5월 26일

Amazon Aurora MySQL 호환은 로컬 스토리지에 무엇을 저장하며 스토리지 용량 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

Aurora 클러스터의 인스턴스에는 두 가지 유형의 스토리지가 있습니다.

  • 영구 데이터 스토리지(클러스터 볼륨이라고 함). 이 스토리지 유형은 더 많은 공간이 필요할 때 자동으로 증가합니다. 자세한 내용은 클러스터 볼륨에 포함된 항목을 참조하세요.
  • 인스턴스 클래스를 기반으로 한 클러스터의 각 Aurora 인스턴스에 대한 로컬 스토리지입니다. 이 스토리지 유형 및 크기는 인스턴스 클래스에 의해 결정되며, 더 큰 DB 인스턴스 클래스로 이동해야만 변경될 수 있습니다. MySQL용 Aurora는 오류 로그, 일반 로그, 느린 쿼리 로그, 감사 로그 및 InnoDB가 아닌 임시 테이블을 저장하기 위해 로컬 스토리지를 사용합니다.

로컬 스토리지 크기에 대한 자세한 내용과 각 인스턴스 크기에 사용할 수 있는 최대 스토리지 양을 확인하려면 Aurora MySQL의 임시 스토리지 제한을 참조하세요.

해결 방법

무료 스토리지 용량 부족 오류

무료 스토리지 한도에 도달하면 다음과 같은 오류가 나타날 수 있습니다.

"DB Instance: instance-name의 사용 가능한 스토리지 용량이 프로비저닝된 스토리지의 x%[프로비저닝된 스토리지: xxGB, 사용 가능한 스토리지: xxGB]로 적습니다. 프로비저닝된 스토리지를 늘려 이 문제를 해결할 수 있습니다.

로컬 스토리지는 임시 테이블 및 로그 파일과 같은 비영구 데이터를 로컬 스토리지에 저장할 때 용량 한계에 도달할 수 있습니다. ALTER TABLE 명령이 실행 중이거나 과도한 임시 테이블을 저장하고 있는지 확인하세요. ALTER 명령 및 임시 테이블을 최적화하여 로컬 스토리지 사용량을 줄일 수 있습니다. 다음과 같은 명령을 여러 번 실행하여 인스턴스에서 임시 테이블 수를 확인할 수 있습니다.

SHOW GLOBAL STATUS LIKE 'created_tmp%tables';

특정 시간 범위 동안 생성된 임시 테이블 수를 모니터링하기 위해 GoSH를 활성화할 수 있습니다. 이를 통해 추가 분석을 위해 나중에 검토할 수 있는 테이블에 서버 상태 변수를 저장할 수 있습니다.

사용 가능한 무료 메모리의 양을 결정하려면 FreeableMemory에 대한 Amazon CloudWatch 지표를 검토하세요. 그런 다음, 감사 로그, 일반 로그 또는 느린 쿼리 로그가 해당 공간을 사용하는지 확인합니다. FreeLocalStorage에 대한 CloudWatch 지표를 사용하여 Aurora 인스턴스와 관련된 로컬 스토리지 공간을 모니터링할 수 있습니다. 자세한 내용은 Amazon Aurora 클러스터의 지표 모니터링을 참조하세요.

저장 공간이 더 필요하면 로컬 스토리지 양을 늘릴 수 있습니다. 로컬 스토리지를 늘리려면 DB 인스턴스 클래스를 늘려야 합니다. 자세한 내용은 Aurora DB 인스턴스 클래스를 참조하세요.

max_heap_table_sizetmp_table_size 파라미터의 값을 늘릴 수도 있습니다. 이러한 파라미터를 수정하면 디스크로 유출되는 데이터 양이 줄어들어 사용되는 로컬 스토리지의 양을 줄일 수 있습니다. 인스턴스에 첨부된 파라미터 그룹에서 이 파라미터를 수정할 수 있습니다. 자세한 내용은 파라미터 그룹 작업을 참조하세요.

참고: max_heap_table_sizetmp_table_size의 값을 늘리면 테이블은 인스턴스에서 더 많은 메모리를 소비합니다. 이 값을 늘릴 경우, 인스턴스에 사용 가능한 메모리가 충분한지 확인하십시오. FreeableMemory에 대한 CloudWatch 지표를 사용하여 사용 가능한 메모리를 모니터링할 수 있습니다.

ERROR 1114 테이블 가득 참

MySQL이 ALTER TABLE과 같은 연산을 수행하면 새로운 스키마를 통해 중간 임시 테이블을 생성합니다. 그런 다음, MySQL은 이전 테이블을 삭제하기 전에 중간 테이블에 데이터를 로드합니다. 중간 테이블은 로컬 스토리지를 사용할 수 있습니다. 중간 테이블에 가용한 양보다 더 많은 스토리지가 필요한 경우 다음과 같은 오류가 발생할 수 있습니다.

"ERROR 1114 (HY000): 테이블 'table-name'이 가득 참"

이 오류를 해결하려면 인스턴스를 일시적으로 확장하여 로컬 스토리지를 늘립니다. ALTER TABLE 작업이 완료되면 인스턴스 클래스의 크기를 줄일 수 있습니다. 로컬 스토리지를 늘리려면 Aurora 인스턴스 클래스를 늘려야 합니다. 자세한 내용은 Aurora DB 인스턴스 클래스를 참조하세요.