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 flags de bancos de dados
As seções a seguir abordam tarefas comuns de gerenciamento de flags.
Definir uma sinalização do banco de dados
Console
- No consoleGoogle Cloud , selecione o projeto que contém a instância do Cloud SQL para a qual você quer definir uma flag de banco de dados.
- Abra a instância e clique em Editar.
- Acesse a seção Flags.
- 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.
- Clique em Salvar para salvar as alterações.
- 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.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto Google Cloud padrão 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.
-
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 demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
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
-
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.
-
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!".
- Abra seu Google Cloud projeto para conferir os resultados. No console do Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
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
- No consoleGoogle Cloud , selecione o projeto que contém a instância do Cloud SQL para que você quer limpar todas as flags.
- Abra a instância e clique em Editar.
- Abra a seção Sinalizações do banco de dados.
- Clique no X ao lado de todas as sinalizações exibidas.
- 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
- No consoleGoogle Cloud , selecione o projeto que contém a instância do Cloud SQL para a qual você quer ver as flags do banco de dados que foram definidas.
- 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ções especiais
Esta seção contém mais informações sobre as flags do Cloud SQL para SQL Server.
max degree of parallelism (MAXDOP)
Max degree of parallelism (MAXDOP)
é uma flag de banco de dados da Microsoft
disponível para uso no Cloud SQL para SQL Server. Essa flag permite limitar o número máximo de linhas de execução usadas ao executar uma única consulta em um plano paralelo.
Se o valor padrão 0
for mantido, a instância do banco de dados usará todos os processadores disponíveis. No entanto, isso nem sempre é eficiente ou prático ao gerenciar instâncias com centenas de bancos de dados.
Recomendamos seguir as recomendações da documentação da Microsoft ao definir o valor da flag, que pode variar com base no número de nós NUMA e no número de processadores lógicos disponíveis.
É possível verificar a configuração do nó NUMA usando a visão de gerenciamento dinâmico (DMV) de sys.dm_os_sys_info. Para verificar a configuração do nó NUMA, use um snippet de código semelhante a este:
SELECT socket_count,cores_per_socket,numa_node_count
FROM sys.dm_os_sys_info
Embora seja possível usar MAXDOP para limitar o número máximo de processadores que você quer permitir para a execução de planos paralelos, também é possível usar o recurso limite de custo para paralelismo para indicar o custo mínimo que você quer definir para um único processador antes de expandir as operações paralelas para outro processador. Com eles, você controla melhor a eficiência e o custo da execução paralela de planos.
Os valores recomendados para esses recursos variam de acordo com o caso e são influenciados pelas necessidades de carga de trabalho do servidor e do aplicativo.
Para determinar o melhor MAXDOP e limite de custo para valores de paralelismo nos seus servidores, consulte os seguintes recursos:
- Configuração do servidor: grau máximo de paralelismo
- Práticas recomendadas: configurações do banco de dados a serem modificadas
Mudar o valor padrão ajuda a resolver os seguintes problemas em potencial:
- Se a flag
max degree of parallelism (MAXDOP)
estiver definida como0
, as instâncias ou os aplicativos cliente que exigirem downloads do SharePoint vão falhar. O download do SharePoint executa uma pré-verificação que exige um valor numérico para a flag e não aceita um valor menor que 1. - Deixar a flag MAXDOP com o padrão
0
indica que não há limite e que todos os processadores disponíveis podem ser usados para operações paralelas. Embora esse valor seja adequado para servidores que executam consultas pequenas rotineiramente, ele pode causar um problema de custo se você também precisar executar consultas muito grandes periodicamente.
Usando a flag max degree of parallelism (MAXDOP)
, é possível controlar o número de linhas de execução em três níveis:
- No nível da instância, usando flags de banco de dados
- Escopo do banco de dados usando TSQL
- Nível da consulta, usando dicas de consulta
Se a instância for redimensionada, o valor da flag vai permanecer inalterado.
max server memory (mb)
A flag max server memory (mb)
limita a quantidade de memória que o Cloud SQL pode alocar para os pools internos.
Recomendamos que você não configure um valor para essa flag e deixe o Cloud SQL gerenciar o valor para você. Se você precisar gerenciar esse valor manualmente, defina o valor de max server memory (mb)
como aproximadamente 80% da memória disponível para evitar que o SQL Server consuma toda a memória.
Por outro lado, para instâncias com grandes quantidades de memória, 80% da memória disponível podem ser um valor muito baixo e levar ao desperdício 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 instância. Além disso, se você redimensionar a instância, o Cloud SQL vai ajustar automaticamente o valor da flag para atender às nossas recomendações para o novo tamanho da instância. Essa operação de redimensionamento também remove qualquer valor definido manualmente para essa flag. Isso ajuda seu banco de dados a usar os recursos de maneira mais eficaz, evitando a alocação excessiva, reduzindo a probabilidade de uma falha devido a problemas de memória insuficiente e evitando a degradação do desempenho da sua instância.
Para mais informações, consulte Memória máxima do servidor e Otimizar o uso elevado da memória.
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 |
A seguir
- Saiba mais sobre opções de configuração do SQL Server.