ApsaraDB RDS for MySQL は、データベースのメジャーバージョンをアップグレードするための 2 つのメソッドを提供します。コンソールで直接データベースバージョンをアップグレードできます。また、新しいバージョンの ApsaraDB RDS for MySQL インスタンスを購入し、Data Transmission Service (DTS) のデータ移行タスクを使用して、元のインスタンスから新しいインスタンスにデータを移行することもできます。このプロセスにより、間接的にデータベースバージョンがアップグレードされます。
ApsaraDB RDS for MySQL は、コンソールからのデータベースバージョンの直接的なダウングレードをサポートしていません。 以前のバージョンを実行する RDS インスタンスを購入し、DTS を使用して新しいバージョンのインスタンスから以前のバージョンのインスタンスにデータを移行できます。移行が成功したことを確認した後、新しいバージョンのインスタンスをリリースできます。
アップグレード方法を選択する
方法 1: コンソールでデータベースバージョンを直接アップグレードすると方法 2: DTS を使用してデータベースバージョンをアップグレードするは、どちらもすべての MySQL メジャーバージョンのアップグレードをサポートします。これには、MySQL 5.5 から 5.6、5.6 から 5.7、および 5.7 から 8.0 へのアップグレードが含まれます。データベースをアップグレードする前に、以下の情報に基づいて適切なアップグレード方法を選択してください:
インスタンスが以下の 4 つのカテゴリのいずれかに属し、その構成が対応する要件を満たしている場合は、方法 1: コンソールでデータベースバージョンを直接アップグレードするを使用してください。
説明サーバーレスインスタンスは、コンソールからの直接アップグレードをサポートしていません。方法 2: DTS を使用してデータベースバージョンをアップグレードするを使用する必要があります。
クラスター版 (ESSD および高性能ディスク)
グループレプリケーションの制限: MySQL グループレプリケーション (MGR) を使用するクラスター版インスタンスはアップグレードできません。
データベースプロキシの制限 (該当する場合): データベースプロキシのマイナーバージョンは 1.13.41 以降である必要があります。
インスタンスステータスの制限: インスタンスは [実行中] 状態である必要があります。プライマリノードとセカンダリノードは正常で、レプリケーションの遅延がない必要があります。
エンジン制限: データベースとそのすべてのテーブルは InnoDB ストレージエンジンを使用する必要があります。
インスタンスは廃止されたインスタンスタイプを使用していてはなりません。
高可用性版 (ESSD および高性能ディスク)
データベースプロキシの制限 (該当する場合): データベースプロキシのマイナーバージョンは 1.13.41 以降である必要があります。
インスタンスステータスの制限: インスタンスは [実行中] 状態である必要があります。プライマリノードとセカンダリノードは正常で、レプリケーションの遅延がない必要があります。
エンジン制限: データベースとそのすべてのテーブルは InnoDB ストレージエンジンを使用する必要があります。
インスタンスは廃止されたインスタンスタイプを使用していてはなりません。
高可用性版 (高性能ローカルディスク)
暗号化の制限: TDE (透過的データ暗号化) 機能を無効にする必要があります。TDE を有効にすると、無効にすることはできません。インスタンスで TDE が有効になっている場合は、方法 2: DTS を使用してデータベースバージョンをアップグレードするを使用する必要があります。
データベースプロキシの制限 (該当する場合): データベースプロキシのマイナーバージョンは 1.13.41 以降である必要があります。
インスタンスステータスの制限: インスタンスは [実行中] 状態である必要があります。プライマリノードとセカンダリノードは正常で、レプリケーションの遅延がない必要があります。
テーブル数の制限: テーブル数は 100 万を超えることはできません。
エンジン制限: データベースとそのすべてのテーブルは InnoDB ストレージエンジンを使用する必要があります。
インスタンスタイプの制限: アップグレード後のデータベースバージョンは、プライマリインスタンスと読み取り専用インスタンスの元のインスタンスタイプをサポートする必要があります。インスタンスは、廃止されたインスタンスタイプを使用していてはなりません。詳細については、「プライマリ ApsaraDB RDS for MySQL インスタンスタイプ」をご参照ください。
Basic Edition (ESSD および高性能ディスク)
インスタンスステータスの制限: インスタンスは [実行中] 状態である必要があります。
エンジン制限: データベースとそのすべてのテーブルは InnoDB ストレージエンジンを使用する必要があります。
インスタンスは廃止されたインスタンスタイプを使用していてはなりません。
インスタンスが上記の 4 つのカテゴリのいずれにも属さない場合、または TDE が有効になっている場合は、方法 2: DTS を使用してデータベースバージョンをアップグレードするを使用してください。
インスタンスが上記の 4 つのカテゴリのいずれかに属しているが、その構成が要件を満たしていない場合は、次の表に示すように構成を変更できます。その後、方法 1: コンソールでデータベースバージョンを直接アップグレードするまたは方法 2: DTS を使用してデータベースバージョンをアップグレードするのいずれかを使用できます。
問題
ソリューション
インスタンスが [再起動中] など、実行中以外の状態です。
現在のタスクが完了するまで待ってから、データベースバージョンをアップグレードしてください。
高性能ローカルディスクを備えた高可用性版インスタンスのテーブル数が 100 万を超えています。
アップグレード前に冗長なテーブルを削除してください。
一部のデータベースまたはテーブルが InnoDB エンジンを使用していません。
ALTER TABLE <table_name> engine=InnoDB;コマンドを実行して、InnoDB エンジンに切り替えます。インスタンスは廃止されたインスタンスタイプを使用しています。
データベースバージョンをアップグレードする前に、インスタンスタイプをアップグレードしてください。詳細については、「インスタンス構成の変更」をご参照ください。
データベースプロキシのマイナーバージョンが要件を満たしていません。
データベースプロキシのマイナーバージョンを 1.13.41 以降にアップグレードしてください。詳細については、「データベースプロキシのマイナーエンジンバージョンをアップグレードする」をご参照ください。
インスタンスのストレージタイプは標準 SSD です。
まず、標準 SSD をエンタープライズ SSD (ESSD) にアップグレードし、次にデータベースバージョンをアップグレードします。
他のデータベースエンジンのメジャーデータベースバージョンをアップグレードするには、次のトピックをご参照ください:
方法 1: コンソールでデータベースバージョンを直接アップグレードする
準備
新しいバージョンの違いと利点を理解する
5.6 から 5.7 へのアップグレード: 機能の違いについては、「付録 4: MySQL 5.7 と MySQL 5.6 の機能の違い」をご参照ください。アップグレードの利点については、「付録 2: MySQL 5.6 から MySQL 5.7 へのアップグレードの利点」をご参照ください。
5.7 から 8.0 へのアップグレード: 機能の違いについては、「付録 3: MySQL 8.0 と MySQL 5.7 の機能の違い」をご参照ください。アップグレードの利点については、「付録 1: MySQL 5.7 から MySQL 8.0 へのアップグレードの利点」をご参照ください。
アップグレードプロセスとその影響を理解する
バージョン間の制限: メジャーバージョンをまたいでアップグレードすることはできません。デフォルトでは、インスタンスはターゲットのメジャーバージョンの最新のマイナーバージョンにアップグレードされます。たとえば、インスタンスを MySQL 5.6 から MySQL 8.0 に直接アップグレードすることはできません。まず MySQL 5.7 にアップグレードし、次に MySQL 8.0 にアップグレードする必要があります。
ダウングレードの制限: コンソールから直接バージョンをダウングレードすることはできません。以前のバージョンを実行する RDS インスタンスを購入し、DTS を使用して新しいバージョンのインスタンスから以前のバージョンのインスタンスにデータを移行できます。移行が成功したことを確認した後、新しいバージョンのインスタンスをリリースできます。
高性能ローカルディスクを持つインスタンスのアップグレードプロセス: システムはまずセカンダリノードをアップグレードします。アップグレードが完了すると、プライマリ/セカンダリのフェールオーバーが発生します。その後、システムは元のプライマリノードをアップグレードします。アップグレードプロセスにより、30〜60 秒のサービス中断が発生します。オフピーク時にアップグレードを実行することをお勧めします。
ESSD を持つインスタンスのアップグレードプロセス: システムは新しいノードを作成し、新しいノードでアップグレードを実行します。新しいノードでのアップグレードが完了すると、接続がそちらに切り替わります。アップグレードプロセスにより、30〜60 秒のサービス中断が発生します。オフピーク時にアップグレードを実行することをお勧めします。
インスタンスとデータベースの構成を確認する
予約キーワードの確認: ユーザー定義関数をチェックして、予約キーワードを使用していないことを確認してください。
完全バックアップの確認: 過去 1 週間以内に成功した完全データバックアップが作成されたかどうかを確認します。そうでない場合は、完全データバックアップを実行してください。
自動再接続メカニズムの確認: データベースのアップグレード中、RDS はインスタンスのスイッチオーバーを実行します。オフピーク時にアップグレードを実行するか、アプリケーションに自動再接続メカニズムがあることを確認することをお勧めします。インスタンスのスイッチオーバーの影響の詳細については、「インスタンスのスイッチオーバーの影響」をご参照ください。
利用可能なストレージ領域の確認: アップグレード前に十分な空きディスク領域があることを確認してください。少なくとも 10 GB を予約することをお勧めします。
ログクリーンアップポリシーの調整: ローカルログの保持期間と最大ストレージ使用率を増やします。詳細については、「ローカルログポリシーの変更」をご参照ください。
インスタンスパラメータのバックアップ: 新しい MySQL バージョンの安定性とパフォーマンスを確保するために、RDS は古いバージョンの一部のパラメータを非推奨にします。アップグレード後はこれらのパラメータを表示または変更できなくなります。メジャーバージョンのアップグレードを実行する前に、将来の操作と監査のために、関連するパラメータの変更記録をバックアップしてください。
5.6 から 5.7 または 5.7 から 8.0 へのアップグレードでは、以下の追加チェックを実行する必要があります:
5.6 から 5.7 へのアップグレード
フルテキストインデックスとバージョン情報の確認: マイナーバージョンが 20221130 より前の RDS for MySQL 5.6 インスタンス上のデータベースでは、フルテキストインデックスはシステムテーブルスペースに作成されます。バージョン 5.7 にアップグレードすると、テーブルスペースが損傷する可能性があります。インスタンスが以前のマイナーバージョンを実行している場合は、まず RDS for MySQL 5.6 の最新のマイナーバージョンにアップグレードしてから、メジャーデータベースバージョンをアップグレードしてください。詳細については、「よくある質問」をご参照ください。
5.7 から 8.0 へのアップグレード
機能の互換性の確認: データベース内のストアドプロシージャ、トリガー、ビュー、または関数が MySQL 8.0 でサポートされていない機能を使用している場合は、アップグレード前にそれらを変更してください。そうしないと、アップグレードは失敗します。
システムテーブルの依存関係の確認: サービスが MySQL 5.7 のシステムテーブル (sys、mysql、information_schema、および performance_schema データベース内のテーブル) に依存しているかどうかを確認します。MySQL 5.7 の一部のシステムテーブルは、8.0 へのアップグレード中に変更されます。たとえば、テーブルが削除されたり、名前が変更されたり、スキーマが変更されたりする可能性があります。サービスがこれらのテーブルに依存している場合、エラーが発生する可能性があります。
データ型の互換性の確認: RDS for MySQL 8.0 は、古いバージョンの一部のデータ型をサポートしなくなりました。テーブルに MySQL 8.0 でサポートされていないデータ型のフィールドが含まれている場合は、アップグレード前に
REPAIR TABLEを実行するか、論理的なエクスポートとインポートを実行してこの問題を解決する必要があります。詳細については、「アップグレードのためのインストールの準備」をご参照ください。comment値の確認: 20221231 以降の MySQL 8.0 のマイナーバージョンでは、loose_upgrade_clear_invalid_commentパラメータが導入されています。このパラメータがON(デフォルト値) に設定されている場合、テーブル、フィールド、およびインデックスのコメント内の文字化けは、アップグレード中に自動的にクリアされ、失敗を防ぎます。したがって、アップグレード前に、データベーステーブルのcomment値に文字化けが含まれているかどうかを確認してください。含まれている場合、commentはクリアされます。ストアドプロシージャの確認: データベース内のストアドプロシージャまたは関数に文字化けが含まれている場合は、アップグレード前に修正して失敗を防いでください。
MySQL 5.5 以前の時間データ型の確認: データベースに MySQL 5.5 以前の時間データ型を持つテーブルが含まれている場合は、MySQL 8.0 にアップグレードする前にテーブルを再構築して失敗を防いでください。
次の SQL 文を実行して、データベースインスタンスに MySQL 5.5 以前の時間データ型を持つテーブルが含まれているかどうかを確認します:
# 古い時間データ型を表示します。 SET SESSION show_old_temporals= ON; # 古い時間データ型を含むテーブルをクエリします。 SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");テーブルに MySQL 5.5 以前の時間データ型が含まれている場合は、次のコマンドを実行してテーブルスキーマを再構築できます:
# テーブルを再構築します。 ALTER TABLE <table_name> FORCE;
アップグレード前のテストとシミュレーション
構文テスト: アップグレード前に、新しいバージョンの新しい RDS インスタンスを作成して、構文の互換性をテストします。これにより、アップグレード後に以前のバージョンの構文や機能がサポートされないという問題を回避できます。
アップグレードシミュレーション: アップグレード前に、元のインスタンスをクローンし、クローンしたインスタンスを使用してアップグレードをテストします。すべての機能が期待どおりに動作することを確認した後、元のインスタンスをアップグレードします。
アップグレード後の注意点
インスタンスを古いバージョンに復元する: 古いバージョンのクラウドディスクバックアップを使用して、インスタンスをそのバージョンに復元できます。これは、高性能ローカルディスクを持つインスタンスではサポートされていません。
インスタンスを新しいバージョンに復元する: 古いバージョンのバックアップセットを使用して、インスタンスを新しいバージョンに復元することはできません。復元を実行するには、インスタンスがアップグレードされた後に作成されたバックアップセットを使用してください。
手順
アップグレードシナリオに基づいてアップグレード方法を選択します:
アップグレード方法 | アップグレードシナリオ |
事前チェックを実行してからアップグレード |
|
直接アップグレード |
|
事前チェックを実行してからアップグレードする
インスタンスページに移動します。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択します。次に、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[メジャーバージョンのアップグレード] をクリックして [アップグレード前チェック] ページに移動します。
[アップグレードバージョンの選択] ドロップダウンリストから、ターゲットのバージョン番号を選択し、[アップグレードチェックレポートの作成] をクリックします。レポートの詳細については、「メジャーバージョンアップグレードチェックレポートの説明」をご参照ください。

チェックが完了し、リスクがないことを確認したら、[インスタンスのアップグレード] タブに切り替えます。
[アップグレードバージョンの選択] ドロップダウンリストから、ターゲットのバージョン番号を選択し、[インスタンスのアップグレード] をクリックします。

[インスタンスのメジャーバージョンのアップグレード] ダイアログボックスで、ターゲットバージョンを確認し、[切り替え時間] を選択して、[今すぐアップグレード] をクリックします。

直接アップグレード
インスタンスページに移動します。上部のナビゲーションバーで、インスタンスが配置されているリージョンを選択します。次に、インスタンス ID をクリックします。
セクションで、[データベースバージョンのアップグレード] をクリックします。
説明このオプションが利用できない場合は、インスタンスがアップグレード要件を満たしているかどうかを確認してください。
表示されるダイアログボックスで、[すぐに切り替え] または [メンテナンスウィンドウ内で切り替え] を選択し、[OK] をクリックします。
[すぐに切り替え]: すぐにアップグレードを開始します。
[メンテナンスウィンドウ内で切り替え]: 指定されたメンテナンスウィンドウ内でアップグレードを実行します。[メンテナンスウィンドウ] の横にある [設定] をクリックして、メンテナンスウィンドウをすばやく変更することもできます。
説明アップグレード中、インスタンスのステータスは [バージョン移行中] です。
方法 2: DTS を使用してデータベースバージョンをアップグレードする
コンソールからの直接アップグレードをサポートしていないインスタンスの場合、新しいデータベースバージョンで新しいインスタンスを作成できます。次に、DTS データ移行タスクを使用して、元のインスタンスから新しいインスタンスにデータを移行します。これにより、間接的にデータベースバージョンがアップグレードされます。このプロセスには、次のステップが含まれます:
例: TDE が有効になっている MySQL 5.7 インスタンスがあり、コンソールから直接アップグレードできません。この場合、MySQL 8.0 を実行する新しいインスタンスを作成し、元のインスタンスから新しいインスタンスにデータを移行し、最後に元のインスタンスをリリースできます。これにより、間接的にデータベースバージョンがアップグレードされます。
クロスバージョンのデータ移行後、互換性をテストし、一定期間インスタンスを監視してください。すべてが正常であることを確認した後、元のインスタンスをリリースしてください。
付録 1: MySQL 5.7 から MySQL 8.0 へのアップグレードの利点
セキュリティを向上させ、アカウント管理の柔軟性を高めます。
リソースグループの作成と管理をサポートします。
InnoDB ストレージエンジンの機能を強化します。
新しい文字セット、データ型、構文、新しいバックアップロック、および optimizer_switch フラグのサポートを追加します。
JSON および XML 機能を強化します。
オプティマイザーの機能を強化します。
レプリケーションのパフォーマンスを向上させます。
複数値インデックスの作成と派生条件プッシュダウン最適化をサポートします。
MySQL 権限付与テーブルの読み取りをサポートします。
リソース割り当て制御をサポートします。
付録 2: MySQL 5.6 から MySQL 5.7 へのアップグレードの利点
パスワード管理、アカウントロック、暗号化接続などの機能を追加して、データベースのセキュリティを向上させます。
RENAME INDEX を使用したインデックスの名前変更など、オンライン DDL 操作をサポートします。
InnoDB エンジンのスケーラビリティと一時テーブルのパフォーマンスを向上させ、データ読み込みを高速化します。
JSON をサポートします。
パーティションテーブルのインデックス条件プッシュダウン (ICP) と新しい InnoDB 空間インデックスをサポートします。
ほとんどのパーサ、オプティマイザー、コストモデルを最適化して、データベースの保守性、スケーラビリティ、パフォーマンスを向上させます。
中国国家標準で指定されている GB18030 文字セットを含む、サポートされる文字セットの範囲を拡大します。
中国語、日本語、韓国語をサポートする ngram フルテキストパーサプラグインを提供します。
ソースダンプスレッドを最適化して、ロック競合を減らし、ソーススループットを向上させます。
レプリケーションの遅延を大幅に削減します。
sys システムデータベースを追加し、複数のメトリックを提供し、ストレージ使用量を削減し、データベースの使いやすさを大幅に向上させます。
付録 3: MySQL 8.0 と MySQL 5.7 の機能の違い
次の表は、MySQL 8.0 と 5.7 の重要な違いの一部のみをリストしています。その他の違いについては、「MySQL リリースノート」をご参照ください。
機能 | 5.7 | 8.0 |
GRANT ... IDENTIFIED BY PASSWORD 構文 | サポートされています | サポートされていません |
PASSWORD() 関数 | サポートされています | サポートされていません |
FLUSH QUERY CACHE および RESET QUERY CACHE 構文 | サポートされています | サポートされていません |
SQL_MODE システム変数のパラメータ: DB2、MAXDB、MSSQL、MYSQL323、MYSQL40、ORACLE、POSTGRESQL、NO_FIELD_OPTIONS、NO_KEY_OPTIONS、NO_TABLE_OPTIONS | サポートされています | サポートされていません |
GROUP BY 構文のデフォルトの自動ソート | サポート | サポートされていません |
EXTENDED または PARTITIONS キーワードを含む構文 | サポートされています | サポートされていません |
ENCODE()、DECODE()、ENCRYPT() などの暗号化関数 | サポートされています | サポートされていません |
空間分析に関連する関数 | サポートされています | サポートされていません |
以前は WKB 文字列またはジオメトリ引数を受け入れていたが、ジオメトリ引数を受け入れなくなった関数 | サポートされています | サポートされていません |
\N を NULL として解析する | サポート | サポートされていません |
PROCEDURE ANALYSE() 関数 | サポートされています | サポートされていません |
NDB ストレージエンジンを使用してパーティションテーブルを作成する | サポートされています | サポートされていません |
InnoDB ストレージエンジンを使用して一時テーブルを圧縮する | サポートされています | サポートされていません |
JSON_APPEND() 関数 | サポートされています | サポートされていません |
共有テーブルスペースにテーブルパーティションを配置するためのサポート | サポートされています | サポートされていません |
ALTER TABLE ... UPGRADE PARTITIONING 構文 | サポートされています | サポートされていません |
付録 4: MySQL 5.7 と MySQL 5.6 の機能の違い
次の表は、MySQL 5.7 と 5.6 の重要な違いの一部のみをリストしています。その他の違いについては、「MySQL リリースノート」をご参照ください。
機能 | 5.6 | 5.7 |
GTID モードでの CREATE...AS SELECT | サポート | サポートされていません |
GTID モードのトランザクションで一時テーブルを使用する | サポートされています | サポートされていません |
パーティションテーブルでパーティションキーを指定する | サポートされています | サポートされていません |
ENGINE_NO_CACHE 構文 | サポートされています | サポートされていません |
不可視インデックス | サポート | サポートされていません |
UPDATE non_affected_rows INSERT 構文 | サポートされています | サポートされていません |
プロキシ関連のコマンド | SET コマンドメソッドを使用します | Call Procedure モードを使用します |
TokuDB、Sphinx、RocksDB、および Memory エンジン | サポートされています | サポートされていません |
str_ord() 関数 | サポートされています | サポートされていません |
raiseerror() 関数 | サポートされています | サポートされていません |
OPTIMIZE TABLE table ASYNC | サポート | サポートされていません |
ENGINE_NO_CACHE | サポートされています | サポートされていません |
INFORMATION.TABLE_UTILIZATION テーブル | サポート | サポートされていません |
INFORMATION_SCHEMA.INNODB_LOCK_WAITS テーブルの requesting_thd_id および blocking_thd_id カラム | サポートされています | サポートされていません |
INFORMATION_SCHEMA.INNODB_RSEG テーブル | サポートされています | サポートされていません |
INFORMATION_SCHEMA.INNODB_IO_STATUS テーブル | サポートされています | サポートされていません |
カラム圧縮機能 | サポートされています | サポートされていません |
クエリプランキャッシュ | サポートされています | サポートされていません |
Limit + Union 構文 | 括弧は不要です。 | 括弧が必要です。 |
SHOW FULL PROCESSLIST 構文 | MySQL 5.7 では、memory および query_memory カラムが結果から削除されます。 | |
max_statement_time および max_execution_time | MySQL 5.7 では、max_statement_time は削除され、max_execution_time のみが保持されます。 | |
RDS_SQL_MAX_AFFECTED 構文 | MySQL 5.7 では、RDS_SQL_MAX_AFFECTED を使用して単一の UPDATE または DELETE 文で影響を受けるレコード数を制限することはできなくなりました。代わりに rds_sql_max_affected_rows 変数を使用してください。 | |
同時実行パフォーマンスの最適化調整 | MySQL 5.7 では、同時実行制御のために以下のパラメータはサポートされなくなりました:
| |
接続数変数への調整 | MySQL 5.7 では以下の変数が削除されました:
| |
レプリケーション関連の調整 |
| |
ログ関連の調整 | MySQL 5.7 エラーログの調整:
| |
古い時間データ型 ( | バージョン 5.6.4 より前では、古い時間データ型はマイクロ秒をサポートしていませんでした。 | 時間データ型はマイクロ秒の精度をサポートします。 重要 5.6 から 5.7 へのアップグレード中、システムは古い時間データ型を持つフィールドを含むテーブルを検出し、再構築します。これにより、アップグレードプロセスが遅くなります。 |
付録 5: MySQL 5.5 と MySQL 5.6 の機能の違い
次の表は、MySQL 5.5 と 5.6 の重要な違いの一部のみをリストしています。その他の違いについては、「MySQL 5.6 リファレンスマニュアル」をご参照ください。
特徴 | MySQL 5.5 | MySQL 5.6 |
フルテキストインデックス | サポート対象外 | サポート |
InnoDB オンライン DDL | サポート対象外 | 部分的にサポート |
REDO | 最大 4 GB をサポート | 最大 512 GB をサポート |
ダーティページのフラッシュ | シングルスレッド | 別のフラッシュスレッドを使用 |
パージ | シングルスレッド | マルチスレッド |
EXCHANGE PARTITION | サポート対象外 | サポート |
DML での明示的なパーティション選択 | サポート対象外 | サポート |
INFORMATION_SCHEMA | MySQL 5.6 は、バッファープールに関するより多くの情報と、テーブル、インデックス、およびフィールドに関するより多くのメタデータを提供します。 | |
PERFORMANCE_SCHEMA | MySQL 5.6 の Performance Schema は、より多くの監視情報と表示フォーマットを追加します。 | |
レプリケーション | MySQL 5.6 のレプリケーションの強化と変更には、以下が含まれます:
重要 RDS for MySQL インスタンスが 5.5 から 5.6 にアップグレードされると、自動的に GTID ベースのレプリケーションモードに切り替わります。 | |
オプティマイザー | MySQL 5.6 は、以下の機能を含むオプティマイザーを強化します:
| |
サポート対象外 | サポート | |
サポート対象外 | サポート | |
サポート対象外 | サポート | |
サポート対象外 | サポート | |
サポート対象外 | サポート | |
よくある質問
Q: アップグレード中にインスタンスのスイッチオーバーが発生するのはなぜですか?他に深刻なリスクはありますか?
A: サービスの安定性を確保するために、高性能ローカルディスクを持つインスタンスは、まずセカンダリノードをアップグレードしてからスイッチオーバーを実行することでアップグレードされます。ESSD を持つインスタンスは、新しいノードを作成してからスイッチオーバーを実行することでアップグレードされます。他に深刻なリスクはありません。プライマリ/セカンダリフェールオーバーの影響の詳細については、「プライマリ/セカンダリフェールオーバーの影響」をご参照ください。
Q: プライマリノードとセカンダリノードは同時にアップグレードされますか?
A: 高性能ローカルディスクをアップグレードする場合、まずセカンダリインスタンスがアップグレードされ、次にプライマリインスタンスがアップグレードされます。
Q: MySQL 5.7 を実行し、標準 SSD を使用する Basic Edition インスタンスをアップグレードするにはどうすればよいですか?
A: このタイプのインスタンスを直接アップグレードすることはできません。MySQL 5.7 を実行し、標準 SSD を使用する Basic Edition インスタンスをアップグレードするには、まずストレージタイプを標準 SSD から ESSD に変更し、次にデータベースバージョンをアップグレードする必要があります。
Q: データベースバージョンをアップグレードした後、パラメータテンプレートは保持されますか?
A: 場合によります。アップグレード前にインスタンスがシステムパラメータテンプレートを使用している場合、新しいバージョンの対応するシステムパラメータテンプレートに自動的に切り替わります。たとえば、MySQL_InnoDB_5.7_High-availability_Performance パラメータテンプレートを使用しているインスタンスは、MySQL 5.7 から 8.0 へのアップグレード後に MySQL_InnoDB_8.0_High-availability_Performance パラメータテンプレートに切り替わります。ただし、インスタンスがカスタムパラメータテンプレートを使用している場合、アップグレード後にパラメータテンプレートは保持されません。
Q: データベースバージョンのアップグレード中にインスタンスを変更できますか?
A: いいえ、できません。アップグレードが完了した後にのみ、インスタンスで他の操作を実行できます。
Q: データベースバージョンは自動アップグレードをサポートしていますか?
A: いいえ、サポートしていません。自動メジャーバージョンアップグレードはサポートされていません。
Q: データベースバージョンをダウングレードできますか?
A: いいえ、コンソールから直接バージョンをダウングレードすることはできません。ダウングレードするには、以前のバージョンのインスタンスを購入し、DTS を使用して新しいバージョンのインスタンスから新しいインスタンスにデータを移行できます。移行が完了したら、新しいバージョンのインスタンスをリリースできます。詳細については、「RDS インスタンス間のデータ移行」をご参照ください。
Q: RDS for MySQL インスタンスを 5.6 から 5.7 または 5.7 から 8.0 にアップグレードすると、アップグレードが失敗します。「現在のインスタンスにはフルテキストインデックスがあり、そのマイナーバージョンは 20221130 より前です。フルテキストインデックスを削除して再構築する前に、マイナーバージョンをアップグレードしてください」または「現在のインスタンスにはシステムテーブルスペースに構築されたフルテキストインデックスが含まれています。アップグレードを続行する前に、対応するフルテキストインデックスを削除して再構築してください」というメッセージが表示されます。原因と解決策は何ですか?
A: 原因と解決策は次のとおりです:
原因
MySQL の歴史的な問題により、MySQL 5.6 の初期バージョンでフルテキストインデックスを作成すると、システムテーブルスペースに構築されます。バージョン 5.7 または 8.0 にアップグレードすると、システムテーブルスペース内のフルテキストインデックスがテーブルスペースの破損を引き起こす可能性があります。したがって、データの破損やアクセス不能を防ぐために、アップグレード前にこの問題を解決する必要があります。
説明この問題は、RDS for MySQL 5.6 バージョン 20221130 で修正されました。フルテキストインデックスは、別のテーブルスペースに構築されるようになりました。
解決策
重要RDS for MySQL 5.6 の以前のバージョンのフルテキストインデックスは、システムテーブルスペースに作成されます。したがって、RDS for MySQL 5.7 にアップグレードする前に、アップグレード元のバージョンが RDS for MySQL 5.6 20221130 以降であることを確認してください。以前のバージョンを使用している場合は、まず RDS for MySQL 5.6 の最新バージョンにアップグレードしてください。
プロンプトのテーブル名に基づいて、システムテーブルスペースに構築されたフルテキストインデックスを削除します。
# フルテキストインデックスを削除します。 ALTER TABLE $table_name DROP INDEX $fts_name;フルテキストインデックスを再作成します。
# フルテキストインデックスを再作成します。 ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;インデックスを作成した後、次の SQL 文を実行して、現在のインスタンスのフルテキストインデックスを確認できます。この文は、システムテーブルスペースに構築されたフルテキストインデックスを返します。クエリが空の結果を返す場合、RDS for MySQL 5.6 から RDS for MySQL 5.7 へのアップグレードはこの問題のために失敗しません。
# システムテーブルスペースに構築されたフルテキストインデックスをクエリします。 SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
Q: RDS for MySQL インスタンスを 5.7 から 8.0 にアップグレードすると、エラー
267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='が報告されます。どのように対処すればよいですか?A: MySQL の文字セットと照合順序を確認してください。utf8mb4_general_ci を使用している場合は、次の SQL 文を実行して utf8mb4_0900_ai_ci に変更してください。
# データベースの文字セットと照合順序を変更します。 ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; # テーブルの文字セットと照合順序を変更します。 ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; # フィールドの文字セットと照合順序を変更します。 ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;MySQL 5.7 で utf8mb4_general_ci 照合順序でテーブルを作成し、MySQL 8.0 にアップグレードすると、システムは utf8mb4_0900_ai_ci をデフォルトの照合順序として使用します。utf8mb4_general_ci を使用する列と utf8mb4_0900_ai_ci を使用する列を比較するクエリを実行すると、MySQL は 2 つの異なる照合順序を処理できず、エラーが発生します。
Q: メジャーバージョンのアップグレード中の一時的な接続時間は、読み取り専用インスタンスの有無にかかわらず、常に 30〜60 秒ですか?
A: はい、そうです。オフピーク時にアップグレードを実行することをお勧めします。
関連 API 操作
API 操作 | 説明 |
RDS インスタンスのメジャーデータベースバージョンをアップグレードします。 |