Aurora MySQL バージョン 2 と Aurora MySQL バージョン 3 の比較
Aurora MySQL バージョン 2 クラスターをバージョン 3 にアップグレードする際に注意すべき変更については、以下を参照してください。
トピック
アトミックデータ定義言語 (DDL) のサポート
MySQL 5.7 から 8.0 への最大の変更の 1 つは、アトミックデータディクショナリ
これを修正するために、MySQL 8.0 は、mysql
スキーマ内の内部 InnoDB テーブルのセットにすべてのメタデータを保存するアトミックデータディクショナリを導入しました。この新しいアーキテクチャは、古いファイルベースのアプローチから "アトミック DDL" 問題を解決し、データベースメタデータを管理するトランザクションの ACID
このアーキテクチャの変更により、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.r5
やdb.r6g
、db.x2g
のような最新のインスタンスクラスを使用できます。 -
小規模なインスタンスの場合は、
db.t3
やdb.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 レプリケーションを使用するシステムでバイナリログ圧縮を有効にすることをお勧めします。