RDB:DBパラメーターグループ
DBエンジンの設定の管理は、DBパラメーターグループを利用して行います。
DBパラメーターグループは、複数のDBサーバーに適用可能な設定を保存しておく場所です。
設定情報は、複数のパラメーターとそれに対応する値として保存されます。
DB パラメーターグループを指定せずにDBサーバーを作成した場合、デフォルトのDBパラメーターグループが適用されます。
このデフォルトのグループは、DBエンジンのデフォルト値と、ニフクラ RDBがそのDBサーバーのDBエンジン・DB サーバータイプ・ディスク容量に応じて決定したシステムのデフォルト値が含まれています。
デフォルト値の中には、DBパラメーターグループで変更できないものも存在します。
グループ設定数 | 50個まで |
変更可能なパラメーター数 | 20個まで |
※上限を変更が必要な場合は、下記フォームよりご申請ください。
各種変更申請フォーム
DBパラメーターの変更
独自に作成したDBパラメーターグループに指定されたパラメーターの値は、後から変更することができます。
変更がDBサーバーに適用されるタイミングは、パラメーターの適用タイプによって変わります。
適用タイプ | 適用方法 | 説明 |
---|---|---|
static | pending-reboot(再起動待ち) | DBサーバー内の設定ファイル(MySQL、MariaDBの場合 my.cnf、PostgreSQLの場合 postgresql.conf)に反映されます。DBサービス自体へ適用するためにはDBサーバーを手動で再起動する必要があります。 |
dynamic | immediate(今すぐ) | DBサーバーに即時反映されます。(MySQL、MariaDBの場合、SET GLOBAL文が発行されます。PostgreSQLの場合、pg_ctl reload コマンドが実行されます。) |
なお、ModifyDBParameter APIでDB パラメーターを変更する場合には、適用タイプがdynamicであってもApplyMethod(適用方法)にpending-reboot(再起動待ち)を選択することが可能です。
PostgreSQLエンジンの場合、すべてのdynamicパラメーターについてimmediateでの適用のみが可能です(pending-rebootを指定しても即時反映されます)。
List型パラメーターに複数のパラメーター値を設定するには、パラメーター値をカンマで区切って指定してください。
変更したDBパラメーターの確認方法
- MySQL、MariaDBの場合
以下のSQLを実行し、意図した値になっているか確認してください。
※staticパラメーターはDBサーバー再起動後
例)tx_isolation
mysql> show variables like 'tx_isolation';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| tx_isolation | REPEATABLE-READ |
+---------------+-----------------+
意図した値でない場合は、イベントとMySQLのエラーログを確認してください。
- PostgreSQLの場合
以下のSQLを実行し、意図した値になっているか確認してください。
※staticパラメーターはDBサーバー再起動後
例)application_name
DB01=> show application_name;
application_name
------------------
psql
(1 row)
意図した値ではない場合、イベントとPostgreSQLのエラーログを確認してください。
エラーが出力されていた場合は以下のいずれかを実行してください。
- ModifyDBParameterGroupで正常な値の指定
- ResetDBParameterGroupでパラメーターのリセット
また、staticパラメーターの場合またはDBサーバーのステータスがincompatible-parametersの場合はRebootDBInstanceで再起動を行ってください。
DBサーバーへの適用
自分で定義したDBパラメーターをDBサーバーに適用する場合には、まず新しいDBパラメーターグループを作成し、必要なパラメーターを修正して、DBサーバーにそのDBパラメーターグループを割り当ててください。
DBパラメーターグループでパラメーターの値を変更した場合、そのDBパラメーターグループに所属しているすべてのDBサーバーに変更が適用されます。
DBパラメーターグループを作成したら、DBサーバーをそこに所属させる必要があります。
すでに稼働しているDBサーバーをDBパラメーターに所属させた場合、DBサーバーを再起動するまで新しいDBパラメーターグループの設定は反映されません。
DBパラメーターのリセット
「DBパラメーターグループのリセット」操作をすることにより、DBパラメーターグループ内のすべてのパラメーターをデフォルト値に戻すことができます。
なお、PostgreSQLエンジンでリードレプリカを利用している場合、関連するDBサーバーに適用されたDBパラメーターグループをリセットすることはできません。
詳しくは技術仕様(RDB:リードレプリカ)のページをご参照ください。
DBパラメーターの値
DBパラメーターの値には、整数またはDBパラメーター式を指定することができます。
DBパラメーター式
「DB パラメーター式」は、評価すると整数になる { } で囲んだ表現です。
この「DB パラメーター式」を、DBパラメーターの値に指定することができます。
{DBパラメーター式変数}
{DBパラメーター式変数*整数}
{DBパラメーター式変数*整数1/整数2}
{DBパラメーター式変数/整数}
DBパラメーター式変数
DBパラメーター式変数は整数を返します。変数名には大文字・小文字の区別があります。
DBInstanceClassMemory
DBサーバーに設定されたDBサーバータイプのメモリ量をバイト数で返却します。
実際には管理用プロセスのメモリ使用量を差し引いた下記表の値となります。
dbクラス | メモリ | DBInstanceClassMemory |
---|---|---|
db.mini | 512MB | 356,482,286 |
db.small / db.e-small | 1GB | 880,468,296 |
db.small2 / db.medium / db.e-small2 / db.e-medium | 2GB | 1,954,210,120 |
db.small4 / db.medium4 / db.large / db.e-small4 / db.e-medium4 / db.e-large | 4GB | 4,101,693,768 |
db.small8 / db.medium8 / db.large8 / db.extra-large8 / db.e-small8 / db.e-medium8 / db.e-large8 /db.e-extra-large8 | 8GB | 8,396,661,064 |
db.small16 / db.medium16 / db.large16 / db.extra-large16 / db.double-large16 / db.e-small16 / db.e-medium16 / db.e-large16 / db.e-extra-large16 / db.e-double-large16 | 16GB | 16,986,595,656 |
db.medium24 / db.large24 / db.extra-large24 / db.double-large24 / db.e-medium24 / db.e-large24 / db.e-extra-large24 / db.e-double-large24 | 24GB | 25,576,530,248 |
db.large32 / db.extra-large32 / db.double-large32 / db.triple-large32 / db.e-large32 / db.e-extra-large32 / db.e-double-large32 | 32GB | 34,166,464,840 |
db.extra-large48 / db.double-large48 / db.triple-large48 / db.e-extra-large48 / db.e-double-large48 | 48GB | 51,346,334,024 |
db.double-large64 / db.triple-large64 / db.quad-large64 / db.e-double-large64 | 64GB | 68,526,203,208 |
db.double-large96 / db.triple-large96 / db.quad-large96 / db.e-double-large96 | 96GB | 101,005,979,976 |
db.triple-large128 / db.quad-large128 / db.septa-large128 | 128GB | 134,827,090,248 |
EndPointPort
DBサーバーに接続する際に使用するポート番号を返却します。
DBパラメーター式演算子
DBパラメーター式では乗算演算子(*)と除算演算子(/)の 2 つが使えます。
除算演算子(/)
被除数を除数で割り、商を返却します。商に含まれる小数点以下の端数は四捨五入されず切り捨てられます。
被除数 / 除数
乗算演算子(*)
被乗数を乗数で掛け、積を返却します。積に含まれる小数点以下の端数は四捨五入されず切り捨てられます。
被乗数 * 乗数
DBパラメーターの値の例
下記の式で、DBサーバーに割り当てられたメモリの3/4を指定することができます。
(MySQL 5.5用のデフォルトDBパラメーターグループで、innodb_buffer_pool_sizeに指定されているものです。)
{DBInstanceClassMemory*3/4}
MySQLのread_onlyパラメーターについて
- {TrueIfReplica}は、DBサーバーがリードレプリカの場合に1を返却し、それ以外の場合は0を返却します。
- DBエンジンがMySQLの場合、read_onlyパラメーターを変更できますが、下記のDBサーバーに関してはread_onlyパラメーターに関わらず固定値が設定されます。
- 冗長構成(性能優先)のマスターDB ※固定値で0が設定されます。
- リードレプリカ ※固定値で1が設定されます。
なお、read_onlyパラメーターを{TrueIfReplica}に変更する場合は、ModifyDBParameterGroupを実行いただくか、ResetDBParameterGroupを実行してデフォルトに戻してください。