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 e a instância for reiniciada, 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 manter essas sinalizações e adicionar novas, inclua os valores de todas as que você quiser configurar 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 da sinalização seguido de um sinal de igual ("=").

API REST v1beta4

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://sqladmin.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.

API REST v1beta4

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://sqladmin.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.

API REST v1beta4

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://sqladmin.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

As sinalizações não mencionadas abaixo não são compatíveis.

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?
autovacuum (em inglês) boolean
on | off
Para informações de uso que podem afetar o SLA, consulte as Diretrizes operacionais das instâncias do PostgreSQL.

Não
autovacuum_analyze_scale_factor (em inglês) float
0 ... 100
Não
autovacuum_analyze_threshold (em inglês) integer
0 ... 2147483647
Não
autovacuum_freeze_max_age (em inglês) integer
100000 ... 2000000000
Para informações de uso que podem afetar o SLA, consulte as Diretrizes operacionais para instâncias do PostgreSQL.

Sim
autovacuum_max_workers (em inglês) integer
1 ... varies (see note)

Sim
autovacuum_multixact_freeze_max_age (em inglês) integer
10000 ... 2000000000
Para informações de uso que podem afetar o SLA, consulte as Diretrizes operacionais para instâncias do PostgreSQL.

Sim
autovacuum_naptime (em inglês) integer
1 ... 2147483 s
Não
autovacuum_vacuum_cost_delay (em inglês) integer
0 ... 100 ms ou -1 para usar o valor vacuum_cost_delay
Para PostgreSQL 9.6, 10 e 11, o valor padrão é 2 ms.
Não
autovacuum_vacuum_cost_limit (em inglês) integer
0 ... 10000 ou -1 para usar o valor vacuum_cost_limit
Não
autovacuum_vacuum_scale_factor (em inglês) float
0 ... 100
Não
autovacuum_vacuum_threshold (em inglês) integer
0 ... 2147483647
Não
autovacuum_work_mem (em inglês) integer
0 ... 2147483647 KB ou -1 para usar o valor maintenance_work_mem
Não
checkpoint_completion_target (em inglês) float
0.0 ... 1.0
Não
checkpoint_timeout (em inglês) integer
30 ... 86,400
Para informações de uso que podem afetar o SLA, consulte as Diretrizes operacionais para instâncias do PostgreSQL.

Não
checkpoint_warning (em inglês) integer
0 ... 2147483647 s
Não
cloudsql.enable_pgaudit boolean
on | off
Sim
cloudsql.enable_iam_login boolean
on (|)off
padrão: off
Ativa a autenticação do usuário do banco de dados usando a autenticação do banco de dados do IAM do Cloud SQL.
Sim
cloudsql.iam_authentication boolean
on | off
padrão: off
Sim
cloudsql.enable_pglogical boolean
on | off
padrão: off
Sim
cloudsql.logical_decoding boolean
on | off
padrão: off
Sim
commit_delay (em inglês) integer
0 ... 100000
Não
commit_siblings (em inglês) integer
0 ... 1000
Não
constraint_exclusion (em inglês) enumeration
partition | on | off
Não
cpu_index_tuple_cost (em inglês) float
0.0 ... inf
Não
cpu_operator_cost (em inglês) float
0.0 ... inf
Não
cpu_tuple_cost (em inglês) float
0.0 ... inf
Não
cursor_tuple_fraction (em inglês) float
0.0 ... 1.0
Não
deadlock_timeout (em inglês) integer
1 ... 2147483647 ms
Não
default_statistics_target (em inglês) integer
1 ... 10000
Não
default_tablespace (em inglês) string Não
default_transaction_deferrable (em inglês) boolean
on | off
Não
default_transaction_isolation (em inglês) enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Não
effective_cache_size integer
O intervalo de tamanho é de 10% a 70% da memória da instância.
A unidade é 8 KB.
Não
enable_bitmapscan (em inglês) boolean
on | off
Não
enable_hashagg (em inglês) boolean
on | off
Não
enable_hashjoin (em inglês) boolean
on | off
Não
enable_indexonlyscan (em inglês) boolean
on | off
Não
enable_indexscan (em inglês) boolean
on | off
Não
enable_material (em inglês) boolean
on | off
Não
enable_mergejoin (em inglês) boolean
on | off
Não
enable_nestloop (em inglês) boolean
on | off
Não
enable_seqscan (em inglês) boolean
on | off
Não
enable_sort (em inglês) boolean
on | off
Não
enable_tidscan (em inglês) boolean
on | off
Não
force_parallel_mode (em inglês) enumeration
off | on | regress
Não
from_collapse_limit (em inglês) integer
1 ... 2147483647
Não
geqo (em inglês) boolean
on | off
Não
geqo_effort (em inglês) integer
1 ... 10
Não
geqo_generations (em inglês) integer
0 ... 2147483647
Não
geqo_pool_size (em inglês) integer
0 ... 2147483647
Não
geqo_seed (em inglês) float
0.0 ... 1.0
Não
geqo_selection_bias (em inglês) float
1.5 ... 2.0
Não
geqo_threshold (em inglês) integer
2 ... 2147483647
Não
gin_fuzzy_search_limit (em inglês) integer
0 ... 2147483647
Não
gin_pending_list_limit (em inglês) integer
64 ... 2147483647 KB
Não
hot_standby_feedback (em inglês) boolean
on | off
Não
idle_in_transaction_session_timeout (em inglês) integer
0 ... 2147483647 ms
Não
join_collapse_limit (em inglês) integer
1 ... 2147483647
Não
lock_timeout (em inglês) integer
0 ... 2147483647 ms
Não
log_autovacuum_min_duration (em inglês) integer
0 ... 2147483647 ms, ou -1 para desativar
Não
log_checkpoints (em inglês) boolean
on | off
Não
log_connections (em inglês) boolean
on | off
Não
log_disconnections (em inglês) boolean
on | off
Não
log_duration (em inglês) boolean
on | off
Não
log_error_verbosity (em inglês) enumeration
terse | default | verbose
Não
log_executor_stats (em inglês) boolean
on | off
Não
log_hostname (em inglês) boolean
on | off
Não
log_lock_waits (em inglês) boolean
on | off
Não
log_min_duration_statement (em inglês) integer
-1 ... 2147483647 ms
Não
log_min_error_statement (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Não
log_min_messages (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Não
log_parser_stats (em inglês) boolean
on | off
Não
log_planner_stats (em inglês) boolean
on | off
Não
log_replication_commands (em inglês) boolean
on | off
Não
log_statement enumeration
none | ddl | mod | all
Defina como mod para registrar todas as instruções da Linguagem de definição de dados (DDL), além de instruções de modificação de dados, como INSERT, UPDATE, DELETE e TRUNCATE
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
log_temp_files (em inglês) integer
0 ... 2147483647 KB, ou -1 para desativar
Não
maintenance_work_mem (em inglês) integer
1024 ... 2147483647 KB
Não
max_connections integer
14 ... varies (see note)
Tamanho da memória (MB)Valor padrão
De 0 a 1.70025
De 1.700 a 3.75050
De 3.750 a 6.000100
De 6.000 a 7.500200
De 7.500 a 15.000400
De 15.000 a 30.000500
De 30.000 a 60.000600
De 60.000 a 120.000800
120.000 ou um valor acima disso1.000

Tamanho da memória (MB)Valor máx.
De 0 a 3.84030.000
De 3.840 a 7.68085.000
De 7.680 a 15.360200.000
15.360 ou um valor acima disso262.000

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
max_locks_per_transaction (em inglês) integer
10 ... 2,147,483,647

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
max_prepared_transactions (em inglês) integer
0 ... varies
Tamanho da memória (MB)Valor máx.
De 0 a 3.84030.000
De 3.840 a 7.68085.000
De 7.680 a 15.360200.000
15.360 ou um valor acima disso262.000

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
max_replication_slots integer
10 ... varies
Sim
max_standby_archive_delay (em inglês) integer
0 ... 2147483647 ms, ou -1 para aguardar para sempre
Não
max_standby_streaming_delay (em inglês) integer
0 ... 2147483647 ms, ou -1 para aguardar para sempre
Não
max_wal_senders integer
10 ... varies
Sim
max_wal_size (em inglês) integer
2 ... 2147483647

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

Para informações de uso que podem afetar o SLA, consulte as Diretrizes operacionais das instâncias do PostgreSQL.

Não
min_parallel_relation_size (em inglês) integer
0 ... 715827882
Unidade é 8 KB
Não
old_snapshot_threshold (em inglês) integer
0 ... 86400 min, ou -1 para desativar
Sim
parallel_setup_cost (em inglês) float
0.0 ... inf
Não
parallel_tuple_cost (em inglês) float
0.0 ... inf
Não
password_encryption enumeration
md5 | scram-sha-256

Postgres 10, 11, 12 e 13.

O padrão é md5.

Não
pglogical.batch_inserts boolean
on | off
padrão: on
Sim
pglogical.conflict_log_level String
padrão: LOG.
Essa sinalização aceita os mesmos valores de log_min_messages.
Não
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins
padrão: apply_remote
Não
pglogical.extra_connection_options String
Aceita PostgreSQL keyword/value connection strings.
O padrão é a string vazia.
Não
pglogical.synchronous_commit boolean
on | off
padrão: on
Sim
pglogical.use_spi boolean
on | off
padrão: off
Sim
pg_stat_statements.max (em inglês) integer
100 ... 2147483647
Sim
pg_stat_statements.save (em inglês) boolean
on | off
Não
pg_stat_statements.track (em inglês) enumeration
none | top | all
Não
pg_stat_statements.track_utility (em inglês) boolean
on | off
Não
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

É possível fornecer várias classes usando uma lista separada por vírgulas e subtrair uma classe preenchendo-a com um sinal -. O padrão é none.

Não
pgaudit.log_catalog boolean
on | off

O padrão é on.

Não
pgaudit.log_client boolean
on | off

O padrão é off.

Não
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log

O padrão é log. Além disso, pgaudit.log_level é ativado somente quando pgaudit.log_client está ativado.

Não
pgaudit.log_parameter boolean
on | off

O padrão é off.

Não
pgaudit.log_relation boolean
on | off

O padrão é off.

Não
pgaudit.log_statement_once boolean
on | off

O padrão é off.

Não
pgaudit.role string

Não há padrão.

Não
random_page_cost (em inglês) float
0.0 ... inf
Não
replacement_sort_tuples (em inglês) integer
0 ... 2147483647
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
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
standard_conforming_strings (em inglês) boolean
on | off
Não
synchronize_seqscans (em inglês) boolean
on | off
Não
temp_buffers (em inglês) integer
100 ... 1,073,741,823
Unidade é 8 KB
Não
temp_file_limit (em inglês) integer
1048576 ... 2147483647 KB
Não
trace_notify (em inglês) boolean
on | off
Não
trace_recovery_messages (em inglês) enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Não
trace_sort (em inglês) boolean
on | off
Não
track_activities (em inglês) boolean
on | off
Não
track_activity_query_size (em inglês) integer
100 ... 102400
Sim
track_commit_timestamp (em inglês) boolean
on | off
Sim
track_counts (em inglês) boolean
on | off
Não
track_functions (em inglês) enumeration
none | pl | all
Não
track_io_timing (em inglês) boolean
on | off
Não
vacuum_cost_delay (em inglês) integer
0 ... 100 ms
Não
vacuum_cost_limit (em inglês) integer
1 ... 10000
Não
vacuum_freeze_min_age (em inglês) integer
0 ... 1000000000
Não
vacuum_freeze_table_age (em inglês) integer
0 ... 2000000000
Não
vacuum_multixact_freeze_min_age (em inglês) integer
0 ... 1000000000
Não
vacuum_multixact_freeze_table_age (em inglês) integer
0 ... 2000000000
Não
work_mem (em inglês) integer
64 ... 2147483647 KB
Não

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á nenhuma sinalização para definir o fuso horário

O PostgreSQL e o SQL Server para Cloud SQL não são compatíveis com uma sinalização de fuso horário para ajustar o fuso horário com base nas necessidades do usuário.

Possível problema

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 essa definição expirará quando você fizer logoff. Uma solução melhor é conectar-se ao banco de dados e definir o fuso horário do banco de dados pretendido 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