Aurora MySQL v3 Release Notes 정리

Aurora MySQL v3.08.0 – MySQL 8.0.39 호환 (2024-11-18)

Estimated reading: 3 minutes 142 views

공식 문서: Aurora MySQL database engine updates 2024-11-18 (version 3.08.0, compatible with MySQL 8.0.39)

버전: 3.08.0

Aurora MySQL 3.08.0이 정식 출시되었습니다. Aurora MySQL 3.08 버전은 MySQL 8.0.39와 호환됩니다. 커뮤니티 변경 사항에 대한 자세한 내용은 MySQL 8.0 릴리스 노트를 참조하십시오.

Aurora MySQL 버전 3의 새로운 기능에 대한 자세한 내용은 Aurora MySQL 버전 3, MySQL 8.0과 호환에서 확인할 수 있습니다. Aurora MySQL 버전 3과 버전 2의 차이점은 Aurora MySQL 버전 2와 버전 3 비교에서, Aurora MySQL 버전 3과 MySQL 8.0 커뮤니티 에디션의 비교는 Amazon Aurora 사용자 가이드의 Aurora MySQL 버전 3과 MySQL 8.0 커뮤니티 에디션 비교에서 확인할 수 있습니다.

현재 지원되는 Aurora MySQL 릴리스는 2.11.*, 2.12.*, 3.04.*, 3.05.*, 3.06.*, 3.07.*, 그리고 3.08.* 입니다.

현재 지원되는 모든 Aurora MySQL 버전 2 클러스터에서 Aurora MySQL 버전 3.08.0 클러스터로 in-place 업그레이드를 수행하거나, 스냅샷을 복원하거나, Amazon RDS 블루/그린 배포 기능을 통해 관리형 블루/그린 업그레이드를 진행할 수 있습니다.

Aurora MySQL 버전 3으로의 업그레이드 계획에 대한 정보는 Amazon Aurora 사용자 가이드의 Aurora MySQL 클러스터의 주요 버전 업그레이드 계획에서 확인할 수 있습니다. Aurora MySQL 업그레이드에 대한 일반 정보는 Amazon Aurora MySQL DB 클러스터 업그레이드에서 확인할 수 있습니다.

문제 해결 정보는 Amazon Aurora 사용자 가이드의 Aurora MySQL in-place 업그레이드 문제 해결에서 확인할 수 있습니다.

질문이나 우려 사항이 있는 경우, 커뮤니티 포럼과 AWS 지원 페이지를 통해 통해 AWS의 지원을 받을 수 있습니다. 자세한 내용은 Amazon Aurora 사용자 가이드의 Amazon Aurora DB 클러스터 유지 관리에서 확인할 수 있습니다.

새로운 기능

  • InnoDB 퍼지(purge) 프로세스를 모니터링할 수 있도록 다음 세 가지 Amazon CloudWatch 지표가 추가되었습니다.
  • 퍼지 경계(purge boundary)를 지연시킬 수 있는 장기 실행 트랜잭션을 파악하기 위해 TransactionAgeMaximum이라는 새로운 CloudWatch 지표가 추가되었습니다. 자세한 내용은 Amazon CloudWatch metrics for Amazon Aurora를 참조하십시오.
  • OOM(Out Of Memory) 회피를 위한 다음 세 가지 CloudWatch 지표가 추가되었습니다.
  • OOM 회피와 관련된 다음 세 가지 CloudWatch 지표가 누적(running total)에서 증분(incremental) 카운터로 변경되었습니다.
  • 내부 임시 테이블에 사용되는 메모리 양을 보여주는 두 개의 글로벌 상태 변수(global status variables), aurora_temptable_ram_allocationaurora_temptable_max_ram_allocation이 추가되었습니다. 이 변수들은 내부 임시 테이블 메모리 사용량을 더 잘 관찰하고 문제를 진단하는 데 도움이 됩니다.
    자세한 내용은 Aurora MySQL global status variables을 참조하십시오.
  • 서버가 메모리에서 옵티마이저 트레이스(optimizer traces)를 정리(purge)하기 전에 에러 로그에 트레이스를 출력하도록 하는 새로운 시스템 변수 aurora_optimizer_trace_print_before_purge가 도입되었습니다. 정리는 optimizer_trace_offset, optimizer_trace_limit 시스템 변수에 설정된 임계값에 따라 트리거될 수 있습니다. 옵티마이저 트레이스에 대한 자세한 내용도 참고하십시오.
  • 다음 DB 인스턴스 클래스를 지원합니다:

개선 사항

보안 문제 및 CVE 수정:

이번 릴리스에는 MySQL 8.0.39를 포함하여 해당 버전까지의 모든 커뮤니티 CVE 수정이 적용되었습니다. 아래 CVE 수정 사항들이 포함되어 있습니다:

가용성 개선 사항:

  • 이미 즉시 드롭(instantly dropped)된 컬럼이 포함된 테이블에서 DML(Data Manipulation Language) 명령을 실행했을 때, 드롭된 컬럼과 드롭되지 않은 컬럼의 합이 1017을 초과하면 서버가 예기치 않게 재시작될 수 있는 결함을 수정했습니다.
  • DB 인스턴스의 로컬 스토리지 사용량이 증가하는 원인이 될 수 있는, 데이터베이스 로그 파일이 올바르게 로테이션되지 않는 문제를 수정했습니다.
  • aurora_oom_response가 활성화되어 있을 때, 저메모리(low-memory) 상황에서 커넥션을 닫지 않아 결국 회피 가능한 OOM(Out of Memory) 재부팅이 발생하는 문제를 수정했습니다.
  • 로그 적용에 사용된 메모리를 해제할 때 리더 DB 인스턴스가 재시작되는 문제를 수정했습니다.
  • 풀 텍스트 검색(FTS) 인덱스에 대한 내부 메트릭 계산 과정에서 발생하던 문제로 인해 DB가 재시작될 수 있는 오류를 수정했습니다.
  • 인덱스 컨디션 푸시다운(index condition pushdown)과 함께 LIMIT 절이 서브쿼리 내에서 사용될 때, 잘못된 쿼리 결과가 반환될 수 있는 커뮤니티 이슈를 수정했습니다.
  • 쓰레드가 더 이상 소유하지 않은 뮤텍스(mutex) 오브젝트를 해제해 생기는 메모리 액세스 위반을 수정했습니다.
  • 릴레이 로그 복구(relay log recovery) 중 대량의 릴레이 로그 파일을 처리할 때, 바이너리 로그(binlog) 레플리카에서 재시작이 발생할 수 있는 문제를 수정했습니다.
  • 쓰기 포워딩(write forwarding)이 활성화되어 있을 때, 오로라 리더 DB 인스턴스가 재시작되는 문제를 수정했습니다.
  • 여러 UNION 절을 포함한 쿼리에서 메모리를 과도하게 할당해 DB 인스턴스가 재시작될 수 있는 문제를 수정했습니다.
  • 리더 DB 인스턴스에서 병렬 쿼리를 실행할 때, 라이터(Writer) DB 인스턴스가 재시작되는 문제를 수정했습니다.
  • FLUSH RELAY LOGS 명령 실행 시, 레플리카의 I/O 쓰레드에서 데드락이 발생해 바이너리 로그 복제(binlog replication)가 레플리카에서 멈추는 문제를 수정했습니다.
  • 향상된 바이너리 로그가 활성화된 DB 클러스터에서 대규모 GTID 세트 처리 중 라이터(Writer) DB 인스턴스가 재시작되는 문제를 수정했습니다.
  • 인메모리 릴레이 로그 캐시가 활성화된 상태의 바이너리 로그 레플리카에서 재시작될 수 있는 문제를 수정했습니다. 인메모리 릴레이 로그 캐시는 단일 쓰레드 바이너리 로그 복제나 GTID 자동 포지셔닝이 활성화된 다중 쓰레드 복제 시 활성화됩니다.
  • DB 엔진 시작 시 DCL(Data Control Language) 명령을 적용하면서 바이너리 로그 레플리카 인스턴스가 재시작될 수 있는 문제를 수정했습니다.
  • 라이터 DB 인스턴스에서 업데이트 중인 테이블을 리더 DB 인스턴스가 SELECT 쿼리로 조회할 때, 드물게 데드래치(deadlatch)가 발생해 리더 DB 인스턴스가 재시작될 수 있는 문제를 수정했습니다.
  • Aurora 글로벌 데이터베이스(Aurora Global Database) 리더 인스턴스에서 활성(write forwarding) 세션이 있을 때 재시작되는 문제를 수정했습니다.
  • 라이터 DB 인스턴스에서 특정 드문 트랜잭션 커밋 순서가 발생할 경우, Aurora 리드 레플리카가 재시작될 수 있는 문제를 수정했습니다.
  • 향상된 바이너리 로그가 활성화된 DB 인스턴스에서 스케줄된 이벤트(scheduled events)가 실행 중 취소될 때, 데이터베이스가 재시작될 수 있는 문제를 수정했습니다.

일반 개선 사항:

  • 제로 다운타임 패치(ZDP) 또는 제로 다운타임 재시작(ZDR) 중에 클라이언트 커넥션이 멈출 수 있는 문제를 수정했습니다.
  • 테이블 열기(open table) 실패 처리 중 발생하는 메모리 관리 문제로 인해 드물게 DB 인스턴스가 재시작되는 오류를 수정했습니다.
  • AUTO_INCREMENT 기본 키 컬럼과 고유(unique) 키 컬럼이 있는 테이블에 대해 동시 INSERT 작업을 수행할 때, 일부 행에서 예상치 못한 기본 키 충돌(violation) 오류 또는 경고가 발생할 수 있는 문제를 수정했습니다.
  • Performance Schema 계측 항목 memory/sql/sp_head::main_mem_root가 제어되는 계측 항목으로 변경되었습니다. 이로 인해 저장 프로그램을 파싱하고 표현하는 데 사용되는 메모리가 커넥션별 메모리 제한(per-connection memory limit)에 포함됩니다.
  • 업데이트 과정에서 공간(spatial) 인덱스를 통해 해당 행이 읽히지 않는 문제를 수정했습니다.
  • 로컬 쓰기 포워딩(local write forwarding)을 비활성화할 수 없었던 문제를 수정했습니다.
  • 쓰기 포워딩 활성화 상태에서 SELECT COUNT 쿼리가 잘못된 결과를 반환할 수 있는 문제를 수정했습니다.
  • ZDP가 쿼리 안에 힌트로 설정된 세션 변수를 잘못 복원해, 쿼리 결과가 잘못될 수 있는 문제를 수정했습니다.
  • 업그레이드 시, innodb_max_undo_log_size 임계값보다 큰 언두 테이블스페이스를 자동으로 잘라내는(truncate) 과정에서 발생하던 문제를 수정했습니다.
  • innodb_flush_log_at_trx_commit0으로 설정했을 때, 커밋 지연(latency)이 측정되지 않는 문제를 수정했습니다.
  • Aurora 레플리카 지연(replica lag)이 잘못 보고될 수 있는 문제를 수정했습니다.
  • Aurora 글로벌 데이터베이스 환경에서 threads_running 변수 값이 잘못 반환되는 문제를 수정했습니다.
  • 병렬 세컨더리 인덱스 최적화가 활성화된 상태에서 외래 키가 포함된 테이블에 복제 변경을 적용할 때, 오로라 MySQL 바이너리 로그 레플리카가 재시작되는 문제를 수정했습니다.
  • 스케일 업/다운 중 잠금 해시 테이블(lock hash table)을 장시간 리사이징하는 과정에서 발생하던 재시작 문제를 수정했습니다.
  • 이전에 향상된 바이너리 로그가 활성화되어 있던 DB 인스턴스에서 바이너리 로그를 비활성화할 때, DB 인스턴스가 재시작되는 문제를 수정했습니다.
  • 매우 많은 수의 테이블이 존재하는 경우, 논리 데이터 딕셔너리(data dictionary) 복구 과정에서의 메모리 사용량을 줄이도록 최적화했습니다.
  • 이미 바이너리 로그 복제가 구성된 상태에서, 바이너리 로그 레플리카에 대해 mysql.rds_set_external_source 스토어드 프로시저를 실행할 때 ERROR 1377 (HY000): Fatal error during log purge 에러가 발생하던 문제를 수정했습니다.
  • ZDR 이후 사용자 역할 권한이 유지되지 않던 결함을 수정했습니다.
  • 뷰 정의자(view definer)의 기본 역할(default roles)과 관련된 메모리 문제를 수정했습니다.
  • SHOW VOLUME STATUS를 실행할 때 DB 인스턴스가 재시작될 수 있는 문제를 수정했습니다.
  • 스케일 업/다운 중 버퍼 풀(buffer pool)을 장시간 리사이징할 때 발생하던 재시작 문제를 수정했습니다.
  • 스케일 다운 중 버퍼 리사이징으로 인해 해제된 페이지에 논리 선행 읽기(LRA)가 접근해 재시작될 수 있는 문제를 수정했습니다.
  • 세미조인 변환(semijoin transformation)으로 머티리얼라이제이션(materialization)을 사용 중인 LEFT OUTER JOIN 쿼리에서 잘못된 결과가 반환될 수 있는 문제를 수정했습니다.
  • 쓰기 포워딩 비활성화 절차 완료가 실패할 수 있는 문제를 수정했습니다.
  • ActiveTransactionsBlockedTransactions CloudWatch 지표가 예상보다 낮은 값을 보고하는 문제를 수정했습니다.
  • 다중 테이블 DELETE 문에서 부모 테이블과 자식 테이블이 모두 명시적으로 삭제될 때, 레플리카에서 바이너리 로그 복제가 중단되는 문제를 수정했습니다.
  • 트리거 내부에서 enum 타입을 반환하는 사용자 정의 함수를 호출하는 경우, DB 인스턴스가 재시작될 수 있는 문제를 수정했습니다.
  • binlog_formatrow로 설정했을 때, 바이너리 로그 레플리카에서 DMLLatency CloudWatch 지표가 잘못된 값을 보여주는 문제를 수정했습니다.
  • Event Scheduler가 실행하는 느린 INSERT, DELETE, UPDATE 쿼리가 이전에 느린 SELECT 쿼리가 실행되지 않으면 슬로우 쿼리 로그에 기록되지 않는 문제를 수정했습니다.
  • 라이터 DB 인스턴스에서 DDL(Data Definition Language) 작업이 수행되는 동안 리더에서 동시 읽기 쿼리가 발생할 경우, 드물게 오로라 리드 레플리카의 간헐적 비가용성 또는 Table does not exist 오류를 포함한 테이블 정의 불일치가 발생하는 문제를 수정했습니다.
  • 향상된 바이너리 로그가 활성화된(또는 활성화된 이력이 있는) DB 클러스터에서 SHOW BINARY LOGS 명령을 실행할 때, 해당 명령 수행 시간이 길어지거나 동시 다중 SHOW BINARY LOGS 명령 실행 시 커밋 지연이 증가할 수 있는 문제를 수정했습니다.

업그레이드 및 마이그레이션:

  • 많은 수의 데이터베이스 오브젝트(테이블, 트리거, 루틴 등)가 있는 DB 클러스터에서, Aurora MySQL 버전 2에서 버전 3으로 메이저 버전 업그레이드 시 성능을 개선했습니다.
    대형 DB 인스턴스 클래스의 경우, 전통적인 MySQL 오브젝트 메타데이터를 MySQL 8.0의 새 원자적(atomic) 데이터 딕셔너리로 업그레이드할 때 여러 쓰레드를 사용하여 병렬로 처리합니다.
  • 대상 Aurora MySQL DB 엔진 버전이 3.04.0 이상일 때 업그레이드 또는 마이그레이션이 실패하는 문제를 수정했습니다. 이는 DB 클러스터 파라미터 lower_case_table_names1로 설정되어 있고, MySQL 데이터베이스 콜레이션이 소문자 테이블 이름과 호환되지 않는 경우에 발생합니다.

MySQL 커뮤니티 에디션 버그 수정 통합

이 릴리스는 8.0.39까지의 모든 커뮤니티 버그 수정 사항이 포함되어 있으며, 다음 사항도 추가로 포함됩니다. 자세한 내용은 Aurora MySQL 3.x 데이터베이스 엔진 업데이트로 수정된 MySQL 버그에서 확인할 수 있습니다.

  • JOINUNION 연산을 모두 포함하는 특정 쿼리에서, NULL 값이 결과 집합에서 잘못 누락되는 문제를 수정했습니다. (커뮤니티 버그 수정 #114301)

Leave a Comment

이 문서 공유

Aurora MySQL v3.08.0 – MySQL 8.0.39 호환 (2024-11-18)

링크 복사

CONTENTS