Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

DB パラメータグループを使用する

DB エンジンの設定を管理するには、DB インスタンスをパラメータグループに関連付けます。Amazon RDS は、新しく作成された DB インスタンスに適用されるデフォルト設定でパラメータグループを定義します。カスタマイズした設定を使用して独自のパラメータグループを定義できます。次に、独自のパラメータグループを使用するように DB インスタンスを変更できます。

DB パラメータグループは、1 つ以上の DB インスタンスに適用されるエンジン設定値のコンテナとして機能します。

DB パラメータグループを指定せずに DB インスタンスを作成すると、DB インスタンスはデフォルトの DB パラメータグループを使用します。 各デフォルト DB グループには、エンジン、コンピューティングクラス、インスタンスの割り当てストレージに基づいて、データベースエンジンのデフォルトと Amazon RDS システムのデフォルトが含まれています。デフォルトのパラメータグループのパラメータ設定は変更できません。代わりに、独自のパラメータ設定を選択して、独自のパラメータグループを作成します。DB エンジンのすべてのパラメータが、作成した DB パラメータグループで変更できるわけではありません。

独自のパラメータグループを使用する場合は、新しいパラメータグループを作成して必要なパラメータを変更します。次に、新しいパラメータグループを使用するように DB インスタンスを変更します。DB パラメータグループ内のパラメータを更新すると、このパラメータグループに関連付けられたすべての DB インスタンスに変更が適用されます。

AWS CLI の copy-db-parameter-group コマンドで、既存の DB パラメータグループをコピーすることもできます。 パラメータグループをコピーすることは、既存の DB パラメータグループのカスタムパラメータと値を、新しい DB パラメータグループに含める場合に便利な方法です。

DB パラメータグループのパラメータを使用する際の重要なポイントを以下に示します。

  • 動的パラメータを変更して DB パラメータグループを保存すると、[すぐに適用] の設定にかかわらず、変更はすぐに適用されます。静的パラメータを変更して DB パラメータグループを保存すると、パラメータの変更は DB インスタンスを手動で再起動した後に有効になります。DB インスタンスを再起動するには、RDS コンソールを使用するか、RebootDbInstance API アクションを明示的に呼び出します (DB インスタンスがマルチ AZ 配置になっている場合、フェイルオーバーは行いません)。静的パラメータを変更した後、関連付けられた DB インスタンスの再起動を求める要件は、パラメータの誤った設定が API 呼び出しに影響するリスク (DB インスタンスクラスを変更またはストレージを拡大する ModifyDBInstance の呼び出しなど) の軽減に役立ちます。

    DB インスタンスが、その関連付けられた DB パラメータグループに対する最新の変更を使用していない場合、AWS マネジメントコンソール は、DB パラメータグループのステータスを [再起動の保留中] と表示します。パラメータグループの [再起動の保留中] のステータスにより、次回のメンテナンスウィンドウで自動的に再起動されることはありません。パラメータの最新の変更を DB インスタンスに適用するには、DB インスタンスを手動で再起動します。

  • DB インスタンスに関連付けられている DB パラメータグループを変更する場合、DB インスタンスで新しい DB パラメータグループを使用する前に、インスタンスを手動で再起動する必要があります。

  • DB パラメータの値は、整数として指定するか、式、変数、関数、および演算子で構成された整数式として指定できます。関数には、数学的なログ式を含めることができます。詳細については、「DB パラメータ値」を参照してください。

  • DB インスタンスを作成する前、および DB インスタンスでデータベースを作成する前に、パラメータグループに含まれるデータベースの文字セットまたは照合に関連するパラメータをすべて設定します。これにより、DB インスタンスのデフォルトデータベースと新しいデータベースで、指定した文字セットと照合値が使用されるようになります。DB インスタンスの文字セットまたは照合パラメータを変更した場合、パラメータの変更は既存のデータベースに適用されません。

    ALTER DATABASE コマンドを使用して、既存のデータベースの文字セットまたは照合値を変更できます。次に例を示します。

    ALTER DATABASE database_name CHARACTER SET character_set_name COLLATE collation;
  • DB パラメータグループに不適切な設定のパラメータがあると、パフォーマンスが低下したりシステムが不安定になったり、予期しない悪影響が生じることがあります。データベースパラメータの変更時には常に注意が必要です。DB パラメータグループの変更前にデータをバックアップしてください。テスト DB インスタンスでパラメータグループの設定の変更を試してから、本番稼働用 DB インスタンスにそれらの変更を適用してください。

DB パラメータグループを作成する

新しい DB パラメータグループは、AWS マネジメントコンソール、AWS CLI、または RDS API を使って作成できます。

コンソール

DB パラメータグループを作成するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

  3. [Create parameter group] を選択します。

    [パラメータグループの作成] ウィンドウが表示されます。

  4. [パラメータグループファミリー] リストで、DB パラメータグループファミリーを選択します。

  5. [Type] リストで、[DB Parameter Group] を選択します。

  6. [グループ名] ボックスに、新しい DB パラメータグループの名前を入力します。

  7. [説明] ボックスに、新しい DB パラメータグループの説明を入力します。

  8. [作成] を選択します。

AWS CLI

DB パラメータグループを作成するには、AWS CLI の create-db-parameter-group コマンドを使用します。以下の例では、MySQL バージョン 5.6 用に、mydbparametergroup という名前で、「My new parameter group」という説明の新しい DB パラメータグループを作成しています。

以下の必須パラメータを含めます。

  • --db-parameter-group-name

  • --db-parameter-group-family

  • --description

使用可能なすべてのパラメータグループファミリーを一覧表示するには、次のコマンドを使用します。

aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"

注記

出力は重複が含まれます。

Linux、OS X、Unix の場合:

aws rds create-db-parameter-group \ --db-parameter-group-name mydbparametergroup \ --db-parameter-group-family MySQL5.6 \ --description "My new parameter group"

Windows の場合:

aws rds create-db-parameter-group ^ --db-parameter-group-name mydbparametergroup ^ --db-parameter-group-family MySQL5.6 ^ --description "My new parameter group"

このコマンドでは、以下のような出力が生成されます。

DBPARAMETERGROUP mydbparametergroup mysql5.6 My new parameter group
RDS API

DB パラメータグループを作成するには、RDS API の CreateDBParameterGroup アクションを使用します。

以下の必須パラメータを含めます。

  • DBParameterGroupName

  • DBParameterGroupFamily

  • Description

DB パラメータグループのパラメータの変更

ユーザー定義の DB パラメータグループのパラメータ値は変更できますが、デフォルトの DB パラメータグループのパラメータ値を変更することはできません。ユーザー定義の DB パラメータグループのパラメータの変更は、その DB パラメータグループに関連付けられたすべての DB インスタンスに適用されます。

パラメータ値を変更する場合、変更がいつ適用されるかは、パラメータの種類によって決まります。動的パラメータの変更は直ちに適用されます。静的パラメータの変更の場合、変更を有効にするには、DB パラメータグループに関連付けられている DB インスタンスを再起動する必要があります。パラメータの種類を確認するには、「DB パラメータグループを一覧表示する」で示した手順のいずれかを使用して、パラメータグループ内のパラメータをリストします。

DB インスタンスに関連付けられている DB パラメータグループのステータスは、RDS コンソールの [設定] タブに表示されます。たとえば、DB インスタンスがその関連付けられた DB パラメータグループの最新の変更を使用していない場合、RDS コンソールは、DB パラメータグループのステータスを [再起動の保留中] と表示します。パラメータの最新の変更を DB インスタンスに適用するには、DB インスタンスを手動で再起動します。


				再起動保留中のパラメータ変更のシナリオ
コンソール

DB パラメータグループを変更するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

  3. リストで、変更するパラメータグループを選択します。

  4. [Parameter group actions (パラメータグループのアクション)] で、[編集] を選択します。

  5. 変更するパラメータの値を変更します。ダイアログボックスの右上にある矢印キーを使用して、パラメータをスクロールできます。

    デフォルトパラメータグループの値を変更することはできません。

  6. [Save changes] を選択します。

CLI

DB パラメータグループを変更するには、以下の必須パラメータを指定して、AWS CLI の modify-db-parameter-group コマンドを使用します。

  • --db-parameter-group-name

  • --parameters

以下の例では、mydbparametergroup という名前の DB パラメータグループの max_connectionsmax_allowed_packet の値を変更しています。

注記

Amazon RDS では、1 つのパラメータでカンマ区切りの複数のパラメータ値を渡すことはできません。

Linux、OS X、Unix の場合:

aws rds modify-db-parameter-group \ --db-parameter-group-name mydbparametergroup \ --parameters "ParameterName=max_connections,ParameterValue=250,ApplyMethod=immediate" \ "ParameterName=max_allowed_packet,ParameterValue=1024,ApplyMethod=immediate"

Windows の場合:

aws rds modify-db-parameter-group ^ --db-parameter-group-name mydbparametergroup ^ --parameters "ParameterName=max_connections,ParameterValue=250,ApplyMethod=immediate" ^ "ParameterName=max_allowed_packet,ParameterValue=1024,ApplyMethod=immediate"

このコマンドでは、以下のような出力が生成されます。

DBPARAMETERGROUP mydbparametergroup
RDS API

DB パラメータグループを変更するには、以下の必須パラメータを指定して、RDS API の ModifyDBParameterGroup コマンドを使用します。

  • DBParameterGroupName

  • Parameters

DB パラメータグループをコピーする

作成したカスタム DB パラメータグループをコピーできます。パラメータグループのコピーは、作成済みの DB パラメータグループがあり、そのグループの多くのカスタムパラメータと値を新しい DB パラメータグループに含める必要がある場合に便利な方法です。DB パラメータグループをコピーするには、AWS CLI の copy-db-parameter-group コマンド、または RDS API CopyDBParameterGroup アクションを使用できます。

DB パラメータグループをコピーした後で、その DB パラメータグループをデフォルトのパラメータグループとして使用する最初の DB インスタンスを作成するまで、最低 5 分待ちます。これにより、パラメータグループを使用する前に、Amazon RDS はコピーアクションが完全に終了できます。これは、DB インスタンスのデフォルトのデータベースを作成する際に不可欠となるパラメータで特に重要です。例としては、character_set_database パラメータで定義するデフォルトのデータベースの文字セットが挙げられます。DB パラメータグループが作成されたことを確認するには、Amazon RDS コンソールの [パラメータグループ] オプション、または describe-db-parameters コマンドを使用します。

注記

デフォルトのパラメータグループをコピーすることはできません。ただし、デフォルトのパラメータグループに基づく新しいパラメータグループを作成できます。

コンソール

DB パラメータグループをコピーするには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

  3. リストで、コピーするカスタムパラメータグループを選択します。

  4. [Parameter group actions (パラメータグループのアクション)] で、[コピー] を選択します。

  5. [新規の DB パラメータグループの識別子] に、新しいパラメータグループの名前を入力します。

  6. [説明] に、新しいパラメータグループの説明を入力します。

  7. [Copy] を選択します。

CLI

DB パラメータグループをコピーするには、以下の必須パラメータを指定して、AWS CLI の copy-db-parameter-group コマンドを使用します。

  • --source-db-parameter-group-identifier

  • --target-db-parameter-group-identifier

  • --target-db-parameter-group-description

次の例は、DB パラメータグループ mygroup2 のコピーである mygroup1 という名前の新しい DB パラメータグループを作成します。

Linux、OS X、Unix の場合:

aws rds copy-db-parameter-group \ --source-db-parameter-group-identifier mygroup1 \ --target-db-parameter-group-identifier mygroup2 \ --target-db-parameter-group-description "DB parameter group 2"

Windows の場合:

aws rds copy-db-parameter-group ^ --source-db-parameter-group-identifier mygroup1 ^ --target-db-parameter-group-identifier mygroup2 ^ --target-db-parameter-group-description "DB parameter group 2"
RDS API

DB パラメータグループをコピーするには、以下の必須パラメータを指定して、RDS API の CopyDBParameterGroup アクションを使用します。

  • SourceDBParameterGroupIdentifier

  • TargetDBParameterGroupIdentifier

  • TargetDBParameterGroupDescription

DB パラメータグループを一覧表示する

AWS アカウント用に作成した DB パラメータグループを一覧表示できます。

注記

デフォルトのパラメータグループは、特定の DB エンジンとバージョンの DB インスタンスを作成するときに、デフォルトのパラメータテンプレートから自動的に作成されます。これらのデフォルトのパラメータグループには、優先されるパラメータ設定が含まれています。これを変更することはできません。カスタムパラメータグループを作成する場合、パラメータ設定を変更できます。

コンソール

AWS アカウントのすべての DB パラメータグループを一覧表示するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

    DB パラメータグループがリストに表示されます。

CLI

AWS アカウントのすべての DB パラメータグループを一覧表示するには、AWS CLI の describe-db-parameter-groups コマンドを使用します。

以下の例では、AWS アカウントに使用できるすべての DB パラメータグループを一覧表示しています。

aws rds describe-db-parameter-groups

このコマンドでは次のようなレスポンスが返されます。

DBPARAMETERGROUP default.mysql5.5 mysql5.5 Default parameter group for MySQL5.5 DBPARAMETERGROUP default.mysql5.6 mysql5.6 Default parameter group for MySQL5.6 DBPARAMETERGROUP mydbparametergroup mysql5.6 My new parameter group

次の例は、mydbparamgroup1 パラメータグループを表しています。

Linux、OS X、Unix の場合:

aws rds describe-db-parameter-groups \ --db-parameter-group-name mydbparamgroup1

Windows の場合:

aws rds describe-db-parameter-groups ^ --db-parameter-group-name mydbparamgroup1

このコマンドでは次のようなレスポンスが返されます。

DBPARAMETERGROUP mydbparametergroup1 mysql5.5 My new parameter group
RDS API

AWS アカウントのすべての DB パラメータグループを一覧表示するには、RDS API の DescribeDBParameterGroups アクションを使用します。

DB パラメータグループのパラメータ値を表示する

DB パラメータグループのすべてのパラメータとそれらの値のリストを取得できます。

コンソール

DB パラメータグループのパラメータ値を表示するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

    DB パラメータグループがリストに表示されます。

  3. パラメータを一覧表示するパラメータグループの名前を選択します。

CLI

DB パラメータグループのパラメータ値を表示するには、以下の必須パラメータを指定して、AWS CLI の describe-db-parameters コマンドを使用します。

  • --db-parameter-group-name

以下の例では、mydbparametergroup という名前の DB パラメータグループのパラメータとその値を一覧表示しています。

aws rds describe-db-parameters --db-parameter-group-name mydbparametergroup

このコマンドでは次のようなレスポンスが返されます。

DBPARAMETER Parameter Name Parameter Value Source Data Type Apply Type Is Modifiable DBPARAMETER allow-suspicious-udfs engine-default boolean static false DBPARAMETER auto_increment_increment engine-default integer dynamic true DBPARAMETER auto_increment_offset engine-default integer dynamic true DBPARAMETER binlog_cache_size 32768 system integer dynamic true DBPARAMETER socket /tmp/mysql.sock system string static false
RDS API

DB パラメータグループのパラメータ値を表示するには、以下の必須パラメータを指定して、RDS API の DescribeDBParameters コマンドを使用します。

  • DBParameterGroupName

DB パラメータグループを比較する

AWS マネジメントコンソール を使用して、同じ DB エンジンおよびバージョンの 2 つのパラメータグループ間の差異を表示できます。

2 つのパラメータグループを比較するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[パラメータグループ] を選択します。

  3. リストで、比較する 2 つのパラメータグループを選択します。

  4. [Parameter group actions (パラメータグループのアクション)] で、[比較] を選択します。

DB パラメータ値

DB パラメータの値は、以下のいずれかとして指定できます。

  • 整数定数

  • DB パラメータ式

  • DB パラメータ関数

  • 文字列定数

  • ログ式 (log 関数は log 基数 2 に相当します)。value={log(DBInstanceClassMemory/8187281418)*1000} など。

DB パラメータ式

DB パラメータ式は整数値に解決される式あるいはブール値であり、中かっこ {} で囲まれます。式は、DB パラメータ値で指定したり、DB パラメータ関数の引数として指定したりできます。

構文

{FormulaVariable} {FormulaVariable*Integer} {FormulaVariable*Integer/Integer} {FormulaVariable/Integer}

DB パラメータ式の変数

各式の変数は整数あるいはブール値を返します。変数名では大文字と小文字が区別されます。

AllocatedStorage

データボリュームのサイズをバイト単位で返します。

DBInstanceClassMemory

現在の DB インスタンスに関連付けられている DB インスタンスクラスに割り当てられたメモリから、インスタンスを管理する Amazon RDS プロセスによって使用されるメモリを引いたバイト数を返します。

EndPointPort

DB インスタンスに接続するときに使用されるポートの番号を返します。

DBInstanceClassHugePagesDefault

ブール値を返します。現在のところ、これは Oracle エンジンのみでサポートされています。

詳細については、「Oracle DB インスタンスで huge pages を使用する」を参照してください。

DB パラメータ式の演算子

DB パラメータ式では、2 つ演算子 (除算と乗算) がサポートされています。

除算演算子: /

被除数を除数で割り、整数の商を返します。商の小数部分は四捨五入されず切り捨てられます。

構文

dividend / divisor

被除数と除数の引数は整数式である必要があります。

乗算演算子: *

式を乗算し、式の積を返します。式の小数部分は四捨五入されず切り捨てられます。

構文

expression * expression

両方の式は整数である必要があります。

DB パラメータ関数

パラメータ引数は整数または式のいずれかとして指定できます。各関数には 1 つ以上の引数が必要です。複数の引数をカンマ区切りのリストとして指定できます。リストには、argument1,,argument3 など、空のメンバーを使用することはできません。関数名では大文字と小文字は区別されません。

注記

DB パラメータ関数は、現在、AWS CLI ではサポートされていません。

IF()

引数を返します。

現在のところ、これは Oracle エンジンに対してのみサポートされ、最初の引数が {DBInstanceClassHugePagesDefault} の場合のみサポートされています。詳細については、「Oracle DB インスタンスで huge pages を使用する」を参照してください。

構文

IF(argument1, argument2, argument3)

最初の引数が true と評価する場合に、2 番目の引数を返します。それ以外の場合には、3 番目の引数を返します。

GREATEST()

整数またはパラメータ式のリストから最大値を返します。

構文

GREATEST(argument1, argument2,...argumentn)

整数を返します。

LEAST()

整数またはパラメータ式のリストから最小値を返します。

構文

LEAST(argument1, argument2,...argumentn)

整数を返します。

SUM()

指定した整数またはパラメータ式の値を加算します。

構文

SUM(argument1, argument2,...argumentn)

整数を返します。

DB パラメータ値の例

以下の例では、DB パラメータ値に式と関数を使用しています。

警告

DB パラメータグループのパラメータを適切に設定しないと、パフォーマンスが低下したりシステムが不安定になったりするなど、予期しない悪影響が生じることがあります。データベースパラメータの変更時には常に注意が必要です。DB パラメータグループの変更前にはデータをバックアップしてください。パラメータグループの変更は、テスト DB インスタンス (ポイントインタイム復元を使用して作成) で試してから、本番稼働用 DB インスタンスに適用してください。

Oracle の processes パラメータで GREATEST 関数を指定して、ユーザープロセスの数を設定できます。その数は、80 または DBInstanceClassMemory を 9,868,951 で割った値の、いずれか大きい方の値に設定されます。

GREATEST({DBInstanceClassMemory/9868951},80)

MySQL max_binlog_cache_size パラメータ値で LEAST() 関数を指定して、MySQL インスタンスでトランザクションに使用できる最大キャッシュサイズを設定できます。そのサイズは、1 MB、または DBInstanceClass を 256 で割った値の、いずれか小さい方の値に設定されます。

LEAST({DBInstanceClassMemory/256},10485760)