Esta página descreve como configurar as flags da base de dados para o Cloud SQL e apresenta as flags que pode definir para a sua instância. Usa flags de base de dados para muitas operações, incluindo ajustar parâmetros do SQL Server, ajustar opções e configurar e otimizar uma instância.
Quando define, remove ou modifica uma flag para uma instância da base de dados, a base de dados pode ser reiniciada. O valor da flag é, em seguida, mantido para a instância até que o remova. Se a instância for a origem de uma réplica e for reiniciada, a réplica também é reiniciada para se alinhar com a configuração atual da instância.
Configure as flags da base de dados
As secções seguintes abordam tarefas comuns de gestão de denúncias.
Defina uma flag da base de dados
Consola
- Na Google Cloud consola, selecione o projeto que contém a instância do Cloud SQL para a qual quer definir uma flag de base de dados.
- Abra a instância e clique em Editar.
- Aceda à secção Flags.
- Para definir uma flag que não tenha sido definida na instância anteriormente, clique em Adicionar item, escolha a flag no menu pendente e defina o respetivo valor.
- Clique em Guardar para guardar as alterações.
- Confirme as alterações em Sinalizações na página Vista geral.
gcloud
Edite a instância:
gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2
Este comando substitui todas as flags da base de dados definidas anteriormente. Para manter esses valores e adicionar novos, inclua os valores de todas as flags que quer definir na instância. Qualquer flag não incluída especificamente é definida com o respetivo valor predefinido. Para flags que não aceitam um valor, especifique o nome da flag seguido de um sinal de igual ("=").
Por exemplo, para definir os sinalizadores 1204
, remote access
e remote query timeout (s)
, pode usar o seguinte comando:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300
Terraform
Para adicionar flags de base de dados, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform destroy
REST v1
Para definir uma flag para uma base de dados existente:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do pedido:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Se existirem flags configuradas para a base de dados, modifique o comando anterior para as incluir. O comando PATCH
substitui as flags existentes pelas especificadas no pedido.
REST v1beta4
Para definir uma flag para uma base de dados existente:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do pedido:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Se existirem flags configuradas para a base de dados, modifique o comando anterior para as incluir. O comando PATCH
substitui as flags existentes pelas especificadas no pedido.
Limpe todas as flags para os respetivos valores predefinidos
Consola
- Na Google Cloud consola, selecione o projeto que contém a instância do Cloud SQL para a qual quer limpar todas as flags.
- Abra a instância e clique em Editar.
- Abra a secção Indicadores da base de dados.
- Clique no X junto a todas as denúncias apresentadas.
- Clique em Guardar para guardar as alterações.
gcloud
Limpe todos os sinalizadores para os respetivos valores predefinidos numa instância:
gcloud sql instances patch INSTANCE_NAME \ --clear-database-flags
É-lhe pedido que confirme que a instância vai ser reiniciada.
REST v1
Para limpar todas as flags de uma instância existente:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do pedido:
{ "settings": { "databaseFlags": [] } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Para limpar todas as flags de uma instância existente:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 do pedido:
{ "settings": { "databaseFlags": [] } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Determine que flags de base de dados foram definidas para uma instância
Para ver que flags foram definidas para uma instância do Cloud SQL:
Consola
- Na Google Cloud consola, selecione o projeto que contém a instância do Cloud SQL para a qual quer ver as flags da base de dados que foram definidas.
- Selecione a instância para abrir a respetiva página Vista geral da instância.
As flags da base de dados que foram definidas são apresentadas na secção Flags da base de dados.
gcloud
Veja o estado da instância:
gcloud sql instances describe INSTANCE_NAME
Na saída, as flags da base de dados são apresentadas sob o nome da coleção settings
.databaseFlags
Para mais informações
acerca da representação das flags no resultado, consulte
Representação do recurso Instances.
REST v1
Para listar as flags configuradas para uma instância:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Na saída, procure o campo databaseFlags
.
REST v1beta4
Para listar as flags configuradas para uma instância:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- 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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Na saída, procure o campo databaseFlags
.
Sinalizadores suportados
O Cloud SQL suporta apenas as flags indicadas nesta secção.
Sinalizações especiais
Esta secção contém informações adicionais sobre as flags do Cloud SQL para SQL Server.
max degree of parallelism (MAXDOP)
Max degree of parallelism (MAXDOP)
é uma flag de base de dados da Microsoft
disponível para utilização no Cloud SQL para SQL Server. Esta flag permite-lhe limitar o número máximo de threads usados quando executa uma única consulta num plano paralelo.
Se for deixado com o valor predefinido de 0
, a instância da base de dados usa todos os processadores disponíveis. No entanto, isto pode nem sempre ser eficiente ou mesmo prático se estiver a gerir instâncias com centenas de bases de dados.
Recomendamos que siga 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.
Pode verificar a configuração do nó NUMA através da vista de gestão dinâmica (DMV) de sys.dm_os_sys_info. Para verificar a configuração do nó NUMA, use um fragmento do código semelhante ao seguinte:
SELECT socket_count,cores_per_socket,numa_node_count
FROM sys.dm_os_sys_info
Embora possa usar MAXDOP para limitar o número máximo de processadores que quer permitir para a execução de planos paralelos, também pode usar a funcionalidade limite de custo para paralelismo para indicar o custo mínimo que quer definir para um único processador antes de expandir as operações paralelas para outro processador. Estas funcionalidades permitem-lhe controlar melhor a eficiência e o custo da execução de planos paralelos.
Os valores recomendados para estas funcionalidades variam caso a caso e são influenciados pelas necessidades de carga de trabalho do servidor e da aplicação.
Para obter ajuda na determinação dos melhores valores de MAXDOP e limite de custo para paralelismo para os seus servidores, consulte os seguintes recursos:
- Configuração do servidor: grau máximo de paralelismo
- Práticas recomendadas: definições da base de dados a modificar
A alteração do valor predefinido ajuda a resolver os seguintes potenciais problemas:
- Se a flag
max degree of parallelism (MAXDOP)
estiver definida como0
, as instâncias ou as aplicações cliente que requerem transferências do SharePoint falham. A transferência do SharePoint executa uma verificação prévia que requer um valor numérico para a flag e não aceita um valor inferior a 1. - Se deixar a flag MAXDOP com o valor predefinido de
0
, indica efetivamente que não existe nenhum limite e que todos os processadores disponíveis podem ser usados para operações paralelas. Embora este valor possa ser adequado para servidores que executam rotineiramente pequenas consultas, pode representar um problema de custo se também precisar de executar periodicamente consultas muito grandes.
Com a flag max degree of parallelism (MAXDOP)
, pode controlar o número de threads em três níveis:
- Ao nível da instância, usando flags da base de dados
- Âmbito da base de dados, usando TSQL
- Ao nível da consulta, através de sugestões de consultas
Tenha em atenção que, se o tamanho da instância for alterado, o valor do sinalizador permanece inalterado.
max server memory (mb)
O sinalizador max server memory (mb)
limita a quantidade de memória que o Cloud SQL pode atribuir aos respetivos conjuntos internos.
Recomendamos que não configure um valor para esta flag e que permita que o Cloud SQL
faça a gestão do valor por si. Se tiver de gerir manualmente este valor, como recomendação geral, defina o valor max server memory (mb)
para aproximadamente 80% da memória disponível para ajudar a impedir 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 pode ser um valor demasiado baixo e pode levar a uma utilização desperdiçada da memória.
Se não definir um valor para esta flag, o Cloud SQL gere o valor automaticamente com base no tamanho da RAM da sua instância. Além disso, se redimensionar a instância, o Cloud SQL ajusta automaticamente o valor da flag para cumprir as nossas recomendações para o novo tamanho da instância. Esta operação de redimensionamento também remove qualquer valor definido manualmente para esta flag. Isto ajuda a sua base de dados a usar os recursos de forma mais eficaz, ajudando a evitar a atribuição excessiva, reduzindo a probabilidade de uma falha devido a problemas de falta de memória e ajudando a evitar a degradação do desempenho da sua instância.
Para mais informações, consulte os artigos Memória máxima do servidor e Otimize a utilização elevada de memória.
Resolução de problemas
Problema | Resolução de problemas |
---|---|
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 o artigo Definições da instância. No Cloud SQL para SQL Server, pode usar a função |
O que se segue?
- Saiba mais acerca das opções de configuração do SQL Server.