Aurora MySQL データベースエンジンの更新 2024-11-18 (バージョン 3.08.0、MySQL 8.0.39 互換) - Amazon Aurora

Aurora MySQL データベースエンジンの更新 2024-11-18 (バージョン 3.08.0、MySQL 8.0.39 互換)

バージョン: 3.08.0

Aurora MySQL 3.08.0 は一般公開されています。Aurora MySQL 3.08 バージョンは、MySQL 8.0.39 と互換性があります。これまでのコミュニティ版の変更点の詳細については、「MySQL 8.0 Release Notes」を参照してください。

Aurora MySQL バージョン 3 の新機能の詳細については、「Aurora MySQL バージョン 3 は MySQL 8.0 との互換性があります」を参照してください。Aurora MySQL バージョン 3 と Aurora MySQL バージョン 2 の違いについての詳細は、「Aurora MySQL バージョン 2 と Aurora MySQL バージョン 3 の比較」を参照してください。Aurora MySQL バージョン 3 と MySQL 8.0 Community Edition の比較については、「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 クラスターへのインプレースアップグレード、スナップショットの復元、Amazon RDS ブルー/グリーンデプロイによるマネージドブルー/グリーンアップグレードの開始を行うことができます。

Aurora MySQL バージョン 3 へのアップグレードの計画については、「Aurora MySQL クラスターのメジャーバージョンアップグレードの計画」を参照してください。Aurora MySQL のアップグレードに関する一般的な情報については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora MySQL DB クラスターのアップグレード」を参照してください。

トラブルシューティングの詳細については、「Amazon Aurora ユーザーガイド」の「Aurora MySQL インプレースアップグレードのトラブルシューティング」を参照してください。

ご質問やご不明点がございましたら、コミュニティフォーラムや AWS サポートから AWS サポートにお問い合わせください。詳細については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora DB クラスターのメンテナンス」を参照してください。

新機能

  • ユーザーが InnoDB パージプロセスをモニタリングできるように、次の 3 つの新しい Amazon CloudWatch メトリクスが追加されました。

    • PurgeBoundary

    • PurgeFinishedPoint

    • TruncateFinishedPoint

    詳細については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora の Amazon CloudWatch メトリクス」を参照してください。

  • 新しい CloudWatch メトリクス TransactionAgeMaximum が追加され、ユーザーがパージ境界を保留している可能性のある長時間実行されるトランザクションを特定できるようになりました。詳細については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora の Amazon CloudWatch メトリクス」を参照してください。

  • メモリ不足 (OOM) 回避のための 3 つの新しい CloudWatch メトリクスを追加しました。

    • AuroraMillisecondsSpentInOomRecovery

    • AuroraNumOomRecoverySuccessful

    • AuroraNumOomRecoveryTriggered

    詳細については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora の Amazon CloudWatch メトリクス」を参照してください。

  • メモリ不足 (OOM) 回避の 3 つの CloudWatch メトリクスを実行合計から増分カウンタに変更しました。

    • AuroraMemoryNumDeclinedSqlTotal

    • AuroraMemoryNumKillConnTotal

    • AuroraMemoryNumKillQueryTotal

    詳細については、「Amazon Aurora ユーザーガイド」の「Amazon Aurora の Amazon CloudWatch メトリクス」を参照してください。

  • 内部一時テーブルで使用されるメモリ量を示す 2 つのグローバルステータス変数 aurora_temptable_ram_allocationaurora_temptable_max_ram_allocation を追加しました。これらのグローバルステータス変数は、オブザーバビリティを高め、内部一時テーブルのメモリ使用量に関連する問題を診断するのに役立ちます。

    詳細については、「Amazon Aurora ユーザーガイド」の「Aurora MySQL グローバルステータス変数」を参照してください。

  • サーバーがメモリからトレースを消去する前に、オプティマイザトレースをエラーログに出力する新しいシステム変数 aurora_optimizer_trace_print_before_purge が導入されました。パージは、システム変数 optimizer_trace_offsetoptimizer_trace_limit によって設定されたしきい値に基づいてトリガーできます。

  • 次の DB インスタンスクラスのサポートが追加されました。

    • db.r7i

    • db.r8g

    詳細については、「Amazon Aurora ユーザーガイド」の「DB インスタンスクラスでサポートされている DB エンジン」を参照してください。

改善点

以下のセキュリティの問題と CVE の修正:

このリリースには、MySQL 8.0.39 までのコミュニティ版 CVE の修正がすべて反映されています。次の CVE 修正が含まれています。

可用性の向上:

  • 即座にドロップされた列が既に存在するテーブルでデータ操作言語 (DML) コマンドを実行した後、ドロップされた列とドロップされていない列の数が 1017 を超えると、サーバーが予期せず再起動することがある不具合を修正しました。

  • データベースログファイルが正しくローテーションされず、DB インスタンスのローカルストレージスペースの使用が増加する可能性がある問題を修正しました。

  • aurora_oom_response が有効になっているときに、メモリが少ない状態で DB インスタンスが接続を閉じなくなり、本来は回避できるメモリ不足による再起動につながる可能性がある問題を修正しました。

  • ログアプリケーションに使用されるメモリを解放するときにリーダー DB インスタンスが再起動する問題を修正しました。

  • データベースの再起動を引き起こす可能性のある全文検索 (FTS) インデックスの内部メトリクスの計算に関する問題を修正しました。

  • インデックス条件のプッシュダウンとともにサブクエリで LIMIT 句を使用すると、誤ったクエリ結果を生成することがあるコミュニティの問題を修正しました。

  • メモリアクセス違反が発生し、スレッドによって所有されなくなったミューテックスオブジェクトが解放される問題を修正しました。

  • リレーログの復旧中に多数のリレーログファイルを処理するときに、バイナリログ (binlog) レプリカで再起動が発生する可能性がある問題を修正しました。

  • 書き込み転送が有効になっているときに Aurora リーダー DB インスタンスが再起動する問題を修正しました。

  • 複数の UNION 句を含むクエリが大量のメモリを割り当て、DB インスタンスが再起動する問題を修正しました。

  • リーダー DB インスタンスで並列クエリを実行するときにライター DB インスタンスが再起動する問題を修正しました。

  • FLUSH RELAY LOGS コマンドの実行時にレプリカの I/O スレッドでデッドロックが発生したため、バイナリログレプリケーションがレプリカで停止する問題を修正しました。

  • 拡張バイナリログが有効になっている DB クラスターで大きな GTID セットを処理するときに DB インスタンスが再起動する問題を修正しました。

  • インメモリリレーログキャッシュが有効になっていると、バイナリログレプリカが再起動することがある問題を修正しました。インメモリリレーログキャッシュは、シングルスレッドバイナリログレプリケーションまたは GTID 自動配置が有効になっているマルチスレッドレプリケーションのいずれかを使用する場合、Aurora MySQL マネージドバイナリログレプリカで有効になります。

  • データベースエンジンの起動時にデータ制御言語 (DCL) ステートメントを適用すると、バイナリログレプリカインスタンスが再起動する問題を修正しました。

  • まれに、ライター DB インスタンスによって更新されたテーブルに対して SELECT クエリを実行するときに、デッドラッチが原因でリーダー DB インスタンスが再起動することがある問題を修正しました。

  • Aurora Global Database リーダーインスタンスがアクティブな書き込み転送セッションで再起動する問題を修正しました。

  • ライター DB インスタンスで特定のまれなトランザクションコミット指示が発生した場合に Aurora リードレプリカが再起動する問題を修正しました。

  • 拡張バイナリログが有効になっている DB インスタンスでの実行中に予定されているイベントがキャンセルされると、データベースが再起動する問題を修正しました。

全般的な機能強化:

  • ダウンタイムのないパッチ適用 (ZDP) またはダウンタイムのない再起動 (ZDR) 中にクライアント接続が停止する問題を修正しました。

  • オープンテーブルの障害の処理中に発生する可能性があるメモリ管理の問題が原因で、まれにデータベースインスタンスが再起動する問題を修正しました。

  • AUTO_INCREMENT プライマリキー列と一意のキー列を持つテーブルで同時 INSERT ステートメントを実行する場合、および INSERT ステートメントが異なる行で一意のキー違反がある場合に、SQL ステートメントで予期しないプライマリキー違反エラーまたは警告が発生する可能性がある問題を修正しました。

  • Performance Schema インストゥルメント memory/sql/sp_head::main_mem_root が制御されたインストゥルメントになりました。したがって、保存されたプログラムの解析と表現に割り当てられたメモリは、接続ごとのメモリ制限に寄与するようになりました。

  • 更新中に空間インデックスから行が読み取れなくなる問題を修正しました。

  • ユーザーがローカル書き込み転送を無効にできない問題を修正しました。

  • 書き込み転送の使用中に SELECT COUNT クエリが間違った結果を返す問題を修正しました。

  • ZDP がクエリのヒントとして設定されたセッション変数を誤って復元すると、誤ったクエリ結果が発生する可能性がある問題を修正しました。

  • アップグレードシナリオで UNDO テーブルスペースがしきい値 innodb_max_undo_log_size より大きい場合に自動切り捨てされる問題を修正しました。

  • innodb_flush_log_at_trx_commit0 に設定されている場合、コミットレイテンシーとコミットスループットが測定されない問題を修正しました。

  • Aurora レプリカの遅延が誤って報告される問題を修正しました。

  • Aurora Global Database の使用時に threads_running 変数の値が正しくない問題を修正しました。

  • 外部キーを持つテーブルにレプリケーションの変更を適用すると、並列セカンダリインデックスの最適化が有効になっている Aurora MySQL バイナリログレプリカが再起動する問題を修正しました。

  • イベントのスケールアップまたはスケールダウン中にロックハッシュテーブルのサイズ変更が長時間続くことによって発生する再起動の問題を修正しました。

  • 拡張バイナリログが以前に有効になっていた場合、バイナリログ記録を無効にした後に DB インスタンスが再起動する可能性がある問題を修正しました。

  • テーブルの数が多い場合に論理データディクショナリ復旧中のメモリ使用量を減らすための最適化を導入しました。

  • バイナリログレプリケーションが既に設定されている場合、バイナリログレプリカで mysql.rds_set_external_source ストアドプロシージャの実行中にユーザーに ERROR 1377 (HY000): Fatal error during log purge エラーが発生する可能性がある問題を修正しました。

  • ZDR 後にユーザーロール権限が永続化されない不具合を修正しました。

  • ビュー定義のデフォルトロールに関連するメモリの問題を修正しました。

  • SHOW VOLUME STATUS の実行時に DB インスタンスが再起動する問題を修正しました。

  • イベントのスケールアップまたはスケールダウン中にバッファプールのサイズ変更が長時間続くことで発生する再起動の問題を修正しました。

  • スケールダウンイベント中のバッファのサイズ変更が原因で解放されたページに論理先読み (LRA) がアクセスすることによって発生する再起動の問題を修正しました。

  • SELECT クエリがマテリアライズメントを戦略として使用する半結合変換LEFT OUTER JOIN を使用する場合に、クエリが誤った結果を返す問題を修正しました。

  • 書き込み転送を無効にするプロセスの完了に失敗する問題を修正しました。

  • ActiveTransactions および BlockedTransactions CloudWatch メトリクスが予想よりも低い値を報告していた問題を修正しました。

  • 親テーブルと子テーブルの両方から明示的に削除するマルチテーブル DELETE ステートメントをレプリカが処理するときに、バイナリログレプリケーションが中断する問題を修正しました。

  • enum タイプを返すユーザー定義関数でトリガーを処理するときに DB インスタンスが再起動につながる可能性がある問題を修正しました。

  • binlog_formatrow に設定してレプリケートするときに、DMLLatency CloudWatch メトリクスがバイナリログレプリカインスタンスに誤った値を表示する問題を修正しました。

  • MySQL イベントスケジューラーによって実行されるスロー INSERTDELETE、および UPDATE クエリが、スロー SELECT クエリが先行していない限り、スロークエリログに記録されない問題を修正しました。

  • まれに、Aurora リードレプリカが断続的に使用できなくなったり、レプリカでテーブル定義の不整合が発生して、エラー Table does not exist が発生することがある問題を修正しました。これは、レプリカにおける同時読み取りクエリと、ライター DB インスタンスのデータ定義言語 (DDL) オペレーションが原因です。

  • 拡張バイナリログが有効になっているか、以前に有効だった DB クラスターで SHOW BINARY LOGS コマンドの実行に時間がかかる問題を修正しました。この問題により、複数の SHOW BINARY LOGS コマンドが同時に実行されていた場合、コミットレイテンシーが増加する可能性もあります。

アップグレードと移行:

  • 多数のデータベースオブジェクト (テーブル、トリガー、ルーチンなど) を持つ DB クラスターの Aurora MySQL バージョン 2 からバージョン 3 へのメジャーバージョンアップグレードのパフォーマンスが向上しました。

    大規模な DB インスタンスクラスの場合、データベースのアップグレードプロセスは、複数のスレッドを使用して、従来の MySQL オブジェクトメタデータを新しいアトミック MySQL 8.0 データディクショナリに並行してアップグレードします。

  • ターゲット Aurora MySQL DB エンジンのバージョンが 3.04.0 以降である場合、アップグレードまたは移行が失敗する問題を修正しました。これは、lower_case_table_names DB クラスターパラメータが 1 に設定されていて、MySQL データベース照合が小文字のテーブル名と互換性がない場合に発生します。

MySQL Community Edition でのバグ修正の統合

このリリースには、以下を含め、8.0.39 までのコミュニティ版のバグ修正がすべて反映されています。詳細については、「MySQL 3.x データベースエンジンの更新で修正された MySQL のバグ」を参照してください。

  • JOIN オペレーションと UNION オペレーションの両方を持つ特定のクエリの結果セットから NULL 値が誤って省略される問題を修正しました。(コミュニティのバグ修正 #114301)