配置数据库标志

本页面介绍如何为 Cloud SQL 配置数据库标志,并列出了可以为实例设置的标志。您可以将数据库标志用于许多操作,包括调整 PostgreSQL 参数、调整选项以及配置和优化实例。

在某些情况下,设置一个标志时,可能需要设置另一个标志才能完全启用所需功能。

当您设置、移除或修改数据库实例的标志时,该数据库可能会重启。除非您主动移除,否则实例的此标志值会一直保留。如果实例是副本的来源,并且实例已经重启,那么系统还会重启副本以与实例的当前配置保持一致。

配置数据库标志

设置数据库标志

控制台

  1. Google Cloud 控制台中,选择包含要为其设置数据库标志的 Cloud SQL 实例的项目。
  2. 打开实例,然后点击修改
  3. 向下滚动至标志部分。
  4. 要在实例上设置先前未设置的标志,请点击添加一项,从下拉菜单中选择该标志,然后设置其值。
  5. 点击保存以保存更改。
  6. 在“概览”页的标志下确认更改。

gcloud

修改实例:

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

此命令将覆盖之前设置的所有数据库标志。如需保留这些标志并添加新标志,请为您要在实例上设置的所有标志添加值;任何未明确添加的标志都会设置为默认值。对于不带值的标志,请指定标志名称并后接一个等号(“=”)。

例如,如需设置 log_connectionslog_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 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    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。您只需为每个目录执行一次此操作。
    terraform init

    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:

    terraform init -upgrade

应用更改

  1. 查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
    terraform plan

    根据需要更正配置。

  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply

    等待 Terraform 显示“应用完成!”消息。

  3. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 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 方法和网址:

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 方法和网址:

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 方法和网址:

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 方法和网址:

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

在输出中,数据库标志作为 databaseFlags 集合列在 settings 下。要详细了解输出中标志的表示法,请参阅实例资源表示法

REST v1

列出实例的已配置标志:

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

在输出中,查找 databaseFlags 字段。

REST v1beta4

列出实例的已配置标志:

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

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
默认值为关闭
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
0 ... 100
默认值为 0.1
autovacuum_analyze_threshold integer
0 ... 2147483647
默认值为 50
autovacuum_freeze_max_age integer
100000 ... 2000000000
默认值为 200000000
如需了解可能影响 SLA 的使用信息,请参阅 Cloud SQL for PostgreSQL 实例的操作指南
autovacuum_max_workers integer
1 ... varies (see note)
默认值为 3
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
默认值为 400000000
如需了解可能影响 SLA 的使用信息,请参阅 Cloud SQL for PostgreSQL 实例的操作指南
autovacuum_naptime integer
1 ... 2147483s
默认值为 60 秒。
autovacuum_vacuum_cost_delay integer
0 ... 100 毫秒,或者为 -1(使用 vacuum_cost_delay 值)
对于 PostgreSQL 9.6、10 和 11,默认值为 2 毫秒。
autovacuum_vacuum_cost_limit integer
0 ... 10000,或者为 -1(使用 vacuum_cost_limit 值)
默认值为 -1
autovacuum_vacuum_insert_scale_factor float
0 ... 100
默认值为 0.2
autovacuum_vacuum_insert_threshold integer
-1 ... 2147483647
默认值为 1000
autovacuum_vacuum_scale_factor float
0 ... 100
默认值为 0.2
autovacuum_vacuum_threshold integer
0 ... 2147483647
默认值为 50
autovacuum_work_mem integer
0 ... 2147483647 KB,或者为 -1(使用 maintenance_work_mem 值)
默认值为 -1
checkpoint_completion_target float
0.0 ... 1.0
默认值为 0.9
checkpoint_timeout integer
30 ... 86,400s
默认值为 300 秒。
如需了解可能影响 SLA 的使用信息,请参阅 Cloud SQL for PostgreSQL 实例的操作指南
checkpoint_warning integer
0 ... 2147483647s
默认值为 30 秒。
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
0 ... 100000
默认值为 0
commit_siblings integer
0 ... 1000
默认值为 5
constraint_exclusion enumeration
partition | on | off
默认值为 partition
cpu_index_tuple_cost float
0.0 ... inf
默认值为 0.005
cpu_operator_cost float
0.0 ... inf
默认值为 0.0025
cpu_tuple_cost float
0.0 ... inf
默认值为 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.0 ... 1.0
默认值为 0.1
deadlock_timeout integer
1 ... 2147483647 毫秒
默认值为 1000 毫秒。
default_statistics_target integer
1 ... 10000
默认值为 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。
默认值为 40% 的虚拟机内存。例如,对于 45 GB 的实例内存,默认值为 18537160 KB。
effective_io_concurrency integer
0 ... 1000
默认值为 1
enable_bitmapscan boolean
on | off
默认值为 on
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
1 ... 2147483647
默认值为 8
geqo boolean
on | off
默认值为 on
geqo_effort integer
1 ... 10
默认值为 5
geqo_generations integer
0 ... 2147483647
默认值为 0
geqo_pool_size integer
0 ... 2147483647
默认值为 0
geqo_seed float
0.0 ... 1.0
默认值为 0
geqo_selection_bias float
1.5 ... 2.0
默认值为 2
geqo_threshold integer
2 ... 2147483647
默认值为 12
gin_fuzzy_search_limit integer
0 ... 2147483647
默认值为 0
gin_pending_list_limit integer
64 ... 2147483647KB
默认值为 4096KB。
hash_mem_multiplier float
1 ... 1000
默认值为 2
hot_standby_feedback boolean
on | off
默认值为 off
huge_pages enumeration
try | off
默认值为 try
idle_in_transaction_session_timeout integer
0 ... 2147483647 毫秒
默认值为 0
ivfflat.probes integer
1varies
默认值为 1
在 PostgreSQL 11 及更高版本中受支持。
join_collapse_limit integer
1 ... 2147483647
默认值为 8
lock_timeout integer
0 ... 2147483647 毫秒
默认值为 0
log_autovacuum_min_duration integer
0 ... 2147483647 毫秒,或者为 -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
-1 ... 2147483647 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_replication_commands boolean
on | off
默认值为 off
log_statement enumeration
none | ddl | mod | all
设置为 mod 可记录所有数据定义语言 (DDL) 语句,以及数据修改语句,例如 INSERTUPDATEDELETETRUNCATE
默认值为 none
log_statement_stats boolean
on | off
不能与 log_parser_statslog_planner_statslog_executor_stats 一同启用。
默认值为 off
log_temp_files integer
0 ... 2147483647 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
1024 ... 2147483647 KB
默认值为 64 MB。
max_connections integer
14 ... varies (see note)
默认值取决于主实例链中最大实例的内存量(此实例;如果是读取副本,则为其主实例、其主实例的主实例等,一直到复制树的根)。
最大实例的内存 (GB)默认值
超小 (~0.5)25
小 (~1.7)50
从 3.75 到 < 6100
从 6 到 < 7.5200
从 7.5 到 < 15400
从 15 到 < 30500
从 30 到 < 60600
从 60 到 < 120800
>=1201000

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会应用到以下副本上:其值小于主实例上的新值的副本,或者尚未更改默认值的副本。 对主实例的此类更改会导致副本重启。

max_locks_per_transaction integer
10 ... 2,147,483,647
默认值为 64

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会应用到以下副本上:其值小于主实例上的新值的副本,或者尚未更改默认值的副本。 对主实例的此类更改会导致副本重启。

max_logical_replication_workers integer
4 ... 8192
默认值为 4
在 PostgreSQL 10 及更高版本中受支持。
max_parallel_maintenance_workers integer
0 ... varies
默认值为 2
在 PostgreSQL 11 及更高版本中受支持。

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会传播到以下副本:其值小于主实例的新值的副本,或者尚未更改默认值的副本。

如果主实例的值为 default,则副本的值无法更改。如需更改副本的值,请先将主实例的值设置为整数。

max_parallel_workers integer
0 ... varies
默认值为 8
在 PostgreSQL 10 及更高版本中受支持。

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会传播到以下副本:其值小于主实例的新值的副本,或者尚未更改默认值的副本。

如果主实例的值为 default,则副本的值无法更改。如需更改副本的值,请先将主实例的值设置为整数。

max_parallel_workers_per_gather integer
0 ... varies
默认值为 2

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会传播到以下副本:其值小于主实例的新值的副本,或者尚未更改默认值的副本。

如果主实例的值为 default,则副本的值无法更改。如需更改副本的值,请先将主实例的值设置为整数。

max_pred_locks_per_page integer
0 ... 2147483647
默认值为 2
在 PostgreSQL 10 及更高版本中受支持。
max_pred_locks_per_relation integer
-2147483648 ... 2147483647
默认值为 -2
在 PostgreSQL 10 及更高版本中受支持。
max_pred_locks_per_transaction integer
64 ... 1048576
max_prepared_transactions integer
0 ... varies
内存大小 (MB)最大值
0 - 384030000
3840 - 768085000
7680 - 15360200,000
15360 及以上262000

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会应用到以下副本上:其值小于主实例上的新值的副本,或者尚未更改默认值的副本。 对主实例的此类更改会导致副本重启。

max_replication_slots integer
10 ... varies
默认值为 10
max_standby_archive_delay integer
0 ... 2147483647 ms,或者为 -1(永远等待)
max_standby_streaming_delay integer
0 ... 2147483647 ms,或者为 -1(永远等待)
max_sync_workers_per_subscription integer
2 ... 64
不得大于 max_logical_replication_workers
max_wal_senders integer
10 ... varies
默认值为 10

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会应用到以下副本上:其值小于主实例上的新值的副本,或者尚未更改默认值的副本。 对主实例的此类更改会导致副本重启。

max_wal_size integer
22147483647

对于版本 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
8 ... varies

副本上的值必须大于或等于主实例上的值。在主实例上所做的更改会应用到以下副本上:其值小于主实例上的新值的副本,或者尚未更改默认值的副本。 对主实例的此类更改会导致副本重启。

min_parallel_relation_size integer
0 ... 715827882
单位是 8 KB
仅在 PostgreSQL 9.6 中支持。
min_wal_size integer
322147483647

对于版本 9.6,单位是 16 MB(WAL 文件大小);对于 PostgreSQL 10 及更高版本,单位是 1 MB。

old_snapshot_threshold integer
0 ... 86400 分钟,或者为 -1(停用)
默认值为 -1
parallel_setup_cost float
0.0 ... inf
默认值为 1000
parallel_tuple_cost float
0.0 ... inf
默认值为 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
100 ... 2147483647
默认值为 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 处于启用状态时才会启用。
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
12147483647
pg_wait_sampling.history_size integer
12147483647
pg_wait_sampling.profile_period integer
12147483647
pg_wait_sampling.profile_pid boolean
on | off
pg_wait_sampling.profile_queries boolean
on | off
random_page_cost float
0.0 ... inf
默认值为 4
rdkit.agent_FP_bit_ratio float
03
rdkit.avalon_fp_size integer
649192
rdkit.dice_threshold float
01
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
649192
rdkit.hashed_atompair_fp_size integer
649192
rdkit.hashed_torsion_fp_size integer
649192
rdkit.ignore_reaction_agents boolean
on | off
rdkit.init_reaction boolean
on | off
rdkit.layered_fp_size integer
649192
rdkit.morgan_fp_size integer
649192
rdkit.move_unmmapped_reactants_to_agents boolean
on | off
rdkit.rdkit_fp_size integer
649192
rdkit.reaction_difference_fp_size integer
649192
rdkit.reaction_difference_fp_type integer
13
rdkit.reaction_sss_fp_size integer
649192
rdkit.reaction_sss_fp_type integer
15
rdkit.sss_fp_size integer
644096
rdkit.tanimoto_threshold float
01
rdkit.threshold_unmapped_reactant_atoms float
01
replacement_sort_tuples integer
0...2147483647
session_replication_role enumeration
origin | replica | local
只能在当前会话中设置
-
shared_buffers integer
大小范围介于实例内存的 10% 到 60% 之间。
单位是 8 KB。
默认值为实例总虚拟机内存的三分之一(以 MB 为单位)。例如,对于 45 GB 的实例内存,默认值为 15085MB。
squeeze.max_xlock_time integer
12147483647
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
0 ... 2147483647
默认值为 5
tcp_keepalives_idle integer
0 ... 2147483647
默认值为 60
tcp_keepalives_interval integer
0 ... 2147483647
默认值为 60
temp_buffers integer
100 ... 1,073,741,823
单位是 8 KB
temp_file_limit integer
1048576 ... 2147483647 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
100 ... 102400
默认值为 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
0 ... 100 毫秒
默认值为 0
vacuum_cost_limit integer
1 ... 10000
默认值为 200
vacuum_failsafe_age integer
0 ... 2100000000
默认值为 1600000000
vacuum_freeze_min_age integer
0 ... 1000000000
默认值为 50000000
vacuum_freeze_table_age integer
0 ... 2000000000
默认值为 150000000
vacuum_multixact_failsafe_age integer
0 ... 2100000000
默认值为 1600000000
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
默认值为 5000000
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
默认值为 150000000
wal_buffers integer
大小范围介于实例内存的 1 到 5% 之间。
单位是 8 KB。
默认值为 16 MB。
wal_compression enumeration
off | on | pglz | lz4 | zstd
默认值为 off
wal_receiver_timeout integer
0 ... 2147483647
默认时间为 60 秒。

此标志会影响 WAL 发送者和接收者。 如果设置不当,此标志会影响逻辑和物理复制。此标志会会影响复制性能和延迟时间。值为 0 表示停用超时机制。 单位是毫秒。

wal_sender_timeout integer
0 ... 2147483647
默认时间为 60 秒。

此标志会影响 WAL 发送者和接收者。 如果设置不当,此标志会影响逻辑和物理复制。此标志会会影响复制性能和延迟时间。值为 0 表示停用超时机制。 单位是毫秒。

work_mem integer
64 ... 2147483647 KB
默认值为 4 MB。

特殊标志

bgwriter

PostgreSQL 具有后台写入者 (bgwriter) 标志。此标志会写入新增或修改的共享缓冲区。这些共享缓冲区称为脏缓冲区。当干净共享缓冲区的数量不足时,后台写入者会将脏缓冲区写入文件系统并将其标记为干净缓冲区。

bgwriter 标志关联的两个标志是 bgwriter_delaybgwriter_lru_maxpagesbgwriter_delay 指定后台写入者的活动往返之间的延迟时间(以毫秒为单位),bgwriter_lru_maxpages 指定后台写入者将写入的缓冲区数量。

bgwriter 标志的默认值为 200 ms。但是,如果您选择大于 500 GB 的固态硬盘 (SSD),则 bgwriter_delay 标志的值设置为 50bgwriter_lru_maxpages 标志的值设置为 200

如需详细了解后台写入者,请参阅 PostgreSQL 文档。

session_replication_role

PostgreSQL 具有一个 session_replication_role 标志,该标志旨在用于逻辑复制,并允许您在单个会话中停用限制条件触发器。

有时,此标志也可用于某些维护操作来规避限制条件(通常是外键)检查。

此标志可以由设置了 REPLICATION 属性的任何用户在会话中设置。当为实例设置了标志 cloudsql.enable_pglogical cloudsql.logical_decoding 之一时,任何用户的 REPLICATION 属性均可由 cloudsqlsuperuser 设置。

不能为整个实例设置此标志。

问题排查

问题 问题排查
您可以为会话设置时区,但当您注销时,该时区将过期。

连接到数据库,并将每个用户或每个数据库的数据库时区设置为所需的时区。

在 Cloud SQL for PostgreSQL 中,您可以指定以下内容。这些设置在会话关闭后会保留下来,就像 .conf 配置一样:

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

这些设置仅适用于与数据库的新连接。如需查看时区的更改,请断开与实例的连接,然后重新连接到实例。

后续步骤