MySQL 用の Amazon Relational Database Service (Amazon RDS) をアップグレードしたいと考えています。アップグレードの実行方法と、アップグレードにかかる時間に影響する要因を知りたいです。
決議
Amazon RDS for MySQL のバージョンアップグレードを実行してください
RDS DB インスタンスのエンジンバージョンを手動でアップグレードするには、AWS マネジメントコンソール、AWS コマンドラインインターフェイス (AWS CLI)、または Amazon RDS API を使用します。
注: AWS CLI コマンドの実行中にエラーが発生した場合は、 最新バージョンのAWS CLI を使用していることを確認してください。
アップグレードプロセスの概要については、「RDS for MySQL DB エンジンのアップグレード」を参照してください。
Amazon RDS for MySQL のアップグレード時間
アップグレードプロセスの所要時間は、利用できるアップグレードタイプ、データ、リソースによって異なります。おおよそのアップグレード所要時間を理解するために、まず別のテストインスタンスでアップグレードをテストすることをお勧めします。スナップショット復元またはリードレプリカを使用して、メジャーバージョンまたはマイナーバージョンのアップグレードのテストインスタンスを起動することもできます。メジャーバージョンアップグレードとマイナーバージョンアップグレードの詳細については、「RDS for MySQL のメジャーバージョンアップグレード」と「RDS for MySQL の自動マイナーバージョンアップグレード」を参照してください。
**ヒント:**アップグレードのダウンタイムを最小限に抑えるには、データベースの更新に blue/green デプロイを使用してください。
アップグレード時間に影響を与える可能性のある要因
すべてのバージョンアップグレード
バックアップがオンになっている場合、Amazon RDS はインスタンスが以前のバージョンで実行されている間にスナップショットを作成します。Amazon RDS で最新のバックアップを見つけられない場合、Amazon RDS はアップグレードプロセス中に完全なスナップショットを作成します。変更のサイズによって、アップグレードが完了するまでにかかる時間が決まります。ただし、Amazon RDS がスナップショットを取得しても、インスタンスは引き続きトラフィックを受け入れることができます。
バックアップが完了すると、インスタンスはシャットダウンします。次に、MySQL は無効化されたネットワーク上で新しいエンジンバージョンを実行して、リモート接続を防止します。
**注:**メジャーバージョンアップグレードを実行している場合、シャットダウンにはさらに時間がかかることがあります。
メジャーバージョンアップグレードのみ
低速シャットダウンを採用するために、Amazon RDS は innodb\ _fast\ _shutdown パラメータ値を0に設定します。このモードでは、変更バッファのマージや削除された行の完全なパージなど、追加のフラッシュが実行されます。低速シャットダウンには、リカバリするデータの量に応じて、数分または数時間かかることがあります。大きな変更バッファまたは長い履歴リスト長を持つデータベースの低速シャットダウンは、時間がかかることがあります。
詳細については、MySQL Web サイトの次のドキュメントを参照してください。
mysql\ _upgrade プログラムは MySQL データベース上で実行され、システムテーブルとユーザーテーブルを新しいバージョンに変換します。テーブルの状態によっては、新しいバージョンに準拠するためにテーブルを作成する必要がある場合があります。ほとんどの場合、変更を加える必要はありません。mysql\ _upgrade プログラムは、テーブル内のメタデータを更新して、データベースがアップグレードされたことを示します。テーブルの数が多いと、Amazon RDS MySQL がメジャーバージョンのアップグレードを完了するのに時間がかかることがあります。詳細については、MySQL ウェブサイトの「mysql\ _upgrade: MySQL テーブルのチェックとアップグレード」を参照してください。
バージョン 5.7 へのメジャーバージョンアップグレード時に、Amazon RDS for MySQL は一部のテーブルを再構築します。すべての日付と時刻の列タイプが新しい形式に変換されます。テーブルのデータ量によっては、変換に数時間から数日かかる場合があります。詳細については、「MySQL バージョン 5.7 へのアップグレードは時間がかかる可能性がある」を参照してください。
MySQL 8.0 には MySQL 5.7 との非互換性がいくつか含まれています。これらの非互換性により、MySQL 5.7 から MySQL 8.0 へのアップグレード中に問題が発生する可能性があります。アップグレードを正常に行うには、データベースの準備が必要な場合があります。詳細については、「MySQL 5.7 から 8.0 へのアップグレードの事前チェック」を参照してください。
MySQL 5.7 から 8.0 へのアップグレードを開始すると、Amazon RDS は自動的に事前チェックを実行してこれらの非互換性を検出します。事前チェックは必須です。詳細については、MySQL Webサイトの「MySQL のアップグレード」を参照してください。
注:
- MySQL 5.7 から MySQL 8.0 へのアップグレードでは、Amazon RDS はすべてのアップグレード事前チェックを実行してください。
- MySQL 5.6 から MySQL 5.7 へのアップグレードでは、Amazon RDS は事前チェックを実行して、テーブルを再構築するのに十分なストレージ容量があることを確認してください。Amazon RDS は、孤立したテーブルがないことを確認するための事前チェックも実行してください。
- Amazon RDS は MySQL 5.7 より前のリリースへのアップグレードの事前チェックを実行しません。
- メジャーバージョンのアップグレードが失敗した場合に備えて、ロールバック計画を立てておくことをお勧めします。
- テーブルに問題がないかを確認するには、mysqlcheck を実行することをお勧めします。ただし、テーブルのメンテナンス操作は、特に大きなテーブルの場合、かなりの時間とリソースを消費する可能性があります。詳細については、MySQL Web サイトの mysqlcheck: テーブルメンテナンスプログラムを参照してください。
関連情報
DB インスタンスエンジンバージョンのアップグレード
Amazon RDS for MySQL と Amazon RDS for MariaDB をアップグレードするためのベストプラクティス
Amazon RDS バージョンの MySQL