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 a instância. É possível usar sinalizações de banco de dados em muitas operações, como no ajuste dos parâmetros e das opções do SQL Server, assim como na configuração e ajustes de uma instância.

Ao definir, remover ou modificar uma sinalização de 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.

Configurar sinalizações do banco de dados

Definir uma sinalização do banco de dados

Console

  1. No Console do Google Cloud, selecione o projeto que contém a instância do Cloud SQL para a qual você quer definir uma sinalização de banco de dados.
  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 ("=").

Por exemplo, para definir os sinalizadores 1204, remote access e remote query timeout (s), use o seguinte comando:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300

Terraform

Para adicionar sinalizações do banco de dados, use um recurso do Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance-flags"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    database_flags {
      name  = "1204"
      value = "on"
    }
    database_flags {
      name  = "remote access"
      value = "on"
    }
    database_flags {
      name  = "remote query timeout (s)"
      value = "300"
    }
    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
}

Aplique as alterações

Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

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/v1/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.

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.

Redefinir todas as sinalizações para o valor padrão

Console

  1. No Console do Google Cloud, selecione o projeto que contém a instância do Cloud SQL para que você quer limpar todas as sinalizações.
  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 v1

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/v1/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:

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:

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, selecione o projeto que contém a instância do Cloud SQL para a qual você quer ver as sinalizações do banco de dados que foram definidas.
  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 v1

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/v1/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.

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

O Cloud SQL é compatível apenas com as flags listadas nesta seção.

Sinalização do Cloud SQL Valores
e notas aceitáveis de tipo
Necessário
reiniciar?
1204 (sinalizador de rastreamento) boolean
on | off
Não
1222 (sinalizador de rastreamento) boolean
on | off
Não
1224 (sinalizador de rastreamento) boolean
on | off
Não
2528 (sinalizador de rastreamento) boolean
on | off
Não
3205 (sinalizador de rastreamento) boolean
on | off
Não
3226 (sinalizador de rastreamento) boolean
on | off
Não
3625 (sinalizador de rastreamento) boolean
on | off
Sim
4199 (sinalizador de rastreamento) boolean
on | off
Não
4616 (sinalizador de rastreamento) boolean
on | off
Não
7806 (sinalizador de rastreamento) boolean
on | off
Sim
contagem de bucket do cache de verificação de acesso integer
0 ... 65536
Não
cota de cache de verificação de acesso integer
0 ... 2147483647
Não
máscara de afinidade integer
2147483648 ... 2147483647
Não
xps do agente boolean
on | off
Não
soft-numa automático desativado boolean
on | off
Sim
nome do bucket do Cloud SQL XE string
O nome do bucket precisa começar com o prefixo gs://.
Não
tamanho total do disco de saída do Cloud SQL XE (MB) integer
10 ... 512
Não
retenção de arquivos do Cloud SQL XE (minutos) integer
0 ... 10080
Não
Intervalo de upload do Cloud SQL XE (minutos) integer
1 ... 60
Não
Ativar os servidores vinculados cloudsql boolean
on | off
Não
limite de custo para carregamento em paralelo integer
0 ... 32767
Não
autenticação de banco de dados contida boolean
on | off
Não
entre rede de propriedade de banco de dados boolean
on | off
Não
limite do cursor integer
-1 ... 2147483647
Não
idioma de texto completo padrão integer
0 ... 2147483647
Não
idioma padrão integer
0 ... 32
Não
rastreamento padrão ativado boolean
on | off
Não
bloquear resultados de gatilhos boolean
on | off
Não
scripts externos ativados boolean
on | off
Sim
largura de banda de rastreamento de pés (máx.) integer
0 ... 32767
Não
largura de banda de rastreamento de pés (mín.) integer
0 ... 32767
Não
largura de banda de notificação em pés (máx.) integer
0 ... 32767
Não
largura de banda de notificação em pés (mín.) integer
0 ... 32767
Não
fator de preenchimento (%) integer
0 ... 100
Não
memória de criação de índice (kb) integer
704 ... 2147483647
Não
fechaduras integer
5000 ... 2147483647
Sim
memória máxima do servidor (mb) integer
1000...2147483647
O Cloud SQL pode definir um valor para essa sinalização em instâncias, com base em Valores recomendados da Microsoft Para mais informações, consulte Flags especiais.
Não
tamanho máxima da replicação de texto (b) integer
-1 ... 2147483647
Não
máximo de linhas de execução do worker integer
128 ... 65535
Não
gatilhos aninhados boolean
on | off
Não
otimizar para cargas de trabalho ad-hoc boolean
on | off
Não
tempo limite de ph integer
1 ... 3600
Não
limite de custo do gerenciador de consulta integer
0 ... 2147483647
Não
espera na consulta (s) integer
-1 ... 2147483647
Não
intervalo de recuperação (min) integer
0 ... 32767
Não
acesso remoto boolean
on | off
Sim
tempo limite de login remoto (s) integer
0 ... 2147483647
Não
tempo limite da consulta remota (s) integer
0 ... 2147483647
Não
transformar palavras com ruído boolean
on | off
Não
limite de dois dígitos por ano integer
1753 ... 9999
Não
conexões do usuário integer
0, 10 ... 32767
Sim
opções do usuário integer
0 ... 32767
Não

Sinalizações especiais

Esta seção contém mais informações sobre as flags do Cloud SQL para SQL Server.

max server memory (mb)

Essa flag limita a quantidade de memória que o Cloud SQL pode alocar para os pools internos. A recomendação geral é definir o valor da flag como 80% para evitar que o SQL Server consuma toda a memória disponível da instância do Cloud SQL. Se você definir o valor como maior que 80%, poderá haver instabilidade, degradação de desempenho e falhas no banco de dados devido a problemas de falta de memória.

Se você não definir um valor para essa flag, o Cloud SQL vai gerenciar o valor automaticamente com base no tamanho da RAM da sua instância. Além disso, se você redimensionar a instância, o Cloud SQL vai ajustar o valor da flag automaticamente para atender às nossas recomendações sobre o novo tamanho da instância. Isso garante que o banco de dados utilize os recursos de maneira eficaz, evitando a superalocação, falhas e a degradação do desempenho da instância.

Solução de problemas

Problema Solução de problemas
Você quer modificar o fuso horário de uma instância do Cloud SQL.

Para saber como atualizar o fuso horário de uma instância, consulte Configurações da instância.

No Cloud SQL para SQL Server, é possível usar a função AT TIME ZONE para conversões de tempo e muito mais. Para mais informações sobre essa função, consulte ZONA DE TEMPO (Transact-SQL).

A seguir