Aurora MySQL バージョン 2 と Aurora MySQL バージョン 3 の比較 - Amazon Aurora

Aurora MySQL バージョン 2 と Aurora MySQL バージョン 3 の比較

Aurora MySQL バージョン 2 クラスターをバージョン 3 にアップグレードする際に注意すべき変更については、以下を参照してください。

アトミックデータ定義言語 (DDL) のサポート

MySQL 5.7 から 8.0 への最大の変更の 1 つは、アトミックデータディクショナリの導入です。MySQL 8.0 より前では、MySQL データディクショナリはファイルベースのアプローチを使用して、テーブル定義 (.frm)、トリガー (.trg)、関数などのメタデータをストレージエンジンのメタデータ (InnoDB など) とは別に保存していました。これには、DDL オペレーション中に予期しない事態が発生した場合にテーブルが "孤立" し、ファイルベースとストレージエンジンのメタデータが同期しなくなるリスクなど、いくつかの問題がありました。

これを修正するために、MySQL 8.0 は、mysql スキーマ内の内部 InnoDB テーブルのセットにすべてのメタデータを保存するアトミックデータディクショナリを導入しました。この新しいアーキテクチャは、古いファイルベースのアプローチから "アトミック DDL" 問題を解決し、データベースメタデータを管理するトランザクションの ACID 準拠の方法を提供します。アトミックデータディクショナリの詳細については、「MySQL リファレンスマニュアル」の「Removal of file-based metadata storage」と「Atomic data definition statement support」を参照してください。

このアーキテクチャの変更により、Aurora MySQL バージョン 2 からバージョン 3 にアップグレードする際には、次の点を考慮する必要があります。

  • バージョン 2 からのファイルベースのメタデータは、バージョン 3 へのアップグレードプロセス中に新しいデータディクショナリテーブルに移行する必要があります。移行されるデータベースオブジェクトの数によっては、時間がかかる場合があります。

  • また、この変更により、MySQL 5.7 から 8.0 にアップグレードする前に対処する必要がある可能性のある新しい非互換性が導入されました。例えば、8.0 には、既存のデータベースオブジェクト名と競合する可能性のある新しい予約キーワードがいくつかあります。

エンジンをアップグレードする前にこれらの非互換性を特定するため、Aurora MySQL は一連のアップグレード互換性チェック (事前チェック) を実行して、データディクショナリのアップグレードを実行する前に、データベースディクショナリに互換性のないオブジェクトがあるかどうかを判断します。事前チェックの詳細については、「 Aurora MySQL のメジャーバージョンアップグレードの事前チェック」を参照してください。

Aurora MySQL バージョン 2 と 3 の特徴の違い

次の Amazon Aurora MySQL 機能は Aurora MySQL 5.7 でサポートされていますが、これらの機能は現在 MySQL 8.0 の Aurora MySQL ではサポートされていません。

  • Aurora Serverless v1 クラスターに Aurora MySQL バージョン 3 を使用することはできません。Aurora MySQL バージョン 3 は Aurora Serverless v2 で動作します。

  • ラボモードは Aurora MySQL バージョン 3 には適用されません。Aurora MySQL バージョン 3 には、ラボモードの機能はありません。インスタント DDL は、過去にラボモードで使用可能だった高速オンライン DDL特徴よりも優先されます。例については、「インスタント DDL (Aurora MySQL バージョン 3)」を参照してください。

  • クエリキャッシュはコミュニティ MySQL 8.0 から削除され、Aurora MySQL バージョン 3 からも削除されます。

  • Aurora MySQL バージョン 3 はコミュニティ MySQL ハッシュ統合特徴と互換性があります。ハッシュ結合の Aurora 固有の実装は Aurora MySQL バージョン 2 では使用されていません。ハッシュ結合を Aurora パラレルクエリで使用する方法については、パラレルクエリクラスターのハッシュ結合の有効化 および Aurora MySQL のヒント を参照してください。ハッシュ結合の一般的な使用方法については、MySQL リファレンスマニュアルハッシュ結合の最適化を参照してください。

  • Aurora MySQL バージョン 2 で非推奨であったた mysql.lambda_async ストアドプロシージャは、バージョン 3 で削除されます。バージョン 3 では、非同期関数 lambda_async を代わりに使用します。

  • Aurora MySQL バージョン 3 のデフォルト文字セットは utf8mb4 です。Aurora MySQL バージョン 2 のデフォルト文字セットは latin1 です。この文字セットの詳細については、MySQL リファレンスマニュアルutf8mb4 文字セット (4 バイトの UTF-8 Unicode エンコード)を参照してください。

Aurora MySQL の一部の機能は、AWS リージョンと DB エンジンのバージョンの特定の組み合わせで利用可能です。詳細については、「AWS リージョン と Aurora DB エンジンにより Amazon Aurora でサポートされている機能」を参照してください。

インスタンスクラスのサポート

Aurora MySQL バージョン 3 では、Aurora MySQL バージョン 2 とは異なるインスタンスクラスのセットがサポートされています。

  • 大規模なインスタンスの場合は、db.r5db.r6gdb.x2g のような最新のインスタンスクラスを使用できます。

  • 小規模なインスタンスの場合は、db.t3db.t4g のような最新のインスタンスクラスを使用できます。

    注記

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

Aurora MySQL バージョン 2 の以下のインスタンスクラスは、Aurora MySQL バージョン 3 では使用できません。

  • db.r4

  • db.r3

  • db.t3.small

  • db.t2

Aurora MySQL DB インスタンスを作成する CLI ステートメントを、すべて作成していないかどうかを管理スクリプトでチェックします。Aurora MySQL バージョン 3 では利用できないインスタンスクラス名をハードコードします。必要に応じて、Aurora MySQL バージョン 3 がサポートするインスタンス名に、インスタンスクラス名を変更します。

ヒント

Aurora MySQL バージョンと AWS リージョンの特定の組み合わせに使えるインスタンスクラスをチェックするには、describe-orderable-db-instance-options AWS CLI コマンドを使用して下さい。

Aurora インスタンスクラスの詳細については、Amazon Aurora DB インスタンスクラス を参照してください。

Aurora MySQL バージョン 3 のパラメータ変更

Aurora MySQL バージョン 3 には、新しいクラスターレベルおよびインスタンスレベルの設定パラメータが含まれています。Aurora MySQL バージョン 3 では、Aurora MySQL バージョン 2 に存在していたいくつかのパラメータも削除されます。一部のパラメータ名は、包括語のイニシアチブの結果として変更されます。下位互換性のために、古い名前または新しい名前を使用してパラメータ値を取得できます。ただし、カスタム パラメータグループ内のパラメータ値を指定するには、新しい名前を使用する必要があります。

Aurora MySQL バージョン 3 では、lower_case_table_names パラメータ値はクラスターの作成時に永続的に設定されます。このオプションにデフォルト以外の値を使用する場合は、アップグレードする前に Aurora MySQL バージョン 3 のカスタム パラメータグループを設定します。次に、クラスターの作成またはスナップショットの復元操作中にパラメータグループを指定します。

注記

Aurora MySQL に基づく Aurora グローバルデータベースでは、lower_case_table_names パラメータがオンの場合、Aurora MySQL バージョン 2 からバージョン 3 へのインプレースアップグレードを実行できません。代わりに、スナップショット復元方法を使用してください。

Aurora MySQL バージョン 3 では、init_connect および read_only パラメータは CONNECTION_ADMIN 権限を持つユーザーには適用されません。これには Aurora マスターユーザーが含まれます。詳細については、「ロールベースの特権モデル」を参照してください。

すべての Aurora MySQL クラスターパラメータのリストについては、「クラスターレベルのパラメータ」を参照してください。この表では、Aurora MySQL バージョン 2 および 3 のすべてのパラメータについて説明します。この表には、Aurora MySQL バージョン 3 で新しく追加されたパラメータや Aurora MySQL バージョン 3 から削除されたパラメータを示す注記が含まれています。

すべての Aurora MySQL インスタンスパラメータのリストについては、「インスタンスレベルのパラメータ」を参照してください。この表では、Aurora MySQL バージョン 2 および 3 のすべてのパラメータについて説明します。この表には、Aurora MySQL バージョン 3 で新しく追加されたパラメータがどれか、また Aurora MySQL バージョン 3 から削除されたパラメータはどれかを示した注記が含まれています。また、Aurora MySQL バージョン 3 ではなく、以前のバージョンで変更可能なパラメータを示す注記も含まれています。

変更されたパラメータ名の詳細については、Aurora MySQL バージョン 3 に対する包括的な言語変更 を参照してください。

ステータス可変

Aurora MySQL に適用できないステータス可変の詳細については、Aurora MySQL に適応されない MySQL ステータス可変 を参照してください。

Aurora MySQL バージョン 3 に対する包括的な言語変更

Aurora MySQL バージョン 3 は MySQL コミュニティ エディションのバージョン 8.0.23 と互換性があります。Aurora MySQL バージョン 3 には、包括語のキーワードやシステムスキーマに関連した MySQL 8.0.26 からの変更も含まれています。例えば、今では SHOW SLAVE STATUS の代わりにSHOW REPLICA STATUS コマンドが優先されるようになりました。

次の Amazon CloudWatch メトリクスには、Aurora MySQL バージョン 3 の新しい名前が付けられています。

Aurora MySQL バージョン 3 では、新しいメトリクス名のみを使用できます。Aurora MySQL バージョン 3 にアップグレードするときは、メトリクス名に依存するアラームやその他のオートメーションを必ず更新してください。

現在の名前 新しい名前
ForwardingMasterDMLLatency ForwardingWriterDMLLatency
ForwardingMasterOpenSessions ForwardingWriterOpenSessions
AuroraDMLRejectedMasterFull AuroraDMLRejectedWriterFull
ForwardingMasterDMLThroughput ForwardingWriterDMLThroughput

Aurora MySQL バージョン 3 では、次のステータス可変に新しい名前が追加されました。

Aurora MySQL バージョン 3 の初期のリリースでは、互換性のためにいずれかの名前を使用できます。古いステータス可変名は、将来のリリースで削除される予定です。

削除される名前 新しい名前または優先される名
Aurora_fwd_master_dml_stmt_duration Aurora_fwd_writer_dml_stmt_duration
Aurora_fwd_master_dml_stmt_count Aurora_fwd_writer_dml_stmt_count
Aurora_fwd_master_select_stmt_duration Aurora_fwd_writer_select_stmt_duration
Aurora_fwd_master_select_stmt_count Aurora_fwd_writer_select_stmt_count
Aurora_fwd_master_errors_session_timeout Aurora_fwd_writer_errors_session_timeout
Aurora_fwd_master_open_sessions Aurora_fwd_writer_open_sessions
Aurora_fwd_master_errors_session_limit Aurora_fwd_writer_errors_session_limit
Aurora_fwd_master_errors_rpc_timeout Aurora_fwd_writer_errors_rpc_timeout

Aurora MySQL バージョン 3 では、次の設定パラメータに新しい名前が付けられました。

互換性のため、mysql クライアントのパラメータ値をチェックするには、Aurora MySQL バージョン 3 の初期のリリースでいずれかの名前を使用します。カスタムパラメータグループ内の値を変更する場合、新しい名前のみ使用できます。古いパラメータ名は、将来のリリースで削除される予定です。

削除される名前 新しい名前または優先される名
aurora_fwd_master_idle_timeout aurora_fwd_writer_idle_timeout
aurora_fwd_master_max_connections_pct aurora_fwd_writer_max_connections_pct
master_verify_checksum source_verify_checksum
sync_master_info sync_source_info
init_slave init_replica
rpl_stop_slave_timeout rpl_stop_replica_timeout
log_slow_slave_statements log_slow_replica_statements
slave_max_allowed_packet replica_max_allowed_packet
slave_compressed_protocol replica_compressed_protocol
slave_exec_mode replica_exec_mode
slave_type_conversions replica_type_conversions
slave_sql_verify_checksum replica_sql_verify_checksum
slave_parallel_type replica_parallel_type
slave_preserve_commit_order replica_preserve_commit_order
log_slave_updates log_replica_updates
slave_allow_batching replica_allow_batching
slave_load_tmpdir replica_load_tmpdir
slave_net_timeout replica_net_timeout
sql_slave_skip_counter sql_replica_skip_counter
slave_skip_errors replica_skip_errors
slave_checkpoint_period replica_checkpoint_period
slave_checkpoint_group replica_checkpoint_group
slave_transaction_retries replica_transaction_retries
slave_parallel_workers replica_parallel_workers
slave_pending_jobs_size_max replica_pending_jobs_size_max
pseudo_slave_mode pseudo_replica_mode

Aurora MySQL バージョン 3 では、次のストアドプロシージャは新しい名前になっています。

Aurora MySQL バージョン 3 の初期のリリースでは、互換性のためにいずれかの名前を使用できます。以前のプロシージャ名は、将来のリリースで削除される予定です。

削除される名前 新しい名前または優先される名
mysql.rds_set_master_auto_position mysql.rds_set_source_auto_position
mysql.rds_set_external_master mysql.rds_set_external_source
mysql.rds_set_external_master_with_auto_position mysql.rds_set_external_source_with_auto_position
mysql.rds_reset_external_master mysql.rds_reset_external_source
mysql.rds_next_master_log mysql.rds_next_source_log

AUTO_INCREMENT 値

Aurora MySQL バージョン 3 では、各 DB インスタンスを再起動する際、Aurora は 各テーブルの AUTO_INCREMENT 値を保持します。Aurora MySQL バージョン 2 では、再起動後に AUTO_INCREMENT 値が保持されませんでした。

スナップショットからの復元や、ポイントインタイムリカバリの実行、およびクラスターのクローン作成によって新しいクラスターを設定した場合、AUTO_INCREMENT 値は保持されません。この場合の AUTO_INCREMENT 値は、スナップショットが作成された時点のテーブル内の最大列値に基づいた値に初期化されます。この動作は、RDS for MySQL 8.0 では異なり、AUTO_INCREMENT 値はこれらのオペレーション中に保持されます。

バイナリログレプリケーション

MySQL 8.0 コミュニティエディションでは、バイナリログのレプリケーションがデフォルトで有効になっています。Aurora MySQL バージョン 3 では、バイナリログレプリケーションはデフォルトで無効になっています。

ヒント

Aurora 組み込みレプリケーション機能によって高可用性要件が満たされている場合は、バイナリログレプリケーションをオフにしておくことができます。これにより、バイナリログレプリケーションのパフォーマンスオーバーヘッドを回避できます。また、バイナリログレプリケーションの管理に必要な、関連するモニタリングおよびトラブルシューティングを回避することもできます。

Aurora は MySQL 5.7 互換出典から Aurora MySQL バージョン 3 へのバイナリログレプリケーションをサポートしています。出典システムは、Aurora MySQL DB クラスター、RDS for MySQL DB インスタンス、またはオンプレミス MySQL インスタンスです。

コミュニティ MySQL と同様に、Aurora MySQL は特定のバージョンを実行している出典から、同じメジャーバージョンまたは 1 つ以上のメジャーバージョンを実行するターゲットへのレプリケーションをサポートします。例えば、MySQL 5.6 互換システムから Aurora MySQL バージョン 3 へのレプリケーションはサポートされていません。Aurora MySQL バージョン 3 から MySQL 5.7 互換または MySQL 5.6 互換システムへのレプリケーションはサポートされていません。バイナリログのレプリケーションの詳細については、Aurora と MySQL との間、または Aurora と別の Aurora DB クラスターとの間のレプリケーション (バイナリログレプリケーション) を参照してください。

Aurora MySQL バージョン 3 には、フィルタリングされたレプリケーションなど、コミュニティ MySQL 8.0 でのバイナリログレプリケーションの改善が含まれています。コミュニティ MySQL 8.0 の改善の詳細については、MySQL リファレンスマニュアルサーバーがレプリケーションフィルタ規則を評価する方法を参照してください。

バイナリログレプリケーションのトランザクション圧縮

バイナリログ圧縮の使用方法については、MySQL リファレンスマニュアルのバイナリログトランザクションの圧縮を参照してください。

Aurora MySQL バージョン 3 のバイナリログ圧縮には、次の制限が適用されます。

  • バイナリログデータが最大許容パケットサイズより大きいトランザクションは圧縮されません。これは、Aurora MySQL バイナリログ圧縮設定が有効になっているかどうかに関係ありません。このようなトランザクションは、圧縮されずに複製されます。

  • MySQL 8.0 をまだサポートしていない変更データキャプチャ (CDC) にコネクターを使用している場合、この特徴は使用できません。サードパーティーのコネクターをバイナリログ圧縮でしっかりテストした後に、バイナリログ圧縮を有効にすることをお勧めします。また、CDC の binlog レプリケーションを使用するシステムでバイナリログ圧縮を有効にすることをお勧めします。