データベース フラグを構成する

このページでは、Cloud SQL のデータベース フラグを構成する方法について説明し、インスタンスに設定できるフラグの一覧を示します。データベース フラグは、PostgreSQL パラメータの調整、オプションの調整、インスタンスの構成や調整など、多くの操作で使用します。

場合によっては、目的の機能を完全に有効にするために、1 つのフラグの設定だけでなく、別のフラグの設定も必要になることがあります。

データベース インスタンスのフラグを設定、削除、変更すると、データベースが再起動される場合があります。その場合、フラグの値はフラグを削除するまでインスタンスに対して保持されます。インスタンスがレプリカのソースである場合、レプリカもインスタンスの現在の構成に合わせて再起動します。

データベース フラグの構成

データベース フラグの設定

Console

  1. Google Cloud Console で新しい Cloud Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを開き、[編集] をクリックします。
  3. 下方向にスクロールして [フラグ] セクションを表示します。
  4. それまでにインスタンスで設定したことのないフラグを設定するには、[項目を追加] をクリックし、プルダウン メニューからフラグを選択して、その値を設定します。
  5. [保存] をクリックして、変更を保存します。
  6. [概要] ページの [フラグ] で、変更を確認します。

gcloud

インスタンスを編集します。

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

このコマンドでは、以前に設定されたすべてのデータベース フラグが上書きされます。これらを保持し、新しいフラグを追加するには、インスタンスに設定するすべてのフラグの値を含めます。具体的に含まれていないフラグはデフォルト値に設定されます。値のないフラグについては、フラグ名の後に等号(=)を付けておきます。

REST

既存のデータベースのフラグを設定するには:

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 本文のリクエスト:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

データベースにすでに構成されているフラグがある場合は、以前のコマンドを変更するときにそれらのフラグも含めるようにします。PATCH コマンドは、既存のフラグをリクエストで指定されているフラグで上書きします。

すべてのフラグをデフォルト値にクリアする

Console

  1. Google Cloud Console で新しい Cloud Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを開き、[編集] をクリックします。
  3. [データベースのフラグ] セクションを開きます。
  4. 表示されているフラグの横にある X をクリックします。
  5. [保存] をクリックして、変更を保存します。

gcloud

インスタンスのすべてのフラグをデフォルト値にクリアします。

gcloud sql instances patch [INSTANCE_NAME] --clear-database-flags

インスタンスを再起動する確認を求められます。

REST

既存のインスタンスのフラグをすべてクリアするには:

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 本文のリクエスト:

{
  "settings":
  {
    "databaseFlags": []
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

データベース フラグの現在の値を表示する

すべての PostgreSQL 設定の現在値を表示するには、psql クライアントでインスタンスにログインし、次のステートメントを入力します。

 SELECT name, setting FROM pg_settings;

サポートされているフラグのみ値を変更できます(下記を参照)。

インスタンスに対して設定されているデータベース フラグを確認する

Cloud SQL インスタンスに対して設定されているフラグを確認するには:

Console

  1. Google Cloud Console で新しい Cloud Console プロジェクトを作成するか、プロジェクト名を選択して既存のプロジェクトを開きます。
  2. インスタンスを選択して、[インスタンスの概要] ページを開きます。

    設定済みのデータベース フラグは、[データベースのフラグ] セクションに一覧表示されます。

gcloud

インスタンスの状態を取得します。

gcloud sql instances describe [INSTANCE_NAME]

出力では、データベース フラグは settings の下にコレクション databaseFlags として一覧表示されます。出力でのフラグの表示の詳細については、インスタンスのリソースの表示をご覧ください。

REST

インスタンスに構成されているフラグを一覧表示するには:

後述のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

出力で databaseFlags フィールドを探します。

サポートされているフラグ

各フラグについては、Cloud SQL でサポートされる範囲が、対応する PostgreSQL のパラメータやオプションと異なる場合があります。

A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W

Cloud SQL フラグ
有効な値と注意事項
再起動が
必要か
ベータ版
autovacuum boolean
on | off
× ×
autovacuum_analyze_scale_factor float
0100
× ×
autovacuum_analyze_threshold integer
02147483647
× ×
autovacuum_freeze_max_age integer
1000002000000000
autovacuum_max_workers integer
1varies (see note)

×
autovacuum_multixact_freeze_max_age integer
100002000000000
autovacuum_naptime integer
12147483
× ×
autovacuum_vacuum_cost_delay integer
0100 ミリ秒、または vacuum_cost_delay の値を使用する -1
× ×
autovacuum_vacuum_cost_limit integer
0 10000vacuum_cost_limit 値を使用する場合は -1
× ×
autovacuum_vacuum_scale_factor float
0100
× ×
autovacuum_vacuum_threshold integer
02147483647
× ×
autovacuum_work_mem integer
02147483647 KB、maintenance_work_mem 値を使用する場合は -1
×
checkpoint_completion_target float
0.01.0
× ×
checkpoint_timeout integer
3086400
×
checkpoint_warning integer
02147483647
× ×
cloudsql.enable_pgaudit boolean
on | off
cloudsql.iam_authentication boolean
on | off
デフォルト: off
commit_delay integer
0100000
× ×
commit_siblings integer
01000
× ×
constraint_exclusion enumeration
partition | on | off
× ×
cpu_index_tuple_cost float
0.0inf
× ×
cpu_operator_cost float
0.0inf
× ×
cpu_tuple_cost float
0.0inf
× ×
cursor_tuple_fraction float
0.01.0
× ×
deadlock_timeout integer
12147483647 ミリ秒
× ×
default_statistics_target integer
110000
× ×
default_tablespace string × ×
default_transaction_deferrable boolean
on | off
× ×
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
× ×
enable_bitmapscan boolean
on | off
× ×
enable_hashagg boolean
on | off
× ×
enable_hashjoin boolean
on | off
× ×
enable_indexonlyscan boolean
on | off
× ×
enable_indexscan boolean
on | off
× ×
enable_material boolean
on | off
× ×
enable_mergejoin boolean
on | off
× ×
enable_nestloop boolean
on | off
× ×
enable_seqscan boolean
on | off
× ×
enable_sort boolean
on | off
× ×
enable_tidscan boolean
on | off
× ×
force_parallel_mode enumeration
off | on | regress
× ×
from_collapse_limit integer
12147483647
× ×
geqo boolean
on | off
× ×
geqo_effort integer
110
× ×
geqo_generations integer
02147483647
× ×
geqo_pool_size integer
02147483647
× ×
geqo_seed float
0.01.0
× ×
geqo_selection_bias float
1.52.0
× ×
geqo_threshold integer
22147483647
× ×
gin_fuzzy_search_limit integer
02147483647
× ×
gin_pending_list_limit integer
642147483647 KB
× ×
hot_standby_feedback boolean
on | off
× ×
idle_in_transaction_session_timeout integer
02147483647 ミリ秒
× ×
join_collapse_limit integer
12147483647
× ×
lock_timeout integer
02147483647 ミリ秒
× ×
log_autovacuum_min_duration integer
02147483647 ミリ秒。無効にする場合は -1
× ×
log_checkpoints boolean
on | off
× ×
log_connections boolean
on | off
× ×
log_disconnections boolean
on | off
× ×
log_duration boolean
on | off
× ×
log_error_verbosity enumeration
terse | default | verbose
× ×
log_executor_stats boolean
on | off
× ×
log_hostname boolean
on | off
× ×
log_lock_waits boolean
on | off
× ×
log_min_duration_statement integer
-12147483647 ミリ秒
× ×
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
× ×
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
× ×
log_parser_stats boolean
on | off
× ×
log_planner_stats boolean
on | off
× ×
log_replication_commands boolean
on | off
× ×
log_statement enumeration
none | ddl | mod | all
mod に設定して、すべてのデータ定義言語(DDL)ステートメントと INSERTUPDATEDELETETRUNCATE などのデータ変更ステートメントをログに記録します。
× ×
log_statement_stats boolean
on | off
log_parser_statslog_planner_statslog_executor_stats と一緒に有効にすることはできません。
× ×
log_temp_files integer
02147483647 KB。無効にする場合は -1
× ×
maintenance_work_mem integer
10242147483647 KB
×
max_connections integer
14varies (see note)

レプリカの値は、プライマリの値以上の値にする必要があります。プライマリの変更は、プライマリの新しい値よりも小さい値を持つレプリカか、デフォルト値から変更されていないレプリカに反映されます。

max_locks_per_transaction integer
102147483647

レプリカの値は、プライマリの値以上の値にする必要があります。プライマリの変更は、プライマリの新しい値よりも小さい値を持つレプリカか、デフォルト値から変更されていないレプリカに反映されます。

max_prepared_transactions integer
0262143

レプリカの値は、プライマリの値以上の値にする必要があります。プライマリの変更は、プライマリの新しい値よりも小さい値を持つレプリカか、デフォルト値から変更されていないレプリカに反映されます。

max_standby_archive_delay integer
02147483647 ミリ秒。待機を継続する場合は -1
× ×
max_standby_streaming_delay integer
02147483647 ミリ秒。待機を継続する場合は -1
× ×
max_wal_size integer
22147483647

Postgres 10、11、12 の場合、単位は 1 MB です。バージョン 9.6 の場合、単位は 16 MB(WAL ファイルサイズ)です。

×
min_parallel_relation_size integer
0715827882
単位は 8 KB
× ×
old_snapshot_threshold integer
086400 分。無効にする場合は -1
×
parallel_setup_cost float
0.0inf
× ×
parallel_tuple_cost float
0.0inf
× ×
pg_stat_statements.max integer
1002147483647
×
pg_stat_statements.save boolean
on | off
× ×
pg_stat_statements.track enumeration
none | top | all
× ×
pg_stat_statements.track_utility boolean
on | off
× ×
random_page_cost float
0.0inf
× ×
replacement_sort_tuples integer
02147483647
× ×
ssl_max_protocol_version enumeration
Postgres 12: 使用する SSL / TLS プロトコルの最大バージョンを設定します。有効な値は ssl_min_protocol_version で、空の文字列を追加することで、任意のプロトコル バージョンを指定できます。
× ×
ssl_min_protocol_version enumeration
Postgres 12: 使用する SSL / TLS プロトコルの最小バージョンを設定します。現在有効な値は、TLSv1TLSv1.1TLSv1.2TLSv1.3 です。

デフォルトは TLSv1 です。

× ×
standard_conforming_strings boolean
on | off
× ×
synchronize_seqscans boolean
on | off
× ×
temp_buffers integer
1001073741823
単位は 8 KB
×
temp_file_limit integer
10485762147483647 KB
× ×
trace_notify boolean
on | off
× ×
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
× ×
trace_sort boolean
on | off
× ×
track_activities boolean
on | off
× ×
track_activity_query_size integer
100102400
×
track_commit_timestamp boolean
on | off
×
track_counts boolean
on | off
× ×
track_functions enumeration
none | pl | all
× ×
track_io_timing boolean
on | off
× ×
vacuum_cost_delay integer
0100 ミリ秒
× ×
vacuum_cost_limit integer
110000
× ×
vacuum_freeze_min_age integer
01000000000
× ×
vacuum_freeze_table_age integer
02000000000
× ×
vacuum_multixact_freeze_min_age integer
01000000000
× ×
vacuum_multixact_freeze_table_age integer
02000000000
× ×
work_mem integer
642147483647 KB
×

トラブルシューティング

表内のリンクをクリックすると、詳細が表示されます。

この問題については... 次のような問題が考えられます... 次のことを試します...
タイムゾーンを設定するフラグがない。 タイムゾーン フラグがサポートされていない。 いくつかの回避策があります。

タイムゾーンを設定するフラグがない

Postgres では、ユーザーの希望に応じてタイムゾーンを調整するためのタイムゾーン フラグを使用できません。

考えられる原因

タイムゾーン フラグがサポートされていない。

次の方法をお試しください

セッションごとにタイムゾーンを設定できますが、ログアウトすると期限切れになります。データベースに接続し、データベースのタイムゾーンをユーザーごとまたはデータベースごとに希望のタイムゾーンに設定することをおすすめします。

ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';

これらの設定は、セッションを終了しても残り、.conf 構成を再現します。

次のステップ