配備設定の変更
IBM Cloud® Databases for MySQL これにより、 MySQL の構成設定の一部を変更し、 MySQL データベースをユースケースに合わせて調整することができます。 データベースの構成に永続的な変更を加えるには、Cloud Databases cli-plugin または API を使用して、デプロイメントの構成ファイルに変更を書き込みます。
構成はスキーマで定義されています。 変更するには、設定とその新しい値を含むJSONオブジェクトをAPIまたはCLIに送信する。 例えば、CLI または API で、次のようなコマンドを使用して max_connections を 150 に設定します。
{"configuration":{"max_connections":150}}
詳しくは、「 MySQL 接続の管理」を参照してください。
MySQL'max_connections 変数の計算方法
max_connections は、データベース・サーバーとの間で確立できる同時接続の最大数を決定する、 MySQL の構成パラメーターです。
MySQL max_connections 基本式
max_connections を計算するための基本的な式は、以下のとおりです。
Available RAM = Global Buffers + (Thread Buffers x `max_connections`)
バッファーとその値のリストを検索するには、次のようなコマンドを使用します。
SHOW VARIABLES LIKE '%buffer%';
Cloud Databases CLIプラグインの使用
以下のようなコマンドを使用して、デプロイのデフォルト設定をチェックする:
ibmcloud cdb deployment-configuration-schema <deployment name or CRN>
このコマンドはデフォルトのコンフィギュレーションを返すだけである。 デフォルト・コンフィギュレーションへの変更は表示されない。
Cloud Databases CLI-pluginから設定を変更するには、 deployment-configuration コマンドを使用します:
ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]
このコマンドは、変更内容を JSON オブジェクトまたはファイルから読み取ります。 詳しくは、 CLI リファレンス・ページ を参照してください。
Cloud Databases API の使用
2 つのデプロイメント構成エンドポイントがあり、1 つは構成スキーマを表示するためのエンドポイント、もう 1 つは構成を変更するためのエンドポイントです。 構成スキーマを表示するには、GET 要求を /deployments/{id}/configuration/schema に送信します。
構成を変更するには、変更する設定を JSON オブジェクトとして PATCH 要求の本文に指定して /deployments/{id}/configuration に送信します。
詳しくは、 API リファレンスを参照してください。
Databases for MySQL タイム・ゾーン設定
Databases for MySQL デプロイメントのタイム・ゾーンは常に協定世界時です。 Cloud Databases API を使用してタイム・ゾーンを構成するか、CLI でタイム・ゾーンを名前付きタイム・ゾーン (推奨) またはタイム・ゾーンのオフセットに変更します。
リストアされたインスタンスと読み取りレプリカの両方で、タイム・ゾーンを再度構成する必要があります。 タイム・ゾーン表はリストアされ (リストアの場合)、複製されますが (読み取りレプリカの場合)、 @@global.time_zone 値はリストアされません。 この値を設定するには、以前と同じ API 呼び出しを使用しますが、新しい CRN を使用します。
Databases for MySQL タイム・ゾーン設定の構成
プロビジョニング時に、 Cloud Databases デプロイメントが協定世界時に構成されます。 タイム・ゾーンの再構成は永続的な変更であり、 Cloud Databases デプロイメントごとに行う必要があります。
タイム・ゾーンを構成すると、 MySQL インスタンス内にグローバル・タイム・ゾーンが設定されます。 フェイルオーバーが発生するインスタンスでは、タイム・ゾーン設定が MySQL 構成ファイルに書き込まれるため、レプリケーションの一部としてタイム・ゾーン設定が伝搬されます。 ただし、優先タイム・ゾーンを構成する前のポイント・イン・タイムにインスタンスをリストアする場合は例外です。
夏時間調整機能を備えたタイム・ゾーンを構成する場合、調整は構成の一部になります。 お客様の側でアクションは必要ありません。 オフセット時間を使用するよりも、特定の時間帯を使用する方が適しています。
Cloud Databases は、 time_zone パラメーター値を検証します。 無効な値を使用してデプロイメントを構成すると、構成は失敗します。 time_zone values という有効な名前は、 ここにあります。
Cloud Databases API でのタイム・ゾーンの変更
オフセットの例:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE OFFSET"}}'
名前付きタイム・ゾーンの例:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE TIME ZONE"}}'
Cloud Databases CLI でのタイム・ゾーンの変更
名前付きタイム・ゾーンの例
ibmcloud cdb deployment-configuration <crn> '{"time_zone": "US/Pacific"}'
利用可能なDatabases for MySQL構成設定
- デフォルト-
sha256_password - 指定可能な値:
sha256_password、mysql_native_password - データベースを再起動しますか? -
true
特に必要でない限り、 mysql_native_password は使用しないでください。
innodb_buffer_pool_size_percentage
- 説明:
innodb_buffer_pool_sizeに使用するメモリーのパーセンテージ。 デフォルト値の 50% は保守的な値であり、どのサイズのデータベースでも機能します。 データベースでより多くの RAM が必要な場合は、この値を増やすことができます。 この値の設定が高すぎると、データベースのメモリー制限を超える可能性があり、それが原因でデータベースがクラッシュする可能性があります。 - デフォルト:
50 - 最低限だ:
10 - 最大だ:
100 - データベースを再起動しますか? -
true
innodb_flush_log_at_trx_commit
- 説明: コミット 操作の厳密な ACID 準拠と、コミット関連の入出力操作が再配置されてバッチで実行されるときに可能なより高いパフォーマンスとのバランスを制御します。 デフォルト値を変更することでパフォーマンスを向上させることができますが、クラッシュ時にトランザクションを失う可能性があります。
- デフォルト:
2 - 最低限だ:
0 - 最大だ:
2 - データベースを再起動しますか? -
false
- 説明: InnoDB がディスク上の ログ・ファイル に書き込むために使用するバッファーのサイズ (バイト単位)。
- デフォルト:
33554432 - 最低限だ:
1048576 - 最大だ:
4294967295 - データベースを再起動しますか? -
true
- 説明 ロググループ内の 各ログファイルのバイト数。
Innodb_log_file_sizeと 'innodb_log_files_in_groupは 'innodb_redo_log_capacityに取って代わられた。innodb_log_file_size設定すると 'innodb_redo_log_capacityも設定される。 - デフォルト:
2147483648 - 最低限だ:
4194304 - 最大だ:
274877906900 - データベースを再起動しますか? -
false
- 説明: InnoDB バッファー・プールの flush 操作のアルゴリズムおよびヒューリスティックに影響を与えるパラメーター。 通常、デフォルトより小さい設定は、ほとんどのワークロードに適しています。 必要以上の値を指定すると、パフォーマンスに影響を与える可能性があります。 標準的なワークロードの下に予備の入出力容量がある場合にのみ、この値を増やすことを検討してください。
- デフォルト:
256 - 最低限だ:
128 - 最大だ:
2048 - データベースを再起動しますか? -
false
- 説明 InnoDB における書き込み操作のI/Oスレッド数。
- デフォルト:
4 - 最低限だ:
1 - 最大だ:
64 - データベースを再起動しますか? -
true
- デフォルト-
1073741824 - 最小-
1024 - 最大-
1073741824 - データベースを再起動しますか? -
false
- 説明-サーバー上の準備済みステートメントの総数を指定します。
- デフォルト-
16382 - 最小-
0 - 最大-(バージョン ≤ 8.0.17)
1048576、(バージョン ≥ 8.0.18)4194304 - データベースを再起動しますか? -
false
- デフォルト-
200 - データベースを再起動しますか? -
false
最大接続数を増やす前にスケーリングする ことが必要な場合があります。
- デフォルト-
1800 - データベースを再起動しますか? -
false
- 説明: 書き込みを中止するまでに、ブロックが接続に書き込まれるのを待機する秒数。
- デフォルト:
60 - 最低限だ:
1 - 最大だ:
7200 - データベースを再起動しますか? -
false
- 指定可能な値:
ALLOW_INVALID_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_CREATE_USERNO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_FIELD_OPTIONSNO_KEY_OPTIONSNO_TABLE_OPTIONSNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLES
- データベースを再起動しますか? -
false
- 説明: サーバーに現在設定されているタイム・ゾーンは、デフォルトでは「+ 00:00」(協定世界時) です。 ただし、[HH]:MMの形式で協定世界時からのオフセットを設定することも可能で、その場合は接頭辞に+または-を付ける(たとえば「+10:00'-6:00」「+05:30」など)。 「MET」や「US/Pacific」などの名前付きタイム・ゾーンも使用できます。
- デフォルト:
+00:00 - タイプ:
string - データベースを再起動しますか? -
false
- 説明: 非対話式接続を閉じる前に、サーバーが非対話式接続でアクティビティーを待機する秒数。
- デフォルト:
28800 - 最低限だ:
1 - 最大だ:
31536000 - データベースを再起動しますか? -
false
- 説明: InnoDB 内の読み取り操作の入出力スレッドの数。
- デフォルト:
4 - 最低限だ:
1 - 最大だ:
64 - データベースを再起動しますか? -
true
- 説明: 読み取りを中止するまでに、接続からの追加データを待機する秒数。
- デフォルト:
30 - 最低限だ:
1 - 最大だ:
7200 - データベースを再起動しますか? -
false