ダウンタイムのないパッチ適用の使用 - Amazon Aurora

ダウンタイムのないパッチ適用の使用

Aurora MySQL DB クラスターのアップグレードを実行する場合、データベースがシャットダウンされたときおよびアップグレード中に停止する可能性があります。デフォルトでは、データベースがビジー状態のときにアップグレードをスタートすると、DB クラスターが処理しているすべての接続とトランザクションが失われます。アップグレードを実行するためにデータベースがアイドル状態になるまで待機する場合は、長時間待機しなければならない場合があります。

ダウンタイムのないパッチ適用 (ZDP) 機能では、ベストエフォートに基づいて、Aurora MySQL アップグレード中のクライアント接続を維持するよう試みます。ZDP が正常に完了されると、アプリケーションのセッションが保持され、アップグレードの進行中にデータベースエンジンが再起動します。データベースエンジンの再起動により、数秒から約 1 分間スループットが低下する可能性があります。

ZDP は以下には適用されません。

  • オペレーティングシステム (OS) のパッチとアップグレード

  • メジャーバージョンのアップグレード

ZDP は、サポートされているすべての Aurora MySQL バージョンと DB インスタンスクラスで使用できます。

ZDP は Aurora Serverless v1 または Aurora グローバルデータベースではサポートされていません。

注記

T DB インスタンスクラスを、開発サーバーおよびテストサーバー、または他の本稼働以外のサーバーにのみ使用することをお勧めします。T インスタンスクラスの詳細については、「開発やテストのための T インスタンスクラスの使用」を参照してください。

MySQL エラーログで ZDP 中に重要な属性のメトリクスを確認できます。AWS Management Console の [イベント] ページでは、Aurora MySQL で ZDP を使用する場合や、ZDP の使用を選択しない場合に関する情報も確認できます。

Aurora MySQL 2.10 以降およびバージョン 3 では、バイナリログレプリケーションが有効かどうかにかかわらず、Aurora はダウンタイムゼロでパッチを実行できます。バイナリログレプリケーションが有効な場合、Aurora MySQL は、ZDP オペレーション中にバイナリログターゲットへの接続を自動的に切断します。Aurora MySQL は自動的にバイナリログターゲットに再接続し、再起動の完了後にレプリケーションを再開します。

また、ZDP は、Aurora MySQL 2.10 以降の再起動の機能拡張と組み合わせて機能させることもできます。ライター DB インスタンスにパッチを適用すると、同時にリーダーにパッチが自動適用されます。パッチの実行後、Aurora は、ライター DB インスタンスとリーダー DB インスタンスの両方で接続を復元します。Aurora MySQL 2.10 より前のバージョンでは、ZDP はクラスターのライター DB インスタンスにのみ適用されます。

ZDP は、以下の状態では正常に完了されない場合があります。

  • 長期実行クエリまたはトランザクションが進行中である。この場合、Aurora が ZDP を実行すると、未処理のトランザクションはすべてキャンセルされますが、接続は保持されます。

  • データ定義言語 (DDL) ステートメントの実行中などは、一時テーブル、ユーザーロック、またはテーブルロックが使用中です。Aurora はこれらの接続を切断します。

  • パラメータの変更が保留中である。

上記の状態のいずれかにより、ZDP を実行するための適切な時間枠が確保されない場合、パッチ適用はスタンダードの動作に戻ります。

注記

Aurora MySQL バージョン 2 が 2.11.0 より前で、バージョン 3 が 3.04.0 より前の場合、Secure Socket Layer (SSL) 接続または Transport Layer Security (TLS) 接続が開いていると ZDP が正常に完了しない場合があります。

ZDP オペレーションが成功した後も接続はそのまま残りますが、一部の可変と機能は再初期化されます。次の種類の情報は、ダウンタイムのないパッチ適用によって生じる再起動を通じては保持されません。

  • グローバル可変 Aurora はセッション可変を復元しますが、再起動後のグローバル可変の復元は行いません。

  • ステータス可変。特に、エンジンステータスによって報告される稼働時間の値は、ZDR または ZDP メカニズムを使用する再起動後にリセットされます。

  • LAST_INSERT_ID.

  • テーブルのメモリ内 auto_increment 状態。メモリ内自動インクリメント状態が再初期化されます。自動インクリメント値の詳細については、MySQL リファレンスマニュアルを参照してください。

  • INFORMATION_SCHEMA および PERFORMANCE_SCHEMA テーブルからの診断情報。この診断情報は、SHOW PROFILESHOW PROFILES などのコマンドの出力にも表示されます。

ダウンタイムのない再起動に関連する次のアクティビティが [Events] (イベント) ページで報告されます。

  • ダウンタイムなしでのデータベースのアップグレードを試みています。

  • ダウンタイムなしでのデータベースのアップグレードの試行が終了しました。イベントは、プロセスにかかった時間を報告します。このイベントでは、再起動中に保持された接続の数とドロップされた接続の数も報告されます。データベースエラーログを参照して、再起動中に発生した処理の詳細を確認できます。