はじめに
これまで、MySQLでは動的に SET 句を用いて変更できるグローバル・パラメータでも、MySQL Database Service(以下:MDS)では該当のパラメータ値を設定した構成を作成した後に、適用する際には再起動が必須となっていました
しかし、2022年06月01日のリリースで、変更されるパラメータが動的かどうかを自動的に判断し、再起動が必要な場合のみ行う機能が追加されました
そこで、本記事では、当該機能の紹介とあわせて、同日にリリースされたもう一つの機能である、構成の比較機能も紹介したいと思います
構成の比較
まずは、構成の比較機能を紹介したいと思います
構成の比較機能を実行する場合は、MDSの構成一覧画面にて、比較したい構成を選択し、アクションメニューから 比較
を選択するだけと、非常に簡単に実行できます
※3つ以上選択すると、比較メニューはグレーアウトし選択できなくなってしまいますので、比較できるのは2つの構成のみとなります
比較結果は、構成一覧の右側に表示され、シェイプ
、初期化変数
、変数
のそれぞれで異なる箇所を表示してくれます
サーバーシステム変数の変更
それでは、本記事の主題であるサーバーシステム変数の変更時に、再起動の有無が自動的に判断される機能を確認してみたいと思います
あくまでも構成が変更できるという点でのみ確認した内容であるため、実際に実施する場合は自己責任でお願いいたします
今回使用した構成は MySQL.VM.Standard.E4.1.8GB.Standalone
の MDS としては最小の構成を使用し、デフォルトでは下記パラメータが定義されています
名前 | 値 | タイプ | 動的 |
---|---|---|---|
binlog_expire_logs_seconds | 3600 | Integer | ✔ |
binlog_row_value_options | PARTIAL_JSON | Set | ✔ |
group_replication_consistency | BEFORE_ON_PRIMARY_FAILOVER | Enum | ✔ |
innodb_buffer_pool_instances | 4 | Integer | |
innodb_buffer_pool_size | 2147483648 | Integer | ✔ |
innodb_ft_result_cache_limit | 33554432 | Integer | ✔ |
innodb_max_purge_lag_delay | 300000 | Integer | ✔ |
local_infile | ON | Boolean | ✔ |
mandatory_roles | public | String | ✔ |
max_binlog_cache_size | 4294967296 | Integer | ✔ |
max_connections | 500 | Integer | ✔ |
time_zone | UTC | String | ✔ |
上記パラメータのうち、再起動不要と判断される構成はmax_connections の値を変更し、再起動が必要とされる構成は innodb_buffer_pool_instancesの値を変更した構成を使用いたしました
- デフォルト構成: MySQL.VM.Standard.E4.1.8GB.Standalone
- 再起動不要構成: MySQL.VM.Standard.E4.1.8GB.Standalone_dynamic
- 要再起動構成 : MySQL.VM.Standard.E4.1.8GB.Standalone_static
再起動が必要な構成変更
MySQL.VM.Standard.E4.1.8GB.Standalone_static の適用では再起動が必要と判断され、構成の選択の上部に 「構成を変更するとデータベースが再起動されます」と警告文が表示されます
また、従来は構成変更時には警告文のみが表示され、新しい構成でどのような変更が加えられるのかは画面上では確認できませんでしたが、構成の変更時にも変更されるパラメータが表示されるようになり、地味ながらうれしい機能が追加されております
再起動が不要な構成変更
MySQL.VM.Standard.E4.1.8GB.Standalone_dynamic の適用では再起動は不要と判断され、警告文は表示されていないことが確認できます
実際に実施した際も、セッションが切断されること無く接続状態が維持されてパラメータが変更されたことを確認しております
まとめ
MDSの構成変更時に対象パラメータが動的変更可能かどうかを判断し、必要な場合のみ再起動するという、ダウンタイムを少なくするためには重要な機能が追加されたことはとてもありがたいのでは無いのでしょうか
構成の比較に関しても、一つ一つのパラメータ値を複数画面を表示して比較する必要もなくなることや、変更した構成を適用する際に変更内容が表示されることなど、ミスの防止などにつながる便利な機能となるのではないでしょうか
また、本記事ではMDSはスタンドアロンで確認しておりますが、HeatWaveの構成であってもスタンドアロンと同様に、構成変更時に動的変更が可能かの判断が自動で行われ、必要な場合のみ再起動が行われるようになっております
高可用性の構成に関しては、構成の変更はそのままでは行えませんが、高可用性の有効・無効化の機能が2022年03月01日にリリースされているため、高可用性 -> スタンドアロン -> 構成変更 -> 高可用性 という手順を踏むことで、高可用性構成でもサーバーシステム変数の変更は可能ではあるようです(ただし、サーバーシステム変数の変更の冒頭部分にも記載いたしましたが、本記事では構成変更が可能であることの確認のみを行っておりますことご容赦願います)