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 サポート
新機能
-
ユーザーが 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_allocationとaurora_temptable_max_ram_allocationを追加しました。これらのグローバルステータス変数は、オブザーバビリティを高め、内部一時テーブルのメモリ使用量に関連する問題を診断するのに役立ちます。詳細については、「Amazon Aurora ユーザーガイド」の「Aurora MySQL グローバルステータス変数」を参照してください。
-
サーバーがメモリからトレースを消去する前に、オプティマイザトレース
をエラーログに出力する新しいシステム変数 aurora_optimizer_trace_print_before_purgeが導入されました。パージは、システム変数 optimizer_trace_offsetと optimizer_trace_limit によって設定されたしきい値に基づいてトリガーできます。 -
次の DB インスタンスクラスのサポートが追加されました。
-
db.r7i
-
db.r8g
詳細については、「Amazon Aurora ユーザーガイド」の「DB インスタンスクラスでサポートされている DB エンジン」を参照してください。
-
改善点
以下のセキュリティの問題と CVE の修正:
-
バイナリログ (binlog) レプリケーション用の新しいユーザー
rdsrepladmin_priv_checks_userを導入しました。詳細については、「Amazon Aurora ユーザーガイド」の「バイナリログレプリケーションの権限チェックユーザー」を参照してください。 -
Aurora MySQL ストアドプロシージャへの入力パラメータが正しく処理されない問題を修正しました。
このリリースには、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_commitが0に設定されている場合、コミットレイテンシーとコミットスループットが測定されない問題を修正しました。 -
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およびBlockedTransactionsCloudWatch メトリクスが予想よりも低い値を報告していた問題を修正しました。 -
親テーブルと子テーブルの両方から明示的に削除するマルチテーブル
DELETEステートメントをレプリカが処理するときに、バイナリログレプリケーションが中断する問題を修正しました。 -
enumタイプを返すユーザー定義関数でトリガーを処理するときに DB インスタンスが再起動につながる可能性がある問題を修正しました。 -
binlog_formatをrowに設定してレプリケートするときに、DMLLatencyCloudWatch メトリクスがバイナリログレプリカインスタンスに誤った値を表示する問題を修正しました。 -
MySQL イベントスケジューラー
によって実行されるスロー INSERT、DELETE、および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_namesDB クラスターパラメータが1に設定されていて、MySQL データベース照合が小文字のテーブル名と互換性がない場合に発生します。
MySQL Community Edition でのバグ修正の統合
このリリースには、以下を含め、8.0.39 までのコミュニティ版のバグ修正がすべて反映されています。詳細については、「MySQL 3.x データベースエンジンの更新で修正された MySQL のバグ」を参照してください。
-
JOINオペレーションとUNIONオペレーションの両方を持つ特定のクエリの結果セットからNULL値が誤って省略される問題を修正しました。(コミュニティのバグ修正 #114301)