ApsaraDB RDSでは、ApsaraDB RDSコンソールでApsaraDB RDS for MySQLインスタンスのメジャーエンジンバージョンをアップグレードできます。 RDSインスタンスのデータを、必要なメジャーエンジンバージョンを実行する新しいRDSインスタンスに移行して、メジャーエンジンバージョンをアップグレードすることもできます。 たとえば、透過的データ暗号化 (TDE) 機能が有効になっているRDSインスタンスのデータを移行できます。
アップグレード方法
方法1を使用してRDSインスタンスのメジャーエンジンバージョンをアップグレードできない場合は、方法2を試してください。
別のデータベースエンジンを実行するRDSインスタンスのメジャーエンジンバージョンをアップグレードする方法の詳細については、以下のトピックを参照してください。
方法1: ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードする
説明
ApsaraDB RDSコンソールで次のアップグレードを実行できます。
MySQL 5.7からMySQL 8.0へのアップグレード
MySQL 5.6からMySQL 5.7へのアップグレード
MySQL 5.5からMySQL 5.6へのアップグレード
制限
カテゴリ | 説明 |
インスタンス | インスタンスがRDS High-availability Editionを実行し、ローカルディスクを使用している場合にのみ、ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードできます。 |
読み取り専用RDSインスタンスのインスタンスタイプが同じである場合にのみ、複数の読み取り専用RDSインスタンスを持つプライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードできます。 読み取り専用RDSインスタンスのインスタンスタイプは、プライマリRDSインスタンスのインスタンスタイプとは異なる場合があります。 プライマリRDSインスタンスには、最大8つの読み取り専用RDSインスタンスを含めることができます。 読み取り専用RDSインスタンスをリリースし、プライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードしてから、読み取り専用RDSインスタンスを再作成することを推奨します。 詳細については、「ApsaraDB RDS For MySQLインスタンスのリリースまたはサブスクリプション解除」および「読み取り専用ApsaraDB RDS for MySQLインスタンスの作成」をご参照ください。 | |
RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、RDSインスタンスが [実行中] 状態であることを確認してください。 RDSインスタンスの状態が異なる場合 ([再起動] 、[ネットワーク接続の作成] など) 、メジャーエンジンバージョンをアップグレードする前に、進行中のタスクが完了するまで待つ必要があります。 | |
RDSインスタンスがRDS High-availability Editionを実行している場合、プライマリRDSインスタンスとセカンダリRDSインスタンスの両方が期待どおりに実行され、インスタンス間にレプリケーションレイテンシが存在しない場合にのみ、メジャーエンジンバージョンのアップグレードがサポートされます。 ApsaraDB RDSコンソールの [モニタリングとアラート] ページで、[ノードレプリケーションスレッドのステータス] と [ノードレプリケーションのレイテンシ (秒)] のメトリックを確認できます。 | |
アップグレード | RDSインスタンスのメジャーエンジンバージョンを次のメジャーエンジンバージョンにのみアップグレードできます。 たとえば、MySQL 5.6をMySQL 8.0にアップグレードする場合は、まずMySQL 5.6をMySQL 5.7にアップグレードし、次にMySQL 8.0にアップグレードする必要があります。 |
RDSインスタンスのメジャーエンジンバージョンをアップグレードした後は、メジャーエンジンバージョンをダウングレードすることはできません。 説明 RDSインスタンスのメジャーエンジンバージョンをアップグレードした後、アップグレード前に生成されたデータバックアップファイルを使用してRDSインスタンスのデータを復元することはできません。 RDSインスタンスのデータは、アップグレード後に生成されたデータバックアップファイルを使用してのみ復元できます。 | |
暗号化 | RDSインスタンスでSSL暗号化機能が有効になっている場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、この機能を無効にする必要があります。 詳細については、「SSL暗号化機能の設定」をご参照ください。 |
RDSインスタンスでTDE機能が有効になっている場合、ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。 この場合、方法2: DTSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードするの手順に基づいて、メジャーエンジンバージョンをアップグレードできます。 | |
データベース内のストアドプロシージャ、トリガー、ビュー、または関数にMySQL 8.0でサポートされていない機能が含まれている場合、MySQL 8.0へのアップグレードは失敗します。 詳細については、「MySQL 8.0の変更」をご参照ください。 | |
RDSインスタンスのデータベースに200,000を超えるテーブルが作成されている場合、メジャーエンジンバージョンのアップグレードはサポートされていません。 メジャーエンジンのバージョンをアップグレードする前に、データベース内のテーブル数が200,000を超えないように、不要になったテーブルを削除する必要があります。 | |
RDSインスタンスのストレージエンジンがMyISAM、MEMORY、TokuDB、Sphinx、またはRocksDBの場合、メジャーエンジンのバージョンをアップグレードする前に、RDSインスタンスのストレージエンジンをInnoDBに変更する必要があります。 説明 RDSインスタンスがInnoDBストレージエンジンを実行しているが、一部のテーブルが別のストレージエンジンを実行している場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、 | |
アップグレードの前に、mysql 5.7のsys、MySQL、information_schema、およびperformance_schemaデータベースのシステムテーブルにワークロードが依存しているかどうかを確認します。 MySQL 5.7の一部のシステムテーブルは、メジャーエンジンバージョンがMySQL 8.0にアップグレードされた後に変更される場合があります。 たとえば、テーブルが削除されたり、テーブル名が変更されたり、テーブルスキーマが変更されたりします。 ワークロードが変更されたテーブルに依存している場合、エラーが発生する可能性があります。 | |
インスタンスタイプ | RDSインスタンスがフェーズアウトインスタンスタイプを使用している場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、RDSインスタンスのインスタンスタイプをアップグレードする必要があります。 詳細については、「プライマリApsaraDB RDS For MySQLインスタンスタイプ」および「インスタンス仕様の変更」をご参照ください。 |
データベースプロキシ | RDSインスタンスがデータベースプロキシを使用している場合、データベースプロキシバージョンが1.13.41以降の場合にのみ、メジャーエンジンバージョンのアップグレードがサポートされます。 データベースプロキシバージョンが要件を満たしていない場合は、RDSインスタンスのメジャーエンジンバージョンをアップグレードする前にデータベースプロキシバージョンをアップグレードする必要があります。 データベースプロキシバージョンをアップグレードする方法の詳細については、「ApsaraDB RDS For MySQLインスタンスのデータベースプロキシバージョンのアップグレード」をご参照ください。 |
システムは、最初にセカンダリRDSインスタンスをアップグレードし、プライマリ /セカンダリスイッチオーバーを実行してから、元のプライマリRDSインスタンスをアップグレードします。 アップグレード中に、データベースシステムが最大5分間使用できなくなることがあります。 オフピーク時にメジャーエンジンのバージョンをアップグレードすることを推奨します。
準備
現在のメジャーエンジンバージョンとアップグレードするメジャーエンジンバージョンの違いを理解していることを確認してください。 アップグレードする前に、必要なメジャーエンジンバージョンを実行するRDSインスタンスを作成し、構文をテストして、アプリケーションで使用される機能と構文が新しいメジャーエンジンバージョンでサポートされていることを確認することをお勧めします。 たとえば、MySQL 8.0を実行するRDSインスタンスを作成できます。 メジャーエンジンのバージョンの違いの詳細については、次のトピックを参照してください。
RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、アップグレードするメジャーエンジンバージョンの利点を理解することをお勧めします。 詳細については、「付録1: MySQL 8.0 over MySQL 5.7」または「付録2: MySQL 5.7 over MySQL 5.6」をご参照ください。
メジャーエンジンのバージョンをアップグレードする前に、元のRDSインスタンスを複製し、複製したRDSインスタンスを使用して、新しいメジャーエンジンのバージョンがワークロードと互換性があるかどうかをテストすることを推奨します。 元のRDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、新しいメジャーエンジンバージョンのクローンRDSインスタンスが期待どおりに実行されることを確認してください。
メジャーエンジンのバージョンをアップグレードする前に、過去7日間にフルデータバックアップファイルが生成されたかどうかを確認してください。 過去7日間にフルデータバックアップファイルが生成されていない場合は、フルデータバックアップを実行します。
RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、インスタンスの切り替えが発生する場合があります。 オフピーク時にメジャーエンジンのバージョンをアップグレードするか、RDSインスタンスに自動的に再接続するようにアプリケーションが設定されていることを確認することを推奨します。 インスタンスの切り替えの影響の詳細については、「インスタンスの切り替えの影響」をご参照ください。
メジャーエンジンのバージョンをアップグレードする前に、使用可能なストレージの量が十分であることを確認してください。
ユーザー定義関数 (UDF) を作成するときは、予約キーワードを確認し、予約キーワードを使用しないことを推奨します。 詳細については、「ApsaraDB RDS For MySQLインスタンスの予約済みキーワード」をご参照ください。
ログファイルの保持ポリシーを変更することを推奨します。 ログファイルの保持期間と最大ストレージ使用量を増やすことができます。 詳細については、「ApsaraDB RDS For MySQLインスタンスのバックアップファイルを長期間保持する」をご参照ください。
メジャーエンジンのバージョンをMySQL 8.0にアップグレードする前に、データベーステーブルのコメントが文字化けしているかどうかを確認してください。 ガーブルコメントはアップグレード中に削除されます。
説明MySQL 8.0の20221231以降のマイナーエンジンバージョンでは、loose_upgrade_clear_invalid_commentパラメーターが導入されています。 パラメータのデフォルト値はONです。 パラメーターがONに設定されている場合、アップグレードの失敗を防ぐために、アップグレード中にテーブル、フィールド、およびインデックスから文字化けしたコメントが削除されます。
必要なメジャーエンジンバージョンを実行するRDSインスタンスの安定性とパフォーマンスを確保するために、RDSインスタンスのメジャーエンジンバージョンがアップグレードされた後、システムでは、新しいバージョンで非推奨のパラメーターを表示または変更できなくなりました。 RDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、後続の操作と監査のために関連パラメーターの変更レコードをバックアップすることを推奨します。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
[基本情報] ページの [設定情報] セクションで、[データベースのアップグレード] をクリックします。
説明データベースのアップグレードが表示されない場合は、RDSインスタンスのメジャーエンジンバージョンがアップグレード要件を満たしているかどうかを確認します。
表示されるダイアログボックスで、[すぐに切り替える] または [メンテナンス期間内に切り替える] を選択し、[OK] をクリックします。
すぐに切り替える: アップグレードが完了すると、システムはすぐにワークロードを切り替えます。
メンテナンス期間内の切り替え: アップグレードが完了すると、指定されたメンテナンス期間内にワークロードが切り替えられます。 詳細については、「ApsaraDB RDS For MySQLインスタンスのメンテナンス期間の設定」をご参照ください。 [メンテナンス期間] の右側にある [設定] をクリックして、メンテナンス期間を変更することもできます。
説明アップグレード中、RDSインスタンスのステータスは [バージョンの移行] です。
方法2: DTSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードする
ApsaraDB RDSコンソールでRDSインスタンスのメジャーエンジンバージョンをアップグレードできない場合、次の操作を実行してメジャーエンジンバージョンをアップグレードできます。
新しいメジャーエンジンバージョンを実行するRDSインスタンスを作成します。 詳細については、「ApsaraDB RDS For MySQLインスタンスの作成」をご参照ください。
元のRDSインスタンスのデータを新しいRDSインスタンスに移行します。 詳細については、「ApsaraDB RDS For MySQLインスタンス間のデータ移行」をご参照ください。
元のRDSインスタンスをリリースします。 詳細については、「ApsaraDB RDS For MySQL インスタンスのリリースまたはサブスクリプション解除」をご参照ください。
たとえば、MySQL 5.7を実行し、TDEが有効になっているRDSインスタンスのメジャーエンジンバージョンをMySQL 8.0にアップグレードする場合は、まずMySQL 8.0を実行するRDSインスタンスを作成し、元のRDSインスタンスのデータを新しい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リリースノート」をご参照ください。
機能 | 5.6 | 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のエラーログには、次の調整が行われます。
|
よくある質問
RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、インスタンスの切り替えが発生するのはなぜですか。 アップグレードは他の深刻なリスクを引き起こしますか?
サービスの安定性を確保するために、システムはセカンダリRDSインスタンスのメジャーエンジンバージョンをアップグレードします。 次に、プライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードする前に、ワークロードをセカンダリRDSインスタンスに切り替えます。 この場合、プライマリ /セカンダリの切り替えが発生します。 主要なエンジンバージョンのアップグレードは、他の深刻なリスクを引き起こしません。 プライマリ /セカンダリの切り替えの影響の詳細については、「影響」をご参照ください。
ApsaraDB RDSは、プライマリRDSインスタンスとセカンダリRDSインスタンスのメジャーエンジンバージョンを同時にアップグレードしますか。
いいえ。ApsaraDB RDSでは、まずセカンダリRDSインスタンスのメジャーエンジンバージョンをアップグレードし、ワークロードをセカンダリRDSインスタンスに切り替えてから、プライマリRDSインスタンスのメジャーエンジンバージョンをアップグレードします。
ApsaraDB RDSコンソールでRDS Basic Editionを実行するRDSインスタンスのメジャーエンジンバージョンをアップグレードするエントリポイントが見つからないのはなぜですか。 RDSインスタンスのメジャーエンジンバージョンをアップグレードするにはどうすればよいですか。
RDS Basic Editionを実行するRDSインスタンスのメジャーエンジンバージョンを直接アップグレードすることはできません。 したがって、アップグレードのエントリポイントはApsaraDB RDSコンソールでは見つかりません。 この場合、RDSインスタンスをRDS Basic EditionからRDS High-availability Editionにアップグレードしてから、RDSインスタンスのメジャーエンジンバージョンをアップグレードする必要があります。 詳細については、「RDS Basic editionからRDS High-availability EditionへのRDSエディションのアップグレード」および「メジャーエンジンバージョンのアップグレード」をご参照ください。
説明ApsaraDB RDSコンソールで、RDS High-availability Editionを実行し、ローカルSSDを使用するRDSインスタンスのメジャーエンジンバージョンのみをアップグレードできます。
MySQL 5.7を実行し、標準SSDを使用するRDSインスタンスをRDS Basic EditionからRDS High-availability Editionにアップグレードする場合、インスタンスのストレージタイプを標準SSDからローカルSSDに変更できます。
RDSインスタンスのメジャーエンジンバージョンをアップグレードするときに、RDSインスタンスの設定項目を変更できますか。
RDSインスタンスのメジャーエンジンバージョンをアップグレードする場合、RDSインスタンスの設定項目を変更することはできません。 RDSインスタンスで他の操作を実行できるのは、メジャーエンジンのバージョンがアップグレードされた後です。
ApsaraDB RDSはメジャーエンジンバージョンの自動アップグレードをサポートしていますか?
いいえ、RDSインスタンスのメジャーエンジンバージョンは自動アップグレードをサポートしていません。
RDSインスタンスのメジャーエンジンバージョンをダウングレードできますか。
いいえ。RDSインスタンスのメジャーエンジンバージョンをダウングレードしたり、メジャーエンジンバージョンのアップグレードをロールバックすることはできません。
関連する API 操作
API 操作 | 説明 |
インスタンスのメジャーエンジンバージョンをアップグレードします。 |