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

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

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

ユーザー定義の DB パラメータグループを指定せずに DB インスタンスを作成した場合、デフォルトの DB パラメータグループが作成されます。このデフォルトグループには、エンジン、コンピューティングクラス、インスタンスの割り当てストレージに基づいて、データベースエンジンのデフォルトと Amazon RDS システムのデフォルトが含まれています。デフォルト DB パラメータグループのパラメータ設定は変更できません。デフォルト値からパラメータ設定を変更するには、独自の DB パラメータグループを作成する必要があります。DB エンジンのすべてのパラメータが、ユーザー定義の DB パラメータグループで変更できるわけではありません。

ユーザー独自の DB パラメータグループを使用する必要がある場合は、新しい DB パラメータグループを作成し、必要なパラメータを変更してから、その新しい DB パラメータグループを使用するように DB インスタンスを変更します。特定の DB パラメータグループに関連付けられているすべての DB インスタンスには、その DB パラメータグループのパラメータのすべての更新が適用されます。AWS CLI の copy-db-parameter-group コマンドで、既存のパラメータグループをコピーすることもできます。パラメータグループのコピーは、作成済みの DB パラメータグループがあり、そのグループの多くのカスタムパラメータと値を新しい DB パラメータグループに含める必要がある場合に便利な方法です。

DB パラメータグループのパラメータを使用する際に、注意する必要がある重要な点を以下に示します。

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

  • 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 インスタンスにそれらのパラメータグループの変更を適用する必要があります。

  • Amazon Aurora は、DB パラメータグループと DB クラスターパラメータグループの両方を使用します。DB パラメータグループのパラメータは、Aurora DB クラスター内の単一の DB インスタンスに適用されます。DB クラスターパラメータグループのパラメータは、DB クラスター内のすべての DB インスタンスに適用されます。詳細については、「Amazon Aurora DB クラスターパラメータと DB インスタンスパラメータ」を参照してください。

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

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

AWS マネジメントコンソール

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

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

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

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

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

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

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

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

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

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
API

DB パラメータグループを作成するには、Amazon RDS API の CreateDBParameterGroup アクションを使用します。以下の例では、MySQL バージョン 5.6 用に、mydbparametergroup という名前で、「My new parameter group」という説明の新しい DB パラメータグループを作成しています。

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

  • DBParameterGroupName

  • DBParameterGroupFamily

  • Description

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

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

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

RDS コンソールに、DB インスタンスに関連付けられている DB パラメータグループのステータスが表示されます。たとえば、DB インスタンスが関連付けられている DB パラメータグループに対する変更を使用していない場合、RDS コンソールの DB パラメータグループのステータスに pending-reboot と表示されます。DB インスタンスで最新のパラメータ変更を有効にするには、その DB インスタンスを手動で再起動する必要があります。

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

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

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

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

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

  4. [パラメータグループアクション] を選択して、[編集] を選択します。

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

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

  6. [変更の保存] を選択します。

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
API

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

  • DBParameterGroupName

  • Parameters

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

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

DB パラメータグループのコピー後、デフォルトのパラメータグループとしてその DB パラメータグループを使用する最初の DB インスタンスが作成されるまで、5 分以上かかります。その間に、Amazon RDS によってコピーアクションが完了し、そのパラメータグループが新しい DB インスタンスのデフォルトとして使用されるようになります。この点は、DB インスタンスのデフォルトデータベースの作成時に必須になるパラメータ (デフォルトデータベースの文字セットを定義する character_set_database パラメータなど) に特に重要です。DB パラメータグループが作成されたことを確認するには、「Amazon RDS コンソール」の [Parameter Groups] オプション、または describe-db-parameters コマンドを使用します。

注記

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

AWS マネジメントコンソール

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

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

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

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

  4. [パラメータグループアクション] を選択して、[コピー] を選択します。

  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 パラメータグループ mygroup1 のコピーである mygroup2 という名前の新しい 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"
API

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

  • SourceDBPparameterGroupIdentifier

  • TargetDBPparameterGroupIdentifier

  • TargetDBPparameterGroupDescription

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

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

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

注記

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

AWS マネジメントコンソール

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
API

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

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

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

AWS マネジメントコンソール

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
API

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

  • DBParameterGroupName

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

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

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

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

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

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

  4. [パラメータグループアクション] を選択して、[比較] を選択します。

DB パラメータ値

DB パラメータの値として以下のもの指定できます。

  • 整数定数

  • DB パラメータ式

  • DB パラメータ関数

  • 文字列定数

  • ログ式 (log 関数は log 基数 2 に相当します)。値={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 パラメータ関数は、現在、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 を 9868951 で割った値の、いずれか大きい方の値に設定されます。

GREATEST({DBInstanceClassMemory/9868951},80)

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

LEAST({DBInstanceClassMemory/256},10485760)