このトピックでは、ApsaraDB RDS for MySQLインスタンスのメジャーエンジンバージョンをアップグレードする方法について説明します。 ApsaraDB RDSコンソールで、RDSインスタンスのメジャーエンジンバージョンをアップグレードできます。 必要なメジャーエンジンバージョンを実行するRDSインスタンスを作成し、Data Transmission Service (DTS) 移行タスクを使用して元のRDSインスタンスのデータを新しいRDSインスタンスに移行し、メジャーエンジンバージョンをアップグレードすることもできます。
アップグレード方法の選択
RDSインスタンスのメジャーエンジンバージョンをアップグレードするには、方法1: ApsaraDB RDSコンソールでメジャーエンジンバージョンをアップグレードすると方法2: DTSコンソールでメジャーエンジンバージョンをアップグレードするの2つの方法を使用します。 2つの方法を使用して、サポートされているすべてのMySQLバージョンを実行するRDSインスタンスのメジャーエンジンバージョンをアップグレードできます。 たとえば、RDSインスタンスのメジャーエンジンバージョンをMySQL 5.5からMySQL 5.6に、MySQL 5.6からMySQL 5.7に、またはMySQL 5.7からMySQL 8.0にアップグレードできます。
RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、ビジネス要件に基づいてアップグレード方法を選択する必要があります。
RDSインスタンスが次のいずれかのカテゴリに分類され、そのカテゴリの設定要件を満たしている場合は、方法1: ApsaraDB RDSコンソールでメジャーエンジンのバージョンをアップグレードすることを推奨します。
ESSDでRDS Cluster Editionを実行するRDSインスタンス
グループレプリケーション: RDSクラスターはMySQLグループレプリケーション (MGR) を使用していません。 RDSクラスターがMGRを使用している場合、メジャーエンジンのバージョンをアップグレードすることはできません。 RDS Cluster Editionを実行するRDSインスタンスは、RDSクラスターと呼ばれます。 詳細については、「MGRモードの概要」をご参照ください。
データベースプロキシ: RDSクラスターでデータベースプロキシ機能が有効になっている場合、データベースプロキシのバージョンは1.13.41以降である必要があります。
インスタンスステータス: RDSクラスターの状態は実行中です。 RDSクラスターのプライマリノードとセカンダリノードは期待どおりに実行され、ノード間にレプリケーションの待ち時間はありません。
データベースエンジン: RDSクラスターのデータベースとデータベース内のすべてのテーブルはInnoDBを使用します。
インスタンスタイプ: RDSクラスターはフェーズアウトインスタンスタイプを使用していません。 詳細については、「標準プライマリApsaraDB RDS For MySQLインスタンスのインスタンスタイプ (オリジナルのx86アーキテクチャ) 」をご参照ください。
ESSDでRDS High-availability Editionを実行するRDSインスタンス
データベースプロキシ: RDSインスタンスでデータベースプロキシ機能が有効になっている場合、データベースプロキシのバージョンは1.13.41以降である必要があります。
インスタンスステータス: RDSインスタンスの状態は実行中です。 プライマリRDSインスタンスとセカンダリRDSインスタンスは期待どおりに実行され、RDSインスタンス間にレプリケーションレイテンシは存在しません。
データベースエンジン: RDSインスタンスのデータベースとデータベース内のすべてのテーブルはInnoDBを使用します。
インスタンスタイプ: RDSインスタンスはフェーズアウトインスタンスタイプを使用していません。 詳細については、「標準プライマリApsaraDB RDS For MySQLインスタンスのインスタンスタイプ (オリジナルのx86アーキテクチャ) 」をご参照ください。
ローカルSSDでRDS high-availability Editionを実行するRDSインスタンス
暗号化: RDSインスタンスの透過データ暗号化 (TDE) 機能は無効になっています。 TDE機能が有効になっている場合、TDE機能を無効にすることはできません。 この場合、方法2: DTSコンソールでのメジャーエンジンのバージョンのアップグレードに基づいて、メジャーエンジンのバージョンをアップグレードすることを推奨します。
データベースプロキシ: RDSインスタンスでデータベースプロキシ機能が有効になっている場合、データベースプロキシのバージョンは1.13.41以降である必要があります。
インスタンスステータス: RDSインスタンスの状態は実行中です。 プライマリRDSインスタンスとセカンダリRDSインスタンスは期待どおりに実行され、RDSインスタンス間にレプリケーションレイテンシは存在しません。
最大テーブル数:: RDSインスタンスに最大1,000,000個のテーブルを含めることができます。
データベースエンジン: RDSインスタンスのデータベースとデータベース内のすべてのテーブルはInnoDBを使用します。
インスタンスタイプ: アップグレード後のメジャーエンジンバージョンは、プライマリインスタンスと読み取り専用インスタンスの元のインスタンスタイプをサポートしている必要があります。 さらに、RDSインスタンスは、段階的に廃止されたインスタンスタイプを使用しません。 詳細については、「Phased-out ApsaraDB RDS For MySQLインスタンスタイプ」をご参照ください。
ESSDでRDS Basic Editionを実行するRDSインスタンス
インスタンスステータス: RDSインスタンスの状態は実行中です。
データベースエンジン: RDSインスタンスのデータベースとデータベース内のすべてのテーブルはInnoDBを使用します。
インスタンスタイプ: RDSインスタンスはフェーズアウトインスタンスタイプを使用していません。 詳細については、「標準プライマリApsaraDB RDS For MySQLインスタンスのインスタンスタイプ (オリジナルのx86アーキテクチャ) 」をご参照ください。
RDSインスタンスが上記のカテゴリに該当しない場合、またはRDSインスタンスのTDE機能が有効になっている場合は、方法2: DTSコンソールでメジャーエンジンのバージョンをアップグレードすることを推奨します。
RDSインスタンスが上記のいずれかのカテゴリに分類されるが、そのカテゴリの設定要件を満たしていない場合は、設定を変更し、方法1: ApsaraDB RDSコンソールでメジャーエンジンのバージョンをアップグレードまたは方法2: DTSコンソールでメジャーエンジンのバージョンをアップグレードします。
項目
解決策
RDSインスタンスは、[再起動] などの別の状態です。
進行中のタスクが完了したら、メジャーエンジンのバージョンをアップグレードします。
ローカルSSDでRDS High-availability Editionを実行するRDSインスタンスのテーブル数が1,000,000を超えています。
メジャーエンジンのバージョンをアップグレードする前に、冗長テーブルを削除します。
特定のデータベースとテーブルはInnoDBを使用しません。
ALTER TABLE <Table name> engine=InnoDB;
文を実行して、エンジンをInnoDBに変更します。RDSインスタンスは、フェーズアウトインスタンスタイプを使用します。
メジャーエンジンのバージョンをアップグレードする前に、インスタンスタイプをアップグレードします。 詳細については、「インスタンス仕様の変更」をご参照ください。
データベースプロキシのバージョンが要件を満たしていません。
データベースプロキシバージョンを1.13.41以降にアップグレードします。 詳細については、「データベースプロキシバージョンのアップグレード」をご参照ください。
別のデータベースエンジンを実行するRDSインスタンスのメジャーエンジンバージョンをアップグレードする方法の詳細については、以下のトピックを参照してください。
方法1: ApsaraDB RDSコンソールでメジャーエンジンのバージョンをアップグレードする
準備
元と必須の主要なエンジンバージョンの違いと利点を理解します
MySQL 5.6からMySQL 5.7へのアップグレード: 機能比較の詳細については、「付録4: MySQL 5.6とMySQL 5.7の違い」をご参照ください。 アップグレードの利点の詳細については、「付録2: MySQL 5.6を超えるMySQL 5.7の利点」をご参照ください。
MySQL 5.7からMySQL 8.0へのアップグレード: 機能比較の詳細については、「付録3: MySQL 5.7とMySQL 8.0の違い」をご参照ください。 アップグレードの利点の詳細については、「付録1: MySQL 5.7を超えるMySQL 8.0の利点」をご参照ください。
アップグレードのプロセスと影響を理解する
バージョン: ApsaraDB RDSコンソールでは、メジャーエンジンのバージョン間でRDSインスタンスをアップグレードすることはできません。 メジャーエンジンのバージョンをアップグレードした後は、アップグレードをロールバックできません。 たとえば、メジャーエンジンのバージョンをMySQL 5.6からMySQL 8.0にアップグレードする場合は、メジャーエンジンのバージョンをMySQL 5.6からMySQL 5.7にアップグレードしてからMySQL 8.0にアップグレードする必要があります。
ローカルSSDを使用するRDSインスタンスのアップグレード手順: セカンダリRDSインスタンスのメジャーエンジンバージョンが最初にアップグレードされます。 アップグレードが完了すると、プライマリ /セカンダリの切り替えが実行されます。 次に、プライマリRDSインスタンスのメジャーエンジンバージョンがアップグレードされます。 アップグレード中、ワークロードは30秒から1分間中断されます。 オフピーク時にアップグレードを実行することを推奨します。
エンタープライズSSD (ESSD) を使用するRDSインスタンスのアップグレード手順: インスタンスが作成され、新しいRDSインスタンスでメジャーエンジンバージョンのアップグレードが実行されます。 アップグレードが完了すると、データは元のRDSインスタンスから新しいRDSインスタンスに移行されます。 アップグレード中、ワークロードは30秒から1分間中断されます。 オフピーク時にアップグレードを実行することを推奨します。
インスタンスとデータベースの設定の確認
予約済みキーワードの確認: ユーザー定義関数を確認して、予約済みキーワードが関数で使用されているかどうかを確認する必要があります。 詳細については、「ApsaraDB RDS For MySQLインスタンスの予約済みキーワード」をご参照ください。
完全バックアップの確認: メジャーエンジンのバージョンをアップグレードする前に、最新の7日間に完全バックアップが実行されているかどうかを確認する必要があります。 最新の7日間に完全バックアップが実行されない場合は、完全バックアップを実行する必要があります。
自動再接続メカニズムの確認: メジャーエンジンバージョンのアップグレード中に、インスタンスの切り替えがトリガーされます。 オフピーク時にアップグレードを実行するか、RDSインスタンスに自動的に再接続するようにアプリケーションが設定されていることを確認することを推奨します。 インスタンスの切り替えの影響の詳細については、「インスタンスの切り替えの影響」をご参照ください。
使用可能なストレージの確認: メジャーエンジンのバージョンをアップグレードする前に、アップグレード用に十分なストレージが確保されていることを確認してください。 10 GBを超えるストレージを予約することを推奨します。
ログクリーンアップポリシーの調整: ログファイルの保持期間と最大ストレージ使用量を増やす必要があります。 詳細については、「バイナリログファイルの管理」をご参照ください。
バックアップインスタンスパラメーター: メジャーエンジンのバージョンをアップグレードすると、以前のバージョンで使用されていたインスタンスパラメーターを表示または変更できなくなります。 これにより、新しいMySQLバージョンを実行するRDSインスタンスの安定性とパフォーマンスが保証されます。 RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、その後の操作と監査のためにパラメーター変更レコードをバックアップすることを推奨します。
RDSインスタンスのメジャーエンジンバージョンをMySQL 5.6からMySQL 5.7にアップグレードする場合、またはMySQL 5.7からMySQL 8.0にアップグレードする場合も、次の情報を確認する必要があります。
MySQL 5.6からMySQL 5.7へのアップグレード
フルテキストインデックスとバージョン情報の確認: MySQL 5.6のメジャーエンジンバージョンと20221130以前のマイナーエンジンバージョンを実行するRDSインスタンス上のデータベースのフルテキストインデックスを作成すると、システムテーブルスペースにフルテキストインデックスが作成されます。 この場合、メジャーエンジンのバージョンがMySQL 5.7にアップグレードされた後、テーブルスペースが破損する可能性があります。 インスタンスのマイナーエンジンバージョンが古い場合は、まずマイナーエンジンバージョンを最新バージョンに更新してから、メジャーエンジンバージョンをMySQL 5.7にアップグレードすることを推奨します。 詳細については、「メジャーエンジンのバージョンのアップグレード」をご参照ください。
MySQL 5.7からMySQL 8.0へのアップグレード
機能の互換性の確認: MySQL 5.7のストアドプロシージャ、トリガー、ビュー、または関数にMySQL 8.0でサポートされていない機能が含まれている場合は、アップグレード前にそれらを変更する必要があります。 それ以外の場合、アップグレードは失敗します。 詳細については、「MySQL 8.0の変更」をご参照ください。
Check system table dependencies:: ワークロードが、sys、MySQL、information_schema、performance_schemaなどのmysql 5.7のシステムテーブルに依存しているかどうかを確認する必要があります。 MySQL 8.0へのアップグレード後、MySQL 5.7の特定のシステムテーブルが変更される場合があります。 たとえば、テーブルが削除されたり、テーブル名が変更されたり、テーブルスキーマが変更されたりします。 ワークロードが依存するシステムテーブルが変更されると、エラーが発生する可能性があります。
データ型の互換性の確認: MySQL 8.0を実行するRDSインスタンスは、特定のデータ型をサポートしていません。 MySQL 8.0の特定のテーブルでサポートされていないデータ型が使用されている場合は、アップグレード前に
REPAIR TABLE
ステートメントを実行するか、論理エクスポートおよびインポートメソッドを使用して問題を解決する必要があります。 詳細については、「アップグレードのためのインストールの準備」をご参照ください。Check
comment
values:loose_upgrade_clear_invalid_comment
パラメーターは、MySQL 8.0のメジャーエンジンバージョンと20221231以降のマイナーエンジンバージョンを実行するRDSインスタンスに導入されました。 パラメーターがデフォルト値ON
を使用している場合、アップグレードの失敗を防ぐために、アップグレード中にテーブル、フィールド、およびインデックスの文字化けしたコメントが削除されます。 アップグレードの前に、コメント値に文字化け文字が存在するかどうかを確認する必要があります。 文字化け文字が存在する場合、コメントは削除されます。ストアドプロシージャの確認: MySQL 5.7データベースのストアドプロシージャまたは関数に無効な文字が含まれていないことを確認します。 そうしないと、アップグレードが失敗する可能性があります。
アップグレード前のテストとシミュレーション
構文のテスト: アップグレード前に、必要なメジャーエンジンバージョンを実行するRDSインスタンスを作成し、RDSインスタンスで構文をテストすることを推奨します。 これにより、構文または機能の非互換性の問題が防止されます。
アップグレードのシミュレーション: アップグレードの前に、元のRDSインスタンスを複製し、複製したRDSインスタンスを使用して、必要なメジャーエンジンバージョンがワークロードと互換性があるかどうかをテストすることを推奨します。 必要なメジャーエンジンバージョンがワークロードと互換性があることを確認したら、元のRDSインスタンスをアップグレードします。
アップグレード後の使用に関する注意事項
元のメジャーエンジンバージョンを実行しているRDSインスタンスを復元する: RDSインスタンスがクラウドディスクを使用している場合、RDSインスタンスのバックアップセットを使用してRDSインスタンスを復元できます。 RDSインスタンスがローカルディスクを使用している場合、RDSインスタンスのバックアップセットを使用してRDSインスタンスを復元することはできません。
新しいメジャーエンジンバージョンを実行するRDSインスタンスを復元する: 元のメジャーエンジンバージョンを実行するRDSインスタンスのバックアップセットを使用して、新しいメジャーエンジンバージョンを実行するRDSインスタンスを復元することはできません。 新しいメジャーエンジンバージョンを実行するRDSインスタンスを復元するには、アップグレード後にバックアップセットを作成する必要があります。
手順
次のシナリオでは、アップグレード前のチェックを実行し、チェックに合格した後にメジャーエンジンのバージョンをアップグレードする必要があります。
RDS High-availability Editionを実行し、ローカルSSDを使用するRDSインスタンスの場合、MySQL 5.6からMySQL 5.7にアップグレードし、次にMySQL 8.0にアップグレードする
RDS High-availability Editionを実行し、ESSDを使用するRDSインスタンスのMySQL 5.7からMySQL 8.0へのアップグレード
他のシナリオでは、メジャーエンジンのバージョンを直接アップグレードできます。
アップグレード前のチェックを実行し、チェックに合格した後にメジャーエンジンのバージョンをアップグレードする
ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[メジャーバージョンのアップグレード] をクリックします。 次に、[アップグレードチェック] タブをクリックします。
[アップグレードバージョンの選択] の横にあるドロップダウンリストから、メジャーエンジンのバージョンを選択します。 次に、[アップグレードチェックレポートの作成] をクリックします。 レポートの詳細については、「メジャーエンジンバージョンのアップグレードのレポートの詳細の確認」をご参照ください。
アップグレードチェックが完了し、リスクが検出されなくなったら、[インスタンスのアップグレード] タブをクリックします。
[アップグレードバージョンの選択] の横にあるドロップダウンリストで、RDSインスタンスをアップグレードするバージョンを選択し、[インスタンスのアップグレード] をクリックします。
[メジャーエンジンバージョンのアップグレード] ダイアログボックスで、RDSインスタンスをアップグレードするバージョンを確認し、[切り替え時間] パラメーターを設定し、[アップグレード] をクリックします。
直接アップグレード
ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
[基本情報] ページの [設定情報] セクションで、[メジャーエンジンバージョンのアップグレード] をクリックします。
説明メジャーエンジンバージョンのアップグレードが表示されない場合は、RDSインスタンスのメジャーエンジンバージョンがアップグレード要件を満たしているかどうかを確認します。
表示されるダイアログボックスで、すぐに切り替えるまたはメンテナンス期間内の切り替えをクリックし、はい.
すぐに切り替える: アップグレードが完了すると、システムはすぐにワークロードを切り替えます。
メンテナンス期間内の切り替え: アップグレードが完了すると、指定されたメンテナンス期間内にワークロードが切り替えられます。 詳細については、「メンテナンス期間の設定」をご参照ください。 [メンテナンスウィンドウ] の右側にある [設定] をクリックして、メンテナンスウィンドウを変更することもできます。
説明アップグレード中、RDSインスタンスのステータスは [バージョンの移行] です。
方法2: DTSコンソールでメジャーエンジンのバージョンをアップグレードする
ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードできない場合、必要なメジャーエンジンバージョンとDTSデータ移行タスクを実行するRDSインスタンスを作成し、元のRDSインスタンスのデータを新しいRDSインスタンスに移行してメジャーエンジンバージョンをアップグレードできます。
必要なメジャーエンジンバージョンを実行するRDSインスタンスを作成します。 詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
元のRDSインスタンスのデータを新しいRDSインスタンスに移行します。 詳細については、「ApsaraDB RDS For MySQLインスタンス間のデータ移行」をご参照ください。
元のRDSインスタンスをリリースします。 詳細については、「ApsaraDB RDS For MySQL インスタンスのリリースまたはサブスクリプション解除」をご参照ください。
例: RDSインスタンスがMySQL 5.7を実行し、RDSインスタンスに対してTDE機能が有効になっている場合、ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。 この場合、MySQL 8.0を実行するRDSインスタンスを作成し、元のRDSインスタンスのデータを新しいRDSインスタンスに移行してから、元のRDSインスタンスをリリースできます。
アップグレード後、新しいメジャーエンジンバージョンがワークロードと互換性があることを確認し、新しいRDSインスタンスを一定期間監視する必要があります。 新しいRDSインスタンスでワークロードが期待どおりに実行されることを確認したら、元のRDSインスタンスをリリースできます。
付録1: MySQL 5.7に対するMySQL 8.0の利点
データベースシステムのセキュリティが強化されます。 より柔軟な方法でアカウントを管理できます。
リソースグループを作成および管理できます。
InnoDBストレージエンジンの機能が強化されました。
新しい文字セット、データ型、および構文がサポートされています。 バックアップロックとoptimizer_switchフラグが導入されます。
JSONおよびXML式が強化されました。
オプティマイザが強化される。
レプリケーションのパフォーマンスが向上します。
複数値のインデックスを作成できます。 派生条件のプッシュダウンが最適化されます。
MySQLグラントテーブルを読み取ることができます。
リソース割り当て制御がサポートされています。
付録2: MySQL 5.6に対するMySQL 5.7の利点
パスワード管理、アカウントロック、接続暗号化などの新機能が導入されました。 これらの新機能は、データベースシステムのセキュリティを向上させるのに役立ちます。
オンラインDDL操作がサポートされています。 たとえば、RENAME INDEXを使用してインデックスの名前を変更できます。
InnoDBストレージエンジンのスケーラビリティと一時的なInnoDBテーブルのパフォーマンスが最適化され、データの読み込みが高速化されます。
JSON式がサポートされています。
インデックス条件プッシュダウン (ICP) はパーティションテーブルでサポートされ、空間インデックスはInnoDBテーブルでサポートされます。
使用されるパーサー、オプティマイザ、およびコストモデルのほとんどは、データベースシステムの保守性、スケーラビリティ、およびパフォーマンスを向上させるために最適化されています。
新しい文字セットがサポートされています。 文字セットには、中国国家標準GB 18030-2005: Information technology - Chinese coded文字セットで定義されているgb18030文字セットが含まれます。
ngramフルテキストパーサープラグインが提供されています。 このプラグインは、中国語、日本語、韓国語 (CJK) をサポートしています。
ダンプスレッドは、ロック競合を減らし、スループットを高めるように最適化されています。
レプリケーションの待ち時間が大幅に削減されます。
複数のメトリックをサポートするために、sysシステムデータベースが追加されます。 これらのメトリックは、ストレージ使用量の削減とデータベース管理の簡素化に役立ちます。
付録3: MySQL 5.7とMySQL 8.0の違い
次の表は、MySQL 5.7とMySQL 8.0の主な違いのみを示しています。 詳細については、「MySQLリリースノート」をご参照ください。
特徴 | 5.7 | 8.0 |
許可された... パスワードによる識別 | 対応 | 非対応 |
パスワード () 関数 | 対応 | 非対応 |
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() などの暗号化関数 | 対応 | 非対応 |
詳細については、「オープンソースMySQLドキュメント」をご参照ください。 | 対応 | 非対応 |
以前はよく知られているバイナリ (WKB) 文字列またはジオメトリ引数を受け入れたが、ジオメトリ引数を受け入れなくなった関数 | 対応 | 非対応 |
\NからNULLへの解決 | 対応 | 非対応 |
PROCEDURE ANALYSE() 関数 | 対応 | 非対応 |
NDBストレージエンジンを使用したパーティションテーブルの作成 | 対応 | 非対応 |
InnoDBストレージエンジンを使用した一時テーブルの圧縮 | 対応 | 非対応 |
JSON_APPEND() 関数 | 対応 | 非対応 |
共有テーブルスペースへのテーブルパーティションの配置 | 対応 | 非対応 |
ALTER TABLE... アップグレード参加 | 対応 | 非対応 |
付録4: MySQL 5.6とMySQL 5.7の違い
次の表は、MySQL 5.6とMySQL 5.7の主な違いのみを示しています。 詳細については、「MySQLリリースノート」をご参照ください。
特徴 | MySQL 5.6 | MySQL 5.7 |
グローバルトランザクション識別子 (GTID) が有効な場合のCREATE...AS SELECT | 対応 | 非対応 |
GTIDが有効な場合の一時テーブルの使用 | 対応 | 非対応 |
パーティションテーブルでのパーティションキーの設定 | 対応 | 非対応 |
ENGINE_NO_CACHE | 対応 | 非対応 |
見えないインデックス | 対応 | 非対応 |
UPDATE non_affected_rows INSERT | 対応 | 非対応 |
プロキシ関连のコマンド | SETコマンドモードでサポート | コールプロシージャモードでサポート |
TokuDB、Sphinx、RocksDB、およびMEMORYストレージエンジン | 対応 | 非対応 |
str_ord() 関数 | 対応 | 非対応 |
raiseerror() 関数 | 対応 | 非対応 |
最適化テーブルテーブル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の構文 | 括弧 () は不要 | 括弧 () が必要 |
フルプロセッサリストを表示 | MySQL 5.7のSHOW FULL PROCESSLISTステートメントによって返される結果から、memory列とquery_memory列が削除されます。 | |
max_statement_timeおよびmax_execution_time | max_statement_timeパラメーターはMySQL 5.7から削除されます。 max_execution_timeパラメーターはMySQL 5.7に保持されます。 | |
RDS_SQL_MAX_AFFECTED | UPDATEまたはDELETEステートメントが実行される行数は、MySQL 5.7のRDS_SQL_MAX_AFFECTED変数で指定できなくなりました。 行数は、rds_sql_max_affected_rows変数で指定されます。 | |
同時実行制御のパフォーマンスの最適化と調整 | 次のパラメーターは、MySQL 5.7の同時実行制御に使用できなくなりました。
| |
接続数の指定に使用する変数 | MySQL 5.7から次の変数が削除されます。
| |
レプリケーション関連の調整 |
| |
ログ関連の調整 | MySQL 5.7のエラーログには、次の調整が行われます。
|
付録5: MySQL 5.5とMySQL 5.6の違い
次の表は、MySQL 5.5とMySQL 5.6の主な違いのみを示しています。 詳細については、「MySQL 5.6リファレンスマニュアル」をご参照ください。
特徴 | MySQL 5.5 | MySQL 5.6 |
フルテキストインデックス | 非対応 | 対応 |
InnoDBオンラインDDL | 非対応 | 一部対応 |
Redoログのファイルサイズ | redoログファイルの最大サイズは4 GBです。 | redoログファイルの最大サイズは512 GBです。 |
汚れたページのフラッシング | 単一のスレッドによって実行されます。 | 専用スレッドによって実行されます。 |
消去 | 単一のスレッドによって実行されます。 | 複数のスレッドによって実行されます。 |
交換パーティー | 非対応 | 対応 |
DMLを使用した明示的なパーティション選択 | 非対応 | 対応 |
INFORMATION_SCHEMA | MySQL 5.6は、テーブル、インデックス、フィールドなど、バッファプールに関連するメタデータと情報を提供します。 | |
PERFORMANCE_SCHEMA | MySQL 5.6のパフォーマンススキーマ (PFS) は、より多くのモニタリング情報をサポートし、情報を表示するためのより多くのメソッドを提供します。 | |
レプリケーション | MySQL 5.6でレプリケーション機能が強化され、変更されました。
重要 RDSインスタンスのメジャーエンジンバージョンをMySQL 5.5からMySQL 5.6にアップグレードすると、レプリケーションモードは自動的にGTIDベースのレプリケーションに変更されます。 | |
オプティマイザ | オプティマイザはMySQL 5.6で強化されます。
| |
大きなファイルを非同期でパージする | 非対応 | 対応 |
非対応 | 対応 | |
非対応 | 対応 | |
非対応 | 対応 | |
非対応 | 対応 |
reshardingに関連するトラブルシューティング
RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、インスタンスの切り替えが発生するのはなぜですか。 アップグレードは他の深刻なリスクを引き起こしますか?
RDSインスタンスがローカルSSDを使用している場合、システムはセカンダリRDSインスタンスのメジャーエンジンバージョンをアップグレードします。 次に、プライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、ワークロードをセカンダリRDSインスタンスに切り替えます。 これにより、サービスの安定性が保証される。 RDSインスタンスがESSDを使用している場合、システムはRDSインスタンスを作成し、新しいRDSインスタンスのメジャーエンジンバージョンを必要なバージョンにアップグレードします。 次に、システムは元のRDSインスタンスから新しいRDSインスタンスにワークロードを切り替えます。この場合、プライマリ /セカンダリの切り替えが発生します。 主要なエンジンバージョンのアップグレードは、他の深刻なリスクを引き起こしません。 プライマリ /セカンダリの切り替えの影響の詳細については、「影響」をご参照ください。
システムは、プライマリRDSインスタンスとセカンダリRDSインスタンスのメジャーエンジンバージョンを同時にアップグレードしますか?
いいえ。 RDSインスタンスがローカルSSDを使用している場合、システムはまずセカンダリRDSインスタンスのメジャーエンジンバージョンをアップグレードし、ワークロードをセカンダリRDSインスタンスに切り替えてから、プライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードします。
RDS Basic EditionでMySQL 5.7を実行するRDSインスタンスのメジャーエンジンバージョンを標準SSDにアップグレードするにはどうすればよいですか。
RDS Basic EditionでMySQL 5.7を実行するRDSインスタンスのメジャーエンジンバージョンを標準SSDに直接アップグレードすることはできません。 RDS Basic EditionでMySQL 5.7を実行するRDSインスタンスのメジャーエンジンバージョンを標準SSDにアップグレードする場合、RDSインスタンスのRDSエディションをRDS Basic editionからRDS High-availability Editionにアップグレードし、RDSインスタンスのストレージタイプを変更する必要があります。
RDSインスタンスのメジャーエンジンバージョンをアップグレードした後、RDSインスタンスに適用されるパラメーターテンプレートが変更されますか。
答えはさまざまです。 RDSインスタンスのメジャーエンジンをMySQL 5.7からMySQL 8.0にアップグレードするとします。 RDSインスタンスがアップグレード前にシステムパラメータテンプレートを使用している場合、RDSインスタンスはアップグレード後に元のテンプレートに対応するシステムパラメータテンプレートを使用します。 たとえば、RDSインスタンスがMySQL_InnoDB_5.7_RDS高可用性Edition_High-performanceパラメータテンプレートを使用している場合、RDSインスタンスはアップグレード後にMySQL_InnoDB_8.0_RDS高可用性Edition_High-performanceパラメータテンプレートを使用します。 RDSインスタンスがアップグレード前にカスタムパラメータテンプレートを使用している場合、テンプレートが保持されていないため、RDSインスタンスはアップグレード後にテンプレートを使用できません。
RDSインスタンスのメジャーエンジンバージョンをアップグレードするときに、RDSインスタンスの設定項目を変更できますか。
RDSインスタンスのメジャーエンジンバージョンをアップグレードする場合、RDSインスタンスの設定項目を変更することはできません。 RDSインスタンスで他の操作を実行できるのは、メジャーエンジンのバージョンがアップグレードされた後です。
ApsaraDB RDSはメジャーエンジンバージョンの自動アップグレードをサポートしていますか?
いいえ、RDSインスタンスのメジャーエンジンバージョンは自動アップグレードをサポートしていません。
RDSインスタンスのメジャーエンジンバージョンをダウングレードできますか。
いいえ。RDSインスタンスのメジャーエンジンバージョンをダウングレードしたり、メジャーエンジンバージョンのアップグレードをロールバックすることはできません。
RDSインスタンスのマイナーエンジンバージョンをMySQL 5.6からMySQL 5.7に、またはMySQL 5.7からMySQL 8.0にアップグレードすると、アップグレードが失敗し、エラーメッセージ "現在のインスタンスマイナーバージョンが20221130未満です。 フルテキストインデックスを削除または再構築する前に、マイナーバージョンをアップグレードしてください。または "現在のインスタンスには、システム表領域で作成されたフルテキストインデックスが含まれています。 アップグレードする前に、対応するフルテキストインデックスを削除して再構築します。が表示されます。 エラーの原因と解決策は何ですか?
エラーの原因と解決策を次に示します。
原因
MySQL 5.6とそれ以前のマイナーエンジンバージョンを実行するRDSインスタンスのフルテキストインデックスを作成すると、履歴上の理由により、システムテーブルスペースにフルテキストインデックスが作成されます。 RDSインスタンスのメジャーエンジンバージョンをMySQL 5.6からMySQL 5.7またはMySQL 8.0にアップグレードすると、システムテーブルスペースに作成されたフルテキストインデックスがテーブルスペースに損傷を与える可能性があります。 したがって、データの破損やアクセス不能などの問題を回避するために、アップグレード前にフルテキストインデックスを削除する必要があります。
説明上記の問題は、MySQL 5.6を実行するRDSインスタンスとマイナーエンジンバージョンの20221130で修正され、フルテキストインデックスはRDSインスタンス用に別のテーブルスペースに作成されます。
解決策
重要RDSインスタンスがMySQL 5.6を実行している場合は、RDSインスタンスのメジャーエンジンバージョンをMySQL 5.7にアップグレードするか、RDSインスタンスが20221130以降のマイナーエンジンを実行していることを確認します。 この場合、フルテキストインデックスはRDSインスタンスのシステム表領域に作成されません。 RDSインスタンスがMySQL 5.6および以前のマイナーエンジンバージョンを実行している場合は、RDSインスタンスを最新のマイナーエンジンバージョンに更新します。
指定されたテーブル名に基づいて、システムテーブルスペースに作成されたフルテキストインデックスを削除します。
# Delete a full-text index. ALTER TABLE $table_name DROP INDEX $fts_name;
フルテキストインデックスを再作成します。
# Recreate the full-text index. ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
再作成後、次のSQL文を実行して、RDSインスタンス用に作成されたフルテキストインデックスを確認します。 システムテーブルスペースに作成されたフルテキストインデックスが返されない場合、システムテーブルスペースに作成されたフルテキストインデックスにより、メジャーエンジンのバージョンのMySQL 5.6からMySQL 5.7へのアップグレードが失敗することはありません。
# Query the full-text index created in the system tablespace. 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);
関連する API 操作
API 操作 | 説明 |
インスタンスのメジャーエンジンバージョンをアップグレードします。 |