가동 중지 시간을 최소화하면서 Amazon Relational Database Service(Amazon RDS) for MySQL 데이터베이스 엔진 버전을 업그레이드하고 싶습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
Amazon RDS for MySQL 데이터베이스 엔진 버전 업그레이드
Amazon RDS 데이터베이스 엔진을 메이저 버전으로 업그레이드하려면 AWS Management Console, AWS CLI 또는 RDS API를 수동으로 사용해야 합니다. 자세한 내용은 엔진 버전 수동 업그레이드를 참조하십시오.
Amazon RDS 데이터베이스 엔진을 마이너 버전으로 자동 업그레이드하려면 마이너 엔진 버전 자동 업그레이드를 참조하십시오.
Amazon RDS for MySQL 데이터베이스 엔진 업그레이드에 대한 가동 중지 시간을 최소화하기 위한 모범 사례
업그레이드 시간 예상
업그레이드 시간은 업그레이드 유형, 데이터 및 사용 가능한 리소스에 따라 다릅니다. 업그레이드 시간을 예상하려면 별도의 테스트 데이터베이스 인스턴스에서 업그레이드를 테스트하십시오. 메이저 또는 마이너 업그레이드를 위한 테스트 데이터베이스 인스턴스를 시작하려면 스냅샷 복원 또는 읽기 전용 복제본을 사용하십시오. 자세한 내용은 RDS for MySQL DB 엔진 업그레이드를 참조하십시오.
업그레이드 가동 중지 시간을 최소화하려면 데이터베이스 업데이트에 블루/그린 배포를 사용하십시오. 블루/그린 배포는 프로덕션 환경을 복사하는 스테이징 환경을 만듭니다. 프로덕션 워크로드에 영향을 주지 않고 그린 환경에서 Amazon RDS 데이터베이스 인스턴스를 업그레이드할 수 있습니다. 그런 다음, 테스트한 후 환경을 전환합니다.
데이터베이스 백업 영향
백업을 활성화하면 Amazon RDS는 모든 버전 업그레이드에 대해 데이터베이스 인스턴스의 이전 버전 스냅샷을 생성합니다. Amazon RDS에서 최신 백업을 찾지 못한 경우, Amazon RDS는 업그레이드 프로세스 중에 전체 스냅샷을 생성합니다. 변경 크기는 업그레이드 시간에 영향을 줍니다. Amazon RDS가 스냅샷을 생성할 때 데이터베이스 인스턴스는 계속해서 트래픽을 수신할 수 있습니다. 백업이 완료되면 데이터베이스 인스턴스가 종료됩니다. 그런 다음, MySQL은 비활성화된 네트워크에서 새 엔진 버전을 실행하여 모든 원격 연결을 차단합니다.
느린 종료의 영향
느린 종료를 사용하기 위해 Amazon RDS는 innodb_fast_shutdown 파라미터 값을 0으로 설정합니다. 느린 종료에서는 Amazon RDS가 변경 버퍼를 병합하고 삭제된 행을 완전히 제거합니다. 느린 종료는 복구되는 데이터의 양에 따라 몇 분에서 몇 시간까지 걸릴 수 있습니다. 변경 버퍼가 크거나 기록 목록이 긴 데이터베이스를 느리게 종료하면 시간이 더 오래 걸릴 수 있습니다. 자세한 내용은 MySQL 웹 사이트에서 느린 종료, innodb_fast_shutdown, 변경 버퍼 및 제거를 참조하십시오.
새 버전으로 시스템 및 사용자 테이블 변환
시스템 및 사용자 테이블을 새 버전으로 변환하기 위해 MySQL 바이너리 mysql_upgrade가 MySQL 데이터베이스에서 실행됩니다. 테이블 상태에 따라 새 버전에 맞도록 테이블을 만들어야 할 수 있습니다. mysql_upgrade 바이너리는 테이블의 메타데이터를 업데이트하고 데이터베이스가 업그레이드되었음을 표시합니다. 테이블 수가 많으면 Amazon RDS for MySQL에서 메이저 버전 업그레이드를 완료하는 데 시간이 더 오래 걸릴 수 있습니다. 자세한 내용은 MySQL 웹 사이트에서 mysql_upgrade - MySQL 테이블 확인 및 업그레이드를 참조하십시오.
MySQL 업그레이드 고려 사항
버전 8.0에서 8.4로 메이저 업그레이드를 하는 동안 Amazon RDS for MySQL은 일부 테이블을 다시 구축합니다. 테이블의 데이터 양에 따라 재구축을 완료하는 데 몇 시간 또는 며칠이 걸릴 수 있습니다.
MySQL 메이저 버전 간의 비호환성으로 인해 업그레이드 시 문제가 발생할 수 있습니다. 성공적인 업그레이드를 위해서는 MySQL 업그레이드 고려 사항을 검토하는 것이 좋습니다. MySQL 5.7에서 8.0으로 업그레이드를 시작하면 Amazon RDS는 자동으로 사전 점검을 실행하여 비호환성을 탐지합니다. 자세한 내용은 MySQL 웹 사이트의 MySQL 업그레이드를 참조하십시오.
롤백 계획 수립
MySQL 8.0에서 업그레이드하는 경우 Amazon RDS는 사전 점검을 실행하여 테이블을 다시 구축하기에 충분한 스토리지 공간이 있는지 확인합니다. 또한 Amazon RDS는 분리된 테이블이 없는지 확인합니다. Amazon RDS는 MySQL 5.7 이전 릴리스로 업그레이드의 사전 점검을 실행하지 않습니다. 메이저 버전 업그레이드 실패 가능성이 있는 경우 롤백되고 업그레이드가 실패할 경우에 대비하여 계획을 세우는 것이 좋습니다.
테이블 문제 확인
테이블에 문제가 있는지 확인하려면 mysqlcheck를 수행하는 것이 좋습니다. 복원된 스냅샷에서 테이블 유지 관리 작업을 테스트하는 것이 좋습니다. 자세한 내용은 MySQL 웹 사이트의 테이블 유지 관리 프로그램인 mysqlcheck를 참조하십시오.
관련 정보
DB 인스턴스 엔진 버전 업그레이드
Amazon RDS for MySQL과 Amazon RDS for MariaDB를 업그레이드하기 위한 모범 사례
Amazon RDS의 MySQL 버전