Como configurar sinalizações do banco de dados

Nesta página, descrevemos como configurar sinalizações de banco de dados para o Cloud SQL e listamos as sinalizações que podem ser definidas para sua instância. Você usa sinalizações de banco de dados em muitas operações, como no ajuste dos parâmetros do PostgreSQL, das opções e na configuração e nos ajustes de uma instância.

Em alguns casos, para configurar uma sinalização pode ser necessário configurar outra para ativar toda a funcionalidade desejada.

Ao definir, remover ou mudar uma sinalização para uma instância de banco de dados, ele pode ser reiniciado. O valor da sinalização persiste nessa instância até você removê-lo. Se a instância for a origem de uma réplica, a réplica também será reiniciada para se alinhar com a configuração atual da instância.

Como configurar sinalizações do banco de dados

Como configurar uma sinalização do banco de dados

Console

  1. No Console do Google Cloud, crie um novo projeto do Console do Cloud ou abra um atual selecionando o nome dele.
  2. Abra a instância e clique em Editar.
  3. Role a tela para baixo até a seção Sinalizações.
  4. Para definir uma sinalização que ainda não tenha sido definida, clique em Adicionar item, selecione a sinalização no menu suspenso e defina o valor.
  5. Clique em Salvar para salvar as alterações.
  6. Confirme as alterações em Sinalizações, na página "Visão geral".

gcloud

Edite a instância:

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

Esse comando substituirá todas as sinalizações do banco de dados definidas anteriormente. Para mantê-las e adicionar novas, inclua os valores de todas as sinalizações que você quiser definir na instância. Qualquer sinalização não incluída especificamente será definida com o valor padrão. Para sinalizações sem valor, especifique o nome delas seguido de um sinal de igual ("=").

REST

Para definir uma sinalização de um banco de dados atual:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Se houver sinalizações para o banco de dados, modifique o comando anterior para incluí-las. O comando PATCH substitui as sinalizações existentes pelas especificadas na solicitação.

Como redefinir as sinalizações ao valor padrão

Console

  1. No Console do Google Cloud, crie um novo projeto do Console do Cloud ou abra um atual selecionando o nome dele.
  2. Abra a instância e clique em Editar.
  3. Abra a seção Sinalizações do banco de dados.
  4. Clique no X ao lado de todas as sinalizações exibidas.
  5. Clique em Salvar para salvar as alterações.

gcloud

Redefina todas as sinalizações ao valor padrão em uma instância:

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

Confirme se a instância será reiniciada.

REST

Para apagar todas as sinalizações de uma instância existente:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Como visualizar os valores atuais das sinalizações do banco de dados

Para visualizar todos os valores atuais das configurações do PostgreSQL, faça login na instância com o cliente psql e insira a seguinte instrução:

 SELECT name, setting FROM pg_settings;

É possível alterar o valor somente para sinalizações compatíveis (conforme listado abaixo).

Como determinar quais sinalizações do banco de dados foram configuradas para uma instância

Para ver quais sinalizações foram definidas para uma instância do Cloud SQL:

Console

  1. No Console do Google Cloud, crie um novo projeto do Console do Cloud ou abra um atual selecionando o nome dele.
  2. Selecione a instância para abrir a página Visão geral da instância.

    As sinalizações do banco de dados que foram configuradas estão listadas na seção Sinalizações do banco de dados.

gcloud

Veja o estado da instância:

gcloud sql instances describe [INSTANCE_NAME]

Na saída, as sinalizações do banco de dados são listados no settings como a coleção databaseFlags. Para saber mais sobre a representação das sinalizações na saída, consulte Representação do recurso das instâncias.

REST

Para listar as configurações de uma instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Na saída, procure o campo databaseFlags.

Sinalizações aceitas

Para uma determinada sinalização, o Cloud SQL pode aceitar uma faixa diferente do parâmetro ou da opção correspondente do PostgreSQL.

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

Sinalização do Cloud SQL Digite
Valores e notas aceitáveis
Necessário
reiniciar?
Em versão Beta?
autovacuum (em inglês) boolean
on | off
Não Não
autovacuum_analyze_scale_factor (em inglês) float
0 ... 100
Não Não
autovacuum_analyze_threshold (em inglês) integer
0 ... 2147483647
Não Não
autovacuum_freeze_max_age (em inglês) integer
100000 ... 2000000000
Sim Sim
autovacuum_max_workers (em inglês) integer
1 ... varies (see note)

Sim Não
autovacuum_multixact_freeze_max_age (em inglês) integer
10000 ... 2000000000
Sim Sim
autovacuum_naptime (em inglês) integer
1 ... 2147483 s
Não Não
autovacuum_vacuum_cost_delay (em inglês) integer
0 ... 100 ms ou -1 para usar o valor vacuum_cost_delay
Não Não
autovacuum_vacuum_cost_limit (em inglês) integer
0 ... 10000 ou -1 para usar o valor vacuum_cost_limit
Não Não
autovacuum_vacuum_scale_factor (em inglês) float
0 ... 100
Não Não
autovacuum_vacuum_threshold (em inglês) integer
0 ... 2147483647
Não Não
autovacuum_work_mem (em inglês) integer
0 ... 2147483647 KB ou -1 para usar o valor maintenance_work_mem
Não Sim
checkpoint_completion_target (em inglês) float
0.0 ... 1.0
Não Não
checkpoint_timeout (em inglês) integer
30 ... 86400 s
Não Sim
checkpoint_warning (em inglês) integer
0 ... 2147483647 s
Não Não
cloudsql.enable_pgaudit boolean
on | off
Sim Sim
cloudsql.iam_authentication boolean
on | off
padrão: off
Sim Sim
commit_delay (em inglês) integer
0 ... 100000
Não Não
commit_siblings (em inglês) integer
0 ... 1000
Não Não
constraint_exclusion (em inglês) enumeration
partition | on | off
Não Não
cpu_index_tuple_cost (em inglês) float
0.0 ... inf
Não Não
cpu_operator_cost (em inglês) float
0.0 ... inf
Não Não
cpu_tuple_cost (em inglês) float
0.0 ... inf
Não Não
cursor_tuple_fraction (em inglês) float
0.0 ... 1.0
Não Não
deadlock_timeout (em inglês) integer
1 ... 2147483647 ms
Não Não
default_statistics_target (em inglês) integer
1 ... 10000
Não Não
default_tablespace (em inglês) string Não Não
default_transaction_deferrable (em inglês) boolean
on | off
Não Não
default_transaction_isolation (em inglês) enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Não Não
enable_bitmapscan (em inglês) boolean
on | off
Não Não
enable_hashagg (em inglês) boolean
on | off
Não Não
enable_hashjoin (em inglês) boolean
on | off
Não Não
enable_indexonlyscan (em inglês) boolean
on | off
Não Não
enable_indexscan (em inglês) boolean
on | off
Não Não
enable_material (em inglês) boolean
on | off
Não Não
enable_mergejoin (em inglês) boolean
on | off
Não Não
enable_nestloop (em inglês) boolean
on | off
Não Não
enable_seqscan (em inglês) boolean
on | off
Não Não
enable_sort (em inglês) boolean
on | off
Não Não
enable_tidscan (em inglês) boolean
on | off
Não Não
force_parallel_mode (em inglês) enumeration
off | on | regress
Não Não
from_collapse_limit (em inglês) integer
1 ... 2147483647
Não Não
geqo (em inglês) boolean
on | off
Não Não
geqo_effort (em inglês) integer
1 ... 10
Não Não
geqo_generations (em inglês) integer
0 ... 2147483647
Não Não
geqo_pool_size (em inglês) integer
0 ... 2147483647
Não Não
geqo_seed (em inglês) float
0.0 ... 1.0
Não Não
geqo_selection_bias (em inglês) float
1.5 ... 2.0
Não Não
geqo_threshold (em inglês) integer
2 ... 2147483647
Não Não
gin_fuzzy_search_limit (em inglês) integer
0 ... 2147483647
Não Não
gin_pending_list_limit (em inglês) integer
64 ... 2147483647 KB
Não Não
hot_standby_feedback (em inglês) boolean
on | off
Não Não
idle_in_transaction_session_timeout (em inglês) integer
0 ... 2147483647 ms
Não Não
join_collapse_limit (em inglês) integer
1 ... 2147483647
Não Não
lock_timeout (em inglês) integer
0 ... 2147483647 ms
Não Não
log_autovacuum_min_duration (em inglês) integer
0 ... 2147483647 ms, ou -1 para desativar
Não Não
log_checkpoints (em inglês) boolean
on | off
Não Não
log_connections (em inglês) boolean
on | off
Não Não
log_disconnections (em inglês) boolean
on | off
Não Não
log_duration (em inglês) boolean
on | off
Não Não
log_error_verbosity (em inglês) enumeration
terse | default | verbose
Não Não
log_executor_stats (em inglês) boolean
on | off
Não Não
log_hostname (em inglês) boolean
on | off
Não Não
log_lock_waits (em inglês) boolean
on | off
Não Não
log_min_duration_statement (em inglês) integer
-1 ... 2147483647 ms
Não Não
log_min_error_statement (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Não Não
log_min_messages (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Não Não
log_parser_stats (em inglês) boolean
on | off
Não Não
log_planner_stats (em inglês) boolean
on | off
Não Não
log_replication_commands (em inglês) boolean
on | off
Não Não
log_statement enumeration
none | ddl a mod | all
Defina como mod para registrar todas as instruções de linguagem de definição de dados (DDL), além de instruções de modificação de dados, como INSERT, UPDATE, DELETE, TRUNCATE
Não Não
log_statement_stats boolean
on | off
não pode ser ativado com log_parser_stats, log_planner_stats ou log_executor_stats.
Não Não
log_temp_files (em inglês) integer
0 ... 2147483647 KB, ou -1 para desativar
Não Não
maintenance_work_mem (em inglês) integer
1024 ... 2147483647 KB
Não Sim
max_connections (em inglês) integer
14 ... varies (see note)

O valor nas réplicas precisa ser >= o valor no principal. As alterações no principal se propagam para as réplicas que têm um valor menor que o novo valor no principal ou que não foi alterado do valor padrão.

Sim Sim
max_locks_per_transaction (em inglês) integer
10 ... 2147483647

O valor nas réplicas precisa ser >= o valor no principal. As alterações no principal se propagam para as réplicas que têm um valor menor que o novo valor no principal ou que não foi alterado do valor padrão.

Sim Sim
max_prepared_transactions (em inglês) integer
0 ... 262143

O valor nas réplicas precisa ser >= o valor no principal. As alterações no principal se propagam para as réplicas que têm um valor menor que o novo valor no principal ou que não foi alterado do valor padrão.

Sim Sim
max_standby_archive_delay (em inglês) integer
0 ... 2147483647 ms, ou -1 para aguardar para sempre
Não Não
max_standby_streaming_delay (em inglês) integer
0 ... 2147483647 ms, ou -1 para aguardar para sempre
Não Não
max_wal_size (em inglês) integer
2 ... 2147483647

A unidade é de 1 MB para Postgres 10, 11 e 12. Na versão 9.6, ela tem 16 MB (o tamanho do arquivo WAL).

Não Sim
min_parallel_relation_size (em inglês) integer
0 ... 715827882
Unidade é 8 KB
Não Não
old_snapshot_threshold (em inglês) integer
0 ... 86400 min, ou -1 para desativar
Sim Não
parallel_setup_cost (em inglês) float
0.0 ... inf
Não Não
parallel_tuple_cost (em inglês) float
0.0 ... inf
Não Não
pg_stat_statements.max (em inglês) integer
100 ... 2147483647
Sim Não
pg_stat_statements.save (em inglês) boolean
on | off
Não Não
pg_stat_statements.track (em inglês) enumeration
none | top | all
Não Não
pg_stat_statements.track_utility (em inglês) boolean
on | off
Não Não
random_page_cost (em inglês) float
0.0 ... inf
Não Não
replacement_sort_tuples (em inglês) integer
0 ... 2147483647
Não Não
ssl_max_protocol_version (em inglês) enumeration
Postgres 12: define a versão máxima do protocolo SSL/TLS a ser usada. Os valores válidos são para ssl_min_protocol_version, com a adição de uma string vazia, que permite que qualquer versão de protocolo seja especificada.
Não Não
ssl_min_protocol_version (em inglês) enumeration
Postgres 12: define a versão mínima do protocolo SSL/TLS a ser usada. No momento, os valores válidos são: TLSv1, TLSv1.1, TLSv1.2 ou TLSv1.3.

O padrão é TLSv1.

Não Não
standard_conforming_strings (em inglês) boolean
on | off
Não Não
synchronize_seqscans (em inglês) boolean
on | off
Não Não
temp_buffers (em inglês) integer
100 ... 1073741823
Unidade é 8 KB
Não Sim
temp_file_limit (em inglês) integer
1048576 ... 2147483647 KB
Não Não
trace_notify (em inglês) boolean
on | off
Não Não
trace_recovery_messages (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Não Não
trace_sort (em inglês) boolean
on | off
Não Não
track_activities (em inglês) boolean
on | off
Não Não
track_activity_query_size (em inglês) integer
100 ... 102400
Sim Não
track_commit_timestamp (em inglês) boolean
on | off
Sim Não
track_counts (em inglês) boolean
on | off
Não Não
track_functions (em inglês) enumeration
none | pl | all
Não Não
track_io_timing (em inglês) boolean
on | off
Não Não
vacuum_cost_delay (em inglês) integer
0 ... 100 ms
Não Não
vacuum_cost_limit (em inglês) integer
1 ... 10000
Não Não
vacuum_freeze_min_age (em inglês) integer
0 ... 1000000000
Não Não
vacuum_freeze_table_age (em inglês) integer
0 ... 2000000000
Não Não
vacuum_multixact_freeze_min_age (em inglês) integer
0 ... 1000000000
Não Não
vacuum_multixact_freeze_table_age (em inglês) integer
0 ... 2000000000
Não Não
work_mem (em inglês) integer
64 ... 2147483647 KB
Não Sim

Solução de problemas

Clique nos links da tabela para ver detalhes:

Para este problema... O problema pode ser... Tente o seguinte...
Não há uma sinalização para definir o fuso horário. Uma sinalização de fuso horário não é compatível. Veja algumas soluções alternativas.

Não há uma sinalização para definir o fuso horário

O Postgres não é compatível com uma sinalização de fuso horário para ajustar o fuso horário com base nas necessidades do usuário.

O problema pode ser

Uma sinalização de fuso horário não é compatível.

O que você deve tentar

É possível definir o fuso horário por sessão, mas isso expirará ao fazer logoff. Uma solução melhor é conectar-se ao banco de dados e definir o fuso horário do banco de dados como o desejado por usuário ou banco de dados:

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

Essas configurações serão mantidas mesmo depois que a sessão for encerrada, o que simulará a configuração .conf.

A seguir