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

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

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

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

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

データベース フラグを設定する

コンソール

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

gcloud

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

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

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

たとえば、log_connections フラグと log_min_error_statement フラグを設定するには、次のコマンドを使用します。

gcloud sql instances patch INSTANCE_NAME \
  --database-flags=log_connections=on,log_min_error_statement=error

Terraform

データベース フラグを追加するには、Terraform リソースを使用します。

resource "google_sql_database_instance" "instance" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    database_flags {
      name  = "log_connections"
      value = "on"
    }
    database_flags {
      name  = "log_min_error_statement"
      value = "error"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

変更を適用する

Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。

Cloud Shell を準備する

  1. Cloud Shell を起動します。
  2. Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。

    このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。

ディレクトリを準備する

Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。

  1. Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は .tf にする必要があります(例: main.tf)。このチュートリアルでは、このファイルを main.tf とします。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。

    新しく作成した main.tf にサンプルコードをコピーします。

    必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。

  3. 環境に適用するサンプル パラメータを確認し、変更します。
  4. 変更を保存します。
  5. Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
    terraform init

    最新バージョンの Google プロバイダを使用する場合は、-upgrade オプションを使用します。

    terraform init -upgrade

変更を適用する

  1. 構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
    terraform plan

    必要に応じて構成を修正します。

  2. 次のコマンドを実行します。プロンプトで「yes」と入力して、Terraform 構成を適用します。
    terraform apply

    Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。

  3. Google Cloud プロジェクトを開いて結果を表示します。Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。

変更を削除する

変更を削除するには、次の手順を行います。

  1. 削除の保護を無効にするには、Terraform 構成ファイルで deletion_protection 引数を false に設定します。
    deletion_protection =  "false"
  2. 次のコマンドを実行します。プロンプトで「yes」と入力して、更新された Terraform 構成を適用します。
    terraform apply
  1. 次のコマンドを実行します。プロンプトで「yes」と入力して、以前に Terraform 構成で適用されたリソースを削除します。

    terraform destroy

REST v1

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

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

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

HTTP メソッドと URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

リクエストの本文(JSON):

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

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

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

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

REST v1beta4

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

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

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

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

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

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

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

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

コンソール

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

gcloud

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

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

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

REST v1

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

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

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

HTTP メソッドと URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

リクエストの本文(JSON):

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

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

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

REST v1beta4

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

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

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

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

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

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

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

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

 SELECT name, setting FROM pg_settings;

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

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

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

コンソール

  1. Google Cloud コンソールで、設定されているデータベース フラグを確認する Cloud SQL インスタンスを含むプロジェクトを選択します。
  2. インスタンスを選択して、[インスタンスの概要] ページを開きます。

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

gcloud

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

gcloud sql instances describe INSTANCE_NAME

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

REST v1

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

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

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

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

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

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

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

REST v1beta4

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

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

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

HTTP メソッドと URL:

GET https://sqladmin.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 フラグ
有効な値と注意事項
再起動が
必要か
anon.algorithm String
デフォルト値は sha256 です。
いいえ
anon.maskschema String
デフォルトは mask です。
いいえ
anon.restrict_to_trusted_schemas boolean
on | off
デフォルトは off です。
いいえ
anon.salt String
デフォルト値はありません。
いいえ
anon.sourceshema String
デフォルトは public です。
いいえ
auto_explain.log_analyze boolean
on | off
デフォルトはオフです。
なし
auto_explain.log_buffers boolean
on | off
デフォルトはオフです。
なし
auto_explain.log_min_duration Integer
-1 ... 2147483647
デフォルトは -1 です。
なし
auto_explain.log_format String
text|xml|json|yaml
デフォルトは text です。
なし
auto_explain.log_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|log
デフォルトは log です。
PostgreSQL 12 以降でサポートされます。
なし
auto_explain.log_nested_statements boolean
on | off
デフォルトはオフです。
なし
auto_explain.log_settings boolean
on | off
デフォルトは off です。
PostgreSQL 12 以降でサポートされます。
なし
auto_explain.log_timing boolean
on | off
デフォルトはオンです。
なし
auto_explain.log_triggers boolean
on | off
デフォルトはオフです。
なし
auto_explain.log_wal boolean
on | off
デフォルトは off です。
PostgreSQL 13 以降でサポートされます。
なし
auto_explain.log_verbose boolean
on | off
デフォルトはオフです。
なし
auto_explain.sample_rate Float
0 ... 1
デフォルトは 1 です。
なし
autovacuum boolean
on | off
デフォルトは on です。
SLA に影響する可能性がある使用状況情報については、Cloud SQL for PostgreSQL インスタンスの運用ガイドラインをご覧ください。
×
autovacuum_analyze_scale_factor float
0100
デフォルトは 0.1 です。
いいえ
autovacuum_analyze_threshold integer
02147483647
デフォルトは 50 です。
いいえ
autovacuum_freeze_max_age integer
1000002000000000
デフォルトは 200000000 です。
SLA に影響する可能性がある使用状況情報については、Cloud SQL for PostgreSQL インスタンスの運用ガイドラインをご覧ください。
autovacuum_max_workers integer
1 ... varies (see note)
デフォルトは 3 です。
はい
autovacuum_multixact_freeze_max_age integer
100002000000000
デフォルトは 400000000 です。
SLA に影響する可能性がある使用状況情報については、Cloud SQL for PostgreSQL インスタンスの運用ガイドラインをご覧ください。
autovacuum_naptime integer
12147483s
デフォルトは 60s です。
いいえ
autovacuum_vacuum_cost_delay integer
0100 ミリ秒。vacuum_cost_delay 値を使用する場合は -1
PostgreSQL 9.6、10、11 の場合、デフォルト値は 2 ミリ秒です。
いいえ
autovacuum_vacuum_cost_limit integer
0 10000vacuum_cost_limit 値を使用する場合は -1
デフォルトは -1 です。
いいえ
autovacuum_vacuum_insert_scale_factor float
0100
デフォルトは 0.2 です。
いいえ
autovacuum_vacuum_insert_threshold integer
-12147483647
デフォルトは 1000 です。
いいえ
autovacuum_vacuum_scale_factor float
0100
デフォルトは 0.2 です。
いいえ
autovacuum_vacuum_threshold integer
02147483647
デフォルトは 50 です。
いいえ
autovacuum_work_mem integer
02147483647 KB。maintenance_work_mem 値を使用する場合は -1
デフォルトは -1 です。
×
backend_flush_after integer
0256
単位は 8 KB です。
デフォルトは 0 です。
×
bgwriter_delay integer
1010000 ms
デフォルトは 200 です。
×
bgwriter_flush_after integer
0256
単位は 8 KB です。
デフォルトは 64 です。
×
bgwriter_lru_maxpages integer
01073741823
デフォルトは 100 です。
×
bgwriter_lru_multiplier Float
010
デフォルトは 2 です。
×
checkpoint_completion_target float
0.01.0
デフォルトは 0.9 です。
×
checkpoint_flush_after integer
0 ... 256
単位は 8 KB です。
デフォルトは 32 です。
×
checkpoint_timeout integer
3086,400s
デフォルトは 300s です。
SLA に影響する可能性がある使用状況情報については、Cloud SQL for PostgreSQL インスタンスの運用ガイドラインをご覧ください。
×
checkpoint_warning integer
02147483647s
デフォルトは 30s です。
×
client_connection_check_interval integer
02147483647
デフォルトは 0 です。
×
cloudsql.allow_passwordless_local_connections boolean
on | off
デフォルトは off です。
いいえ
cloudsql.enable_anon boolean
on | off
デフォルトは off です。
いいえ
cloudsql.enable_auto_explain boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_maintenance_mode boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_pgaudit boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_pg_bigm boolean
on | off
デフォルト: off
はい
cloudsql.enable_pg_cron boolean
on | off
デフォルトは off です。
PostgreSQL 10 以降でサポートされます。
はい
cloudsql.enable_pg_hint_plan boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_pglogical boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_pg_squeeze boolean
on | off
デフォルトは off です。
はい
cloudsql.enable_pg_wait_sampling boolean
on | off
はい
cloudsql.iam_authentication boolean
on | off
デフォルトは off です。
いいえ
cloudsql.logical_decoding boolean
on | off
デフォルトは off です。
はい
cloudsql.max_failed_attempts_user integer
0 ... 10000
デフォルト値は 10 です。
はい
cloudsql.pg_authid_select_role string
いいえ
commit_delay integer
0100000
デフォルトは 0 です。
いいえ
commit_siblings integer
01000
デフォルトは 5 です。
いいえ
constraint_exclusion enumeration
partition | on | off
デフォルトは partition です。
いいえ
cpu_index_tuple_cost float
0.0inf
デフォルトは 0.005 です。
いいえ
cpu_operator_cost float
0.0inf
デフォルトは 0.0025 です。
いいえ
cpu_tuple_cost float
0.0inf
デフォルトは 0.01 です。
いいえ
cron.database_name String.
PostgreSQL 10 以降でサポートされます。
あり
cron.log_statement boolean
on | off
デフォルトは on です。
PostgreSQL 10 以降でサポートされます。
あり
cron.log_run boolean
on | off
デフォルトは on です。
PostgreSQL 10 以降でサポートされます。
あり
cron.max_running_jobs Integer
0 ... varies
デフォルトは 5 です。
PostgreSQL 10 以降でサポートされます。
あり
cron.log_min_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log|fatal|panic
デフォルトは warning です。
PostgreSQL 10 以降でサポートされます。
なし
cursor_tuple_fraction float
0.01.0
デフォルトは 0.1 です。
いいえ
deadlock_timeout integer
12147483647 ms
デフォルトは 1000ms です。
いいえ
default_statistics_target integer
110000
デフォルトは 100 です。
いいえ
default_tablespace string いいえ
default_transaction_deferrable boolean
on | off
デフォルトは off です。
いいえ
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
デフォルトは 'read committed' です。
いいえ
effective_cache_size integer
サイズの範囲は、インスタンスのメモリの 10~70% です。
単位は 8 KB です。
デフォルトは VM メモリの 40% です。たとえば、45 GB のインスタンス メモリの場合、デフォルト値は 18537160 KB です。
いいえ
effective_io_concurrency integer
0 ... 1000
デフォルトは 1 です。
×
enable_async_append boolean
on | off
デフォルトは on です。
×
enable_bitmapscan boolean
on | off
デフォルトは on です。
×
enable_gathermerge boolean
on | off
デフォルトは on です。
×
enable_incremental_sort boolean
on | off
デフォルトは on です。
×
enable_memoize boolean
on | off
デフォルトは on です。
×
enable_parallel_append boolean
on | off
デフォルトは on です。
×
enable_parallel_hash boolean
on | off
デフォルトは on です。
×
enable_partition_pruning boolean
on | off
デフォルトは on です。
×
enable_partitionwise_aggregate boolean
on | off
デフォルトは off です。
×
enable_partitionwise_join boolean
on | off
デフォルトは off です。
×
enable_hashagg boolean
on | off
デフォルトは on です。
いいえ
enable_hashjoin boolean
on | off
デフォルトは on です。
いいえ
enable_indexonlyscan boolean
on | off
デフォルトは on です。
いいえ
enable_indexscan boolean
on | off
デフォルトは on です。
いいえ
enable_material boolean
on | off
デフォルトは on です。
いいえ
enable_mergejoin boolean
on | off
デフォルトは on です。
いいえ
enable_nestloop boolean
on | off
デフォルトは on です。
いいえ
enable_seqscan boolean
on | off
デフォルトは on です。
いいえ
enable_sort boolean
on | off
デフォルトは on です。
いいえ
enable_tidscan boolean
on | off
デフォルトは on です。
いいえ
force_parallel_mode enumeration
off | on | regress
デフォルトは off です。
×
from_collapse_limit integer
12147483647
デフォルトは 8 です。
いいえ
geqo boolean
on | off
デフォルトは on です。
いいえ
geqo_effort integer
110
デフォルトは 5 です。
いいえ
geqo_generations integer
02147483647
デフォルトは 0 です。
いいえ
geqo_pool_size integer
02147483647
デフォルトは 0 です。
いいえ
geqo_seed float
0.01.0
デフォルトは 0 です。
いいえ
geqo_selection_bias float
1.52.0
デフォルトは 2 です。
いいえ
geqo_threshold integer
22147483647
デフォルトは 12 です。
いいえ
gin_fuzzy_search_limit integer
02147483647
デフォルトは 0 です。
いいえ
gin_pending_list_limit integer
642147483647KB
デフォルトは 4096KB です。
いいえ
hash_mem_multiplier float
11000
デフォルトは 2 です。
いいえ
hot_standby_feedback boolean
on | off
デフォルトは off です。
いいえ
huge_pages enumeration
try | off
デフォルトは try です。
はい
idle_in_transaction_session_timeout integer
02147483647 ms
デフォルトは 0 です。
いいえ
ivfflat.probes integer
1 ... varies
デフォルトは 1 です。
PostgreSQL 11 以降でサポートされます。
いいえ
join_collapse_limit integer
12147483647
デフォルトは 8 です。
いいえ
lock_timeout integer
02147483647 ms
デフォルトは 0 です。
いいえ
log_autovacuum_min_duration integer
02147483647 ms。無効にする場合は -1
デフォルトは 0 です。
いいえ
log_checkpoints boolean
on | off
デフォルトは off です。
いいえ
log_connections boolean
on | off
デフォルトは off です。
いいえ
log_disconnections boolean
on | off
デフォルトは off です。
いいえ
log_duration boolean
on | off
デフォルトは off です。
いいえ
log_error_verbosity enumeration
terse | default | verbose
デフォルトは default です。
いいえ
log_executor_stats boolean
on | off
デフォルトは off です。
いいえ
log_hostname boolean
on | off
デフォルトは off です。
いいえ
log_line_prefix String
ログファイルの各行の先頭で生成される printf スタイルの文字列。
デフォルトは %m [%p]: [%l-1] db=%d,user=%u であり、タイムスタンプ、プロセス ID、データベース、ユーザー名をログに記録します。
いいえ
log_lock_waits boolean
on | off
デフォルトは off です。
いいえ
log_min_duration_statement integer
-12147483647 ms
デフォルトは -1 です。
いいえ
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
デフォルトは error です。
いいえ
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
デフォルトは warning です。
いいえ
log_parser_stats boolean
on | off
デフォルトは off です。
いいえ
log_planner_stats boolean
on | off
デフォルトは off です。
×
log_recovery_conflict_waits boolean
on | off
デフォルトは off です。
いいえ
log_replication_commands boolean
on | off
デフォルトは off です。
いいえ
log_statement enumeration
none | ddl | mod | all
すべてのデータ定義言語(DDL)ステートメントとデータ変更ステートメント(INSERTUPDATEDELETETRUNCATE など)をログに記録する場合は mod に設定
デフォルトは none です。
いいえ
log_statement_stats boolean
on | off
log_parser_statslog_planner_stats、または log_executor_stats と一緒に有効にすることはできません。
デフォルトは off です。
いいえ
log_temp_files integer
02147483647 KB。無効にする場合は -1
デフォルトは 0 です。
いいえ
log_timezone string
Cloud SQL for PostgreSQL のユーザーは、サーバーログに書き込まれるタイムスタンプに使用するタイムゾーンをこのフラグで設定できます。

タイムゾーンは名前で指定します。たとえば、Europe/London はロンドンのタイムゾーン名です。

夏時間を反映するには、プライマリ インスタンスとすべてのリードレプリカでこのフラグを手動で更新する必要があります。

タイムゾーン名では、大文字と小文字が区別されません。大文字でも小文字でもかまいません。

このフラグの有効な形式として UTC+X がサポートされています(X+/-HH:MM)。

はい
logical_decoding_work_mem integer
64 ... 2147483647
デフォルトは 65536 です。
いいえ
maintenance_io_concurrency integer
0 ... 1000
デフォルトは 10 です。
いいえ
maintenance_work_mem integer
10242147483647 KB
デフォルトは 64 MB です。
いいえ
max_connections integer
14 ... varies (see note)
デフォルト値は、一連のプライマリの中で最大のインスタンス(このインスタンス、また、リードレプリカの場合は、そのプライマリ、そのプライマリのプライマリなど、レプリケーション ツリーのルートに至るまで)のメモリ量によって異なります
最大インスタンスのメモリ(GB)デフォルト値
極小(~0.5)25
小(~1.7)50
3.75~6 未満100
6~7.5 未満200
7.5~15 未満400
15~30 未満500
30~60 未満600
60~120 未満800
120 以上1,000

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

はい
max_locks_per_transaction integer
102,147,483,647
デフォルトは 64 です。

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

はい
max_logical_replication_workers integer
48192
デフォルトは 4 です。
PostgreSQL 10 以降でサポートされます。
はい
max_parallel_maintenance_workers integer
0varies
デフォルトは 2 です。
PostgreSQL 11 以降でサポートされます。

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

プライマリの値が default の場合、レプリカの値は変更できません。レプリカの値を変更するには、まずプライマリの値を整数に設定します。

いいえ
max_parallel_workers integer
0varies
デフォルトは 8 です。
PostgreSQL 10 以降でサポートされます。

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

プライマリの値が default の場合、レプリカの値は変更できません。レプリカの値を変更するには、まずプライマリの値を整数に設定します。

いいえ
max_parallel_workers_per_gather integer
0varies
デフォルトは 2 です。

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

プライマリの値が default の場合、レプリカの値は変更できません。レプリカの値を変更するには、まずプライマリの値を整数に設定します。

いいえ
max_pred_locks_per_page integer
02147483647
デフォルトは 2 です。
PostgreSQL 10 以降でサポートされます。
はい
max_pred_locks_per_relation integer
-21474836482147483647
デフォルトは -2 です。
PostgreSQL 10 以降でサポートされます。
はい
max_pred_locks_per_transaction integer
641048576
はい
max_prepared_transactions integer
0varies
メモリサイズ(MB)最大値
0~3,84030,000
3,840~7,68085,000
7,680~15,360200,000
15,360 以上262,000

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

はい
max_replication_slots integer
10varies
デフォルトは 10 です。
はい
max_standby_archive_delay integer
02147483647 ミリ秒。待機を継続する場合は -1
いいえ
max_standby_streaming_delay integer
02147483647 ミリ秒。待機を継続する場合は -1
いいえ
max_sync_workers_per_subscription integer
264
max_logical_replication_workers 以下にする必要があります。
いいえ
max_wal_senders integer
10varies
デフォルトは 10 です。

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

はい
max_wal_size integer
2 ... 2147483647

バージョン 9.6 の場合は 16 MB(WAL ファイルサイズ)、PostgreSQL 10 以降の場合は 1 MB です。

インスタンスのメモリが 3.75 GB 以上の場合、デフォルト値は 1504 MB です。インスタンスのメモリが 3.75 GB 未満の場合、デフォルト値は 1 GB です。

SLA に影響する可能性がある使用状況情報については、Cloud SQL for PostgreSQL インスタンスの運用ガイドラインをご覧ください。
いいえ
max_worker_processes integer
8varies

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

min_parallel_index_scan_size integer
0 ... 715827882
単位は 8 KB です。
×
min_parallel_table_scan_size integer
0 ... 715827882
単位は 8 KB です。
×
min_parallel_relation_size integer
0715827882
単位は 8 KB です。
PostgreSQL 9.6 でのみサポートされます。
いいえ
min_wal_size integer
32 ... 2147483647

バージョン 9.6 の場合は 16 MB(WAL ファイルサイズ)、PostgreSQL 10 以降の場合は 1 MB です。

いいえ
old_snapshot_threshold integer
086400 min。無効にする場合は -1
デフォルトは -1 です。
parallel_setup_cost float
0.0inf
デフォルトは 1000 です。
いいえ
parallel_tuple_cost float
0.0inf
デフォルトは 0.1 です。
いいえ
password_encryption enumeration
md5 | scram-sha-256

デフォルトは、PostgreSQL のバージョンによって異なります。PostgreSQL バージョン 10~13 のデフォルトは md5 です。PostgreSQL 14 以降のデフォルトは scram-sha-256 です。

いいえ
pg_bigm.enable_recheck boolean
on | off
いいえ
pg_bigm.gin_key_limit integer
02147483647
いいえ
pg_bigm.similarity_limit float
0.01.0
いいえ
pg_hint_plan.enable_hint boolean
on | off
デフォルトはオンです。
なし
pg_hint_plan.debug_print String
off|on|detailed|verbose|0|1||2|3|no|yes|false|true
デフォルトは off です。
なし
pg_hint_plan.parse_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
デフォルトは info です。
なし
pg_hint_plan.message_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
デフォルトは log です。
なし
pg_hint_plan.enable_hint_table boolean
on | off
デフォルトはオフです。
なし
pglogical.batch_inserts boolean
on | off
デフォルトは off です。
はい
pglogical.conflict_log_level String
デフォルトは LOG です。
このフラグには、log_min_messages と同じ値を指定できます。
いいえ
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins デフォルトは apply_remote です。
いいえ
pglogical.extra_connection_options String
PostgreSQL のキーワード / 値接続文字列を使用できます。
デフォルトは空の文字列です。
いいえ
pglogical.synchronous_commit boolean
on | off
デフォルトは on です。
はい
pglogical.use_spi boolean
on | off
デフォルトは off です。
はい
pg_stat_statements.max integer
1002147483647
デフォルトは 5000 です。
はい
pg_stat_statements.save boolean
on | off
デフォルトは on です。
いいえ
pg_stat_statements.track enumeration
none | top | all
デフォルトは top です。
いいえ
pg_stat_statements.track_utility boolean
on | off
デフォルトは on です。
いいえ
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

カンマ区切りのリストを使用して複数のクラスを指定できます。クラスの前に - 記号を付けると、クラスを削除できます。デフォルトは none です。

いいえ
pgaudit.log_catalog boolean
on | off
デフォルトは on です。
いいえ
pgaudit.log_client boolean
on | off
デフォルトは off です。
いいえ
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log
デフォルトは log です。また、pgaudit.log_level は、pgaudit.log_client が on の場合にのみ有効になります。
いいえ
pgaudit.log_parameter boolean
on | off
デフォルトは off です。
いいえ
pgaudit.log_relation boolean
on | off
デフォルトは off です。
いいえ
pgaudit.log_statement_once boolean
on | off
デフォルトは off です。
いいえ
pgaudit.role string
デフォルト値はありません。
いいえ
pgtt.enabled boolean
on | off
デフォルトは on です。
いいえ
pg_wait_sampling.history_period integer
1 ... 2147483647
いいえ
pg_wait_sampling.history_size integer
1 ... 2147483647
いいえ
pg_wait_sampling.profile_period integer
1 ... 2147483647
いいえ
pg_wait_sampling.profile_pid boolean
on | off
いいえ
pg_wait_sampling.profile_queries boolean
on | off
いいえ
random_page_cost float
0.0inf
デフォルトは 4 です。
×
plan_cache_mode

String
auto|force_generic_plan|force_custom_plan
デフォルトは auto です。
×
rdkit.agent_FP_bit_ratio float
03
いいえ
rdkit.avalon_fp_size integer
64 ... 9192
いいえ
rdkit.dice_threshold float
0 ... 1
いいえ
rdkit.difference_FP_weight_agents integer
-1010
いいえ
rdkit.difference_FP_weight_nonagents integer
120
いいえ
rdkit.do_chiral_sss boolean
on | off
いいえ
rdkit.do_enhanced_stereo_sss boolean
on | off
いいえ
rdkit.featmorgan_fp_size integer
64 ... 9192
いいえ
rdkit.hashed_atompair_fp_size integer
64 ... 9192
いいえ
rdkit.hashed_torsion_fp_size integer
64 ... 9192
いいえ
rdkit.ignore_reaction_agents boolean
on | off
いいえ
rdkit.init_reaction boolean
on | off
いいえ
rdkit.layered_fp_size integer
64 ... 9192
いいえ
rdkit.morgan_fp_size integer
64 ... 9192
いいえ
rdkit.move_unmmapped_reactants_to_agents boolean
on | off
いいえ
rdkit.rdkit_fp_size integer
64 ... 9192
いいえ
rdkit.reaction_difference_fp_size integer
64 ... 9192
いいえ
rdkit.reaction_difference_fp_type integer
13
いいえ
rdkit.reaction_sss_fp_size integer
64 ... 9192
いいえ
rdkit.reaction_sss_fp_type integer
15
いいえ
rdkit.sss_fp_size integer
644096
いいえ
rdkit.tanimoto_threshold float
0 ... 1
いいえ
rdkit.threshold_unmapped_reactant_atoms float
0 ... 1
いいえ
replacement_sort_tuples integer
02147483647
いいえ
session_replication_role enumeration
origin | replica | local
現在のセッションでのみ設定できます
-
seq_page_cost float
0.0 ... inf
デフォルトは 1.0 です。
×
shared_buffers integer
サイズの範囲は、インスタンスのメモリの 10~60% です。
単位は 8 KB です。
デフォルトは、インスタンスの VM の合計メモリの 3 分の 1(MB)です。たとえば、インスタンスのメモリが 45 GB の場合、デフォルト値は 15085 MB です。
はい
squeeze.max_xlock_time integer
1 ... 2147483647
いいえ
squeeze.worker_autostart string
squeeze.worker_role string
ssl_max_protocol_version enumeration
Postgres 14: 使用する SSL / TLS プロトコルの最大バージョンを設定します。有効な値は ssl_min_protocol_version です。空の文字列を追加すると、任意のプロトコル バージョンを指定できます。
PostgreSQL 12 以降でサポートされます。
いいえ
ssl_min_protocol_version enumeration
Postgres 14: 使用する SSL / TLS プロトコルの最小バージョンを設定します。現在有効な値は、TLSv1TLSv1.1TLSv1.2TLSv1.3 です。
デフォルトは TLSv1 です。
PostgreSQL 12 以降でサポートされます。
いいえ
standard_conforming_strings boolean
on | off
デフォルトは on です。
いいえ
synchronize_seqscans boolean
on | off
デフォルトは on です。
いいえ
tcp_keepalives_count integer
02147483647
デフォルトは 5 です。
いいえ
tcp_keepalives_idle integer
02147483647
デフォルトは 60 です。
いいえ
tcp_keepalives_interval integer
02147483647
デフォルトは 60 です。
いいえ
temp_buffers integer
1001,073,741,823
単位は 8 KB
いいえ
temp_file_limit integer
10485762147483647 KB
デフォルトは、初期ディスクサイズの 10% です。たとえば、100 GB のディスクの場合、デフォルト値は 10262623 KB です。
いいえ
TimeZone string
Cloud SQL for PostgreSQL のユーザーは、タイムスタンプを表示および分析するためのタイムゾーンを設定できます。

タイムゾーンは名前で指定します。たとえば、Europe/London はロンドンのタイムゾーン名です。

夏時間を反映するには、プライマリ インスタンスとすべてのリードレプリカでこのフラグを手動で更新する必要があります。

タイムゾーン名では、大文字と小文字が区別されません。大文字でも小文字でもかまいません。

このフラグの有効な形式として UTC+X がサポートされています(X+/-HH)。

はい
trace_notify boolean
on | off
デフォルトは off です。
いいえ
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
デフォルトは log です。
×
trace_sort boolean
on | off
デフォルトは off です。
いいえ
track_activities boolean
on | off
デフォルトは on です。
いいえ
track_activity_query_size integer
100102400
デフォルトは 1 KB です。
はい
track_commit_timestamp boolean
on | off
デフォルトは off です。
はい
track_counts boolean
on | off
デフォルトは on です。
いいえ
track_functions enumeration
none | pl | all
デフォルトは none です。
いいえ
track_io_timing boolean
on | off
デフォルトは off です。
いいえ
vacuum_cost_delay integer
0100 ms
デフォルトは 0 です。
いいえ
vacuum_cost_limit integer
110000
デフォルトは 200 です。
×
vacuum_cost_page_dirty integer
0 ... 10000
デフォルトは 20 です。
×
vacuum_cost_page_hit integer
0 ... 10000
デフォルトは 1 です。
×
vacuum_cost_page_miss integer
0 ... 10000
デフォルトは 10 です。
×
vacuum_failsafe_age integer
0 ... 2100000000
デフォルトは 1600000000 です。
いいえ
vacuum_freeze_min_age integer
01000000000
デフォルトは 50000000 です。
いいえ
vacuum_freeze_table_age integer
02000000000
デフォルトは 150000000 です。
いいえ
vacuum_multixact_failsafe_age integer
0 ... 2100000000
デフォルトは 1600000000 です。
いいえ
vacuum_multixact_freeze_min_age integer
01000000000
デフォルトは 5000000 です。
いいえ
vacuum_multixact_freeze_table_age integer
02000000000
デフォルトは 150000000 です。
いいえ
wal_buffers integer
サイズの範囲は、インスタンスのメモリの 1~5% です。
単位は 8 KB です。
デフォルトは 16 MB です。
はい
wal_compression enumeration
off | on | pglz | lz4 | zstd
デフォルトは off です。
いいえ
wal_receiver_timeout integer
02147483647
デフォルトは 60 秒です。

このフラグは、WAL 送信者と WAL 受信者に影響します。適切に設定されていない場合、このフラグは論理レプリケーションと物理レプリケーションに影響します。このフラグは、レプリケーションのパフォーマンスとレイテンシにも影響します。値を 0 にすると、タイムアウト メカニズムが無効になります。単位はミリ秒です。

いいえ
wal_sender_timeout integer
02147483647
デフォルトは 60 秒です。

このフラグは、WAL 送信者と WAL 受信者に影響します。適切に設定されていない場合、このフラグは論理レプリケーションと物理レプリケーションに影響します。このフラグは、レプリケーションのパフォーマンスとレイテンシにも影響します。値を 0 にすると、タイムアウト メカニズムが無効になります。単位はミリ秒です。

×
wal_writer_delay integer
110000
デフォルトは 200 です。
×
wal_writer_flush_after integer
0 ... 2147483647
デフォルトは 128 です。
×
work_mem integer
642147483647 KB
デフォルト値は 4 MB です。
いいえ

特別なフラグ

bgwriter

PostgreSQL にはバックグラウンド ライター(bgwriter)フラグがあります。このフラグは、新規または変更された共有バッファの書き込みを発行します。この共有バッファをダーティ バッファといいます。クリーンな共有バッファの数が十分でない場合、バックグラウンド書き込みはダーティ バッファをファイル システムに書き込み、クリーンとしてマークします。

bgwriter フラグに関連するフラグは bgwriter_delaybgwriter_lru_maxpages の 2 つです。bgwriter_delay は、バックグラウンド ライターのアクティビティ ラウンド間の遅延をミリ秒(ms)で指定し、bgwriter_lru_maxpages はバックグラウンド ライターによって書き込まれるバッファの数を指定します。

bgwriter フラグのデフォルト値は 200 ms です。ただし、500 GB を超えるソリッド ステート ドライブ(SSD)を選択した場合、bgwriter_delay フラグの値は 50 に設定され、bgwriter_lru_maxpages フラグが 200 に設定されます。

background writer の詳細については、PostgreSQL のドキュメントをご覧ください。

session_replication_role

PostgreSQL の session_replication_role フラグは論理レプリケーションに使用するように設計されており、個々のセッションの制約トリガーを無効にできます。

このフラグは、制約チェック(ほとんどの場合は外部キー)を回避する一部のメンテナンス オペレーションにも使用できる場合があります。

このフラグは、REPLICATION プロパティが設定されているすべてのユーザーがセッションで設定できます。ユーザーの REPLICATION プロパティは、 cloudsql.enable_pglogical または cloudsql.logical_decoding のいずれかのフラグがインスタンスに設定された場合、cloudsqlsuperuser によって設定できます。

このフラグをインスタンス全体に設定することはできません。

トラブルシューティング

問題 トラブルシューティング
セッションのタイムゾーンは設定したが、ログアウトすると期限切れになる。

データベースに接続し、データベースのタイムゾーンをユーザーごとまたはデータベースごとに希望するタイムゾーンに設定します。

Cloud SQL for PostgreSQL では、次の項目を指定できます。これらの設定は、セッションを終了しても残り、.conf 構成を再現します。

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

これらの設定は、データベースへの新しい接続にのみ適用されます。タイムゾーンの変更を確認するには、インスタンスから接続解除して再接続します。

次のステップ