Resolver problemas

Verifique se a pergunta ou o problema já foi resolvido em uma destas páginas:

Os tópicos desta página incluem:

Backup e recuperação

Problema Solução de problemas
Não é possível ver o status da operação atual. O Console do Google Cloud informa apenas o sucesso ou falha no momento da operação. Ele não foi criado para mostrar avisos ou outras atualizações.

Execute o comando gcloud sql operations list para listar todas as operações da instância do Cloud SQL especificada.

Você quer descobrir quem emitiu uma operação de backup sob demanda. A interface do usuário não mostra o usuário que iniciou uma operação.

Procure nos registros e filtre por texto para encontrar o usuário. Talvez seja necessário usar registros de auditoria para informações particulares. Os arquivos de registro relevantes incluem:

  • cloudsql.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.err
  • Se os registros de auditoria do Cloud estiverem ativados e você tiver as permissões necessárias para visualizá-los, cloudaudit.googleapis.com/activity também poderá estar disponível.
Depois que uma instância é excluída, não é possível fazer backup dela.

Depois que uma instância é limpa, não é possível recuperar dados. No entanto, se a instância for restaurada, os backups também serão restaurados. Para mais informações sobre como recuperar uma instância excluída, consulte Backups de recuperação.

Se você tiver feito uma operação de exportação, crie uma nova instância e faça uma operação de importação para recriar o banco de dados. As exportações são gravadas no Cloud Storage e as importações são lidas de lá.

O backup automático fica paralisado por muitas horas e não pode ser cancelado. Os backups podem levar muito tempo, dependendo do tamanho do banco de dados.

Se você realmente precisa cancelar a operação, peça ao suporte ao cliente para aplicar force restart à instância.

Uma operação de restauração pode falhar quando um ou mais usuários referenciados no arquivo dump SQL não existem. Antes de restaurar um arquivo dump SQL, todos os usuários do banco de dados com objetos ou que receberam permissões para os objetos do banco de dados despejado precisam existir no banco de dados de destino. Caso contrário, a operação de restauração não recriará os objetos com a propriedade ou as permissões originais.

Crie os usuários do banco de dados antes de restaurar do dump SQL.

Você quer aumentar o número de dias em que pode manter backups automáticos, de sete para 30 dias ou mais. É possível configurar o número de backups automatizados a serem retidos, mas não é possível reter menos do que o padrão (sete). Os backups automatizados são removidos regularmente com base no valor de retenção configurado. Infelizmente, isso significa que os backups visíveis atuais são os únicos backups automatizados que podem ser usados para restaurar.

Para manter os backups indefinidamente, crie um backup sob demanda. Ele não é excluído da mesma forma que backups automáticos. Os backups sob demanda permanecem indefinidamente. Ou seja, eles permanecem até que sejam excluídos ou a instância a que pertencem seja excluída. Como esse tipo de backup não é excluído automaticamente, ele pode afetar o faturamento.

Um backup automático falhou e você não recebeu uma notificação por e-mail. Para que o Cloud SQL notifique você sobre o status do backup, configure um alerta com base em registros.
Não será possível restaurar a instância usando o comando Transact-SQL RESTORE ou o SQL Server Management Studio (SSMS). O Cloud SQL não oferece suporte à restauração de instâncias usando o SSMS. Para restaurar a instância, execute o comando gcloud sql import.

Clonar

Problema Solução de problemas
Ocorreu uma falha na clonagem com um erro constraints/sql.restrictAuthorizedNetworks. A operação de clonagem é bloqueada pela configuração Authorized Networks. Authorized Networks são configurados para endereços IP públicos na seção "Conectividade" do console do Google Cloud, e a clonagem não é permitida devido a considerações de segurança.

Remova todas as entradas Authorized Networks da instância do Cloud SQL, se possível. Caso contrário, crie uma réplica sem nenhuma entrada Authorized Networks.

Mensagem de erro: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

Você está tentando usar o console do Google Cloud para clonar uma instância com um endereço IP particular, mas não especificou o intervalo de IP alocado que pretende usar e a instância de origem não foi criada com o intervalo especificado. Como resultado, a instância clonada é criada em um intervalo aleatório.

Use gcloud para clonar a instância e fornecer um valor para o parâmetro
--allocated-ip-range-name. Para mais informações, consulte Como clonar uma instância com um IP particular.

Conectar

Problema Solução de problemas
Aborted connection. O problema pode ser:
  • Instabilidade de rede.
  • Nenhuma resposta aos comandos de sinal de atividade do TCP (o cliente ou o servidor não é responsivo, possivelmente sobrecarregado)
  • A vida útil da conexão do mecanismo de banco de dados foi excedida e o servidor encerra a conexão.

Os aplicativos devem tolerar falhas de rede e seguir as práticas recomendadas, como a repetição e o pooling de conexões. A maioria dos pools de conexão identifica esses erros sempre que possível. Caso contrário, o aplicativo precisará tentar novamente ou falhar normalmente.

Para novas tentativas de conexão, recomendamos os métodos a seguir:

  1. Espera exponencial. Aumente o intervalo de tempo entre cada nova tentativa, exponencialmente.
  2. Adicione também a espera aleatória.

Combinar esses métodos ajuda a reduzir a limitação.

Criar instâncias

Problema Solução de problemas
Mensagem de erro: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID] Tente criar a instância do Cloud SQL novamente.
Mensagem de erro: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID Quando você cria uma instância usando um endereço IP privado, uma conta de serviço é criada no momento certo usando a API Service Networking. Se você ativou recentemente a API Service Networking, a conta de serviço pode não ser criada e a criação da instância falhará. Nesse caso, você precisa esperar a conta de serviço se propagar pelo sistema ou adicioná-la manualmente com as permissões necessárias.

Exportar

Problema Solução de problemas
HTTP Error 409: Operation failed because another operation was already in progress. Já existe uma operação pendente para sua instância. Só é permitida uma operação por vez. Tente fazer o pedido após a conclusão da operação atual.
HTTP Error 403: The service account does not have the required permissions for the bucket. Verifique se o bucket existe e se a conta de serviço da instância do Cloud SQL (que está fazendo a exportação) tem o papel Storage Object Creator (roles/storage.objectCreator) para permitir a exportação para o bucket. Consulte Papéis do IAM para o Cloud Storage.
Você quer que as exportações sejam automatizadas. O Cloud SQL não oferece uma maneira de automatizar exportações.

É possível criar seu próprio sistema de exportação automatizada usando produtos do Google Cloud, como Cloud Scheduler, Pub/Sub e funções do Cloud Run, semelhante a este artigo sobre como automatizar backups.

Sinalizações

Problema Solução de problemas
O Cloud SQL para SQL Server não aceita a modificação do fuso horário de uma instância atual.

No Cloud SQL, o SQL Server é compatível com a configuração do fuso horário de uma nova instância, mas não de uma instância atual.

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

Alta disponibilidade

Problema Solução de problemas
Não é possível encontrar as métricas de um failover manual. Somente failovers automáticos entram nas métricas.
Os recursos da instância do Cloud SQL (CPU e RAM) estão quase com 100% de uso, fazendo com que a instância de alta disponibilidade fique inativa. O tamanho da máquina da instância é pequeno demais para a carga.

Edite a instância para fazer upgrade para um tamanho de máquina maior e receber mais CPUs e memória.

Importar

Problema Solução de problemas
HTTP Error 409: Operation failed because another operation was already in progress. Já existe uma operação pendente para sua instância. Só é permitida uma operação por vez. Tente fazer o pedido após a conclusão da operação atual.
A operação de importação está demorando muito. Muitas conexões ativas podem interferir nas operações de importação.

Feche operações não usadas. Verifique o uso de CPU e da memória da instância do Cloud SQL para garantir que haja muitos recursos disponíveis. A melhor maneira de garantir o máximo de recursos para a importação é reiniciar a instância antes de começar a operação.

Uma reinicialização:

  • fecha todas as conexões;
  • encerra todas as tarefas que possam estar consumindo recursos.
Uma operação de importação pode falhar quando um ou mais usuários referenciados no arquivo dump não existem. Antes de importar um arquivo dump, todos os usuários do banco de dados que têm objetos ou receberam permissões nos objetos no banco de dados despejado precisam existir no banco de dados de destino. Caso contrário, a operação de importação não recriará os objetos com a propriedade ou as permissões originais.

Crie os usuários do banco de dados antes de importar.

Incompatibilidade de LSN A ordem da importação de backups de registro de transações está incorreta ou a cadeia de registro de transações está corrompida.
Importe os backups de registro de transações na mesma ordem da tabela de conjuntos de backups.
Interrupção cedo demais Esse erro indica que o primeiro registro no arquivo de registro de transações é posterior ao carimbo de data/hora StopAt. Por exemplo, se o primeiro registro no arquivo de registro de transações estiver em 2023-09-01T12:00:00 e o campo StopAt tiver o valor 2023-09-01T11:00:00, o Cloud SQL retornará esse erro.
Use o carimbo de data/hora StopAt e o arquivo de registro de transações corretos.

Servidores vinculados

Mensagem de erro Solução de problemas
Msg 7411, Level 16, State 1, Line 25

Server 'LINKED_SERVER_NAME' is not configured for DATA ACCESS.
A opção DataAccess está desativada. Execute o seguinte comando para ativar o acesso a dados:
EXEC sp_serveroption
    @server='LINKED_SERVER_NAME',
    @optname='data access',
    @optvalue='TRUE'

Substitua LINKED_SERVER_NAME pelo nome do servidor vinculado.

Access to the remote server is denied because no login-mapping exists. (Microsoft SQL Server, Error: 7416) Se você tiver esse problema ao estabelecer uma conexão criptografada, será necessário tentar outra maneira de fornecer o ID do usuário ao acessar o servidor vinculado. Para isso, execute este comando:
EXEC master.dbo.sp_addlinkedserver
   @server = N'LINKED_SERVER_NAME',
   @srvproduct= N'',
   @provider= N'SQLNCLI',
   @datasrc= N'TARGET_SERVER_ID',
   @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID'

Substitua:

  • LINKED_SERVER_NAME pelo nome do servidor vinculado.
  • TARGET_SERVER_ID pelo nome do servidor de destino ou o endereço IP e o número da porta do servidor de destino.
  • USER_ID pelo login do usuário.

Geração de registros

Problema Solução de problemas
Registros de auditoria não encontrados. Os registros de acesso a dados só são gravados se a operação for uma chamada de API autenticada pelo usuário que cria, modifica ou lê dados criados pelo usuário ou se a operação acessar arquivos de configuração ou metadados de recursos.
Informações de operações não encontradas nos registros. Você quer encontrar mais informações sobre uma operação.

Por exemplo, um usuário foi excluído, mas não é possível descobrir quem fez isso. Os registros mostram que a operação foi iniciada, mas não fornecem mais informações. Você precisa ativar o registro de auditoria para que informações de identificação detalhadas e pessoais (PII, na sigla em inglês) sejam registradas.

Alguns registros são filtrados do registro error.log de uma instância do Cloud SQL para SQL Server. Os registros filtrados incluem registros do AD sem carimbos de data/hora e incluem: Login failed for user 'x'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1]. Esses registros são filtrados porque podem causar confusão.
Os arquivos de registros são difíceis de ler. Você preferiria ver os registros como json ou texto. É possível usar o comando gcloud logging read junto com os comandos de pós-processamento do Linux para fazer o download dos registros.

Para fazer o download dos registros como JSON:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

Para fazer o download dos registros como TEXT:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   

Gerenciar instâncias

Problema Solução de problemas
O armazenamento temporário aumentou o armazenamento automático. O armazenamento automático está ativado.

A reinicialização exclui os arquivos temporários, mas não reduz o armazenamento. Somente o suporte ao cliente pode redefinir o tamanho da instância.

Os dados estão sendo excluídos automaticamente. Provavelmente, um script está sendo executado em algum lugar no seu ambiente.

Procure nos registros próximos o momento da exclusão e veja se há um script não autorizado em execução em um painel ou outro processo automatizado.

A instância não pode ser excluída. Você verá a mensagem de erro ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request ou a instância apresentará um status de sinalização INSTANCE_RISKY_FLAG_CONFIG.

Algumas explicações possíveis incluem:

  • Outra operação está em andamento. As operações do Cloud SQL não são executadas simultaneamente. Aguarde a conclusão da outra operação.
  • O aviso INSTANCE_RISKY_FLAG_CONFIG é acionado sempre que pelo menos uma sinalização beta é usada. Remova as configurações de sinalização arriscadas e reinicie a instância.
A instância está travada devido ao grande tamanho dos dados temporários. O sistema pode criar muitas tabelas temporárias de uma só vez, dependendo das consultas e da carga.

Infelizmente, não é possível reduzir o arquivo ibtmp1 por nenhum método que não seja reiniciar o serviço.

Uma opção de mitigação é criar a tabela temporária com ROW_FORMAT=COMPRESSED, para que ela seja armazenada em tablespaces de arquivo por tabela no diretório de arquivos temporários. No entanto, a desvantagem são os custos de desempenho associados à criação e remoção de um tablespace de arquivo por tabela para cada tabela temporária.

Erro fatal durante o upgrade. Os registros podem revelar mais. Mas, em qualquer caso, o suporte ao cliente pode ser necessário para forçar a recriação da instância.
A instância trava na reinicialização quando acaba o espaço em disco. O recurso de aumento automático de armazenamento não está ativado.

Se a instância ficar sem espaço de armazenamento e o recurso de aumento automático de armazenamento não estiver ativado, a instância ficará off-line. Para evitar esse problema, edite a instância para ativar o aumento automático de armazenamento.

A instância principal local está paralisada. O Google Cloud não pode ajudar com instâncias que não estão no Cloud SQL.
Desligamento lento na reinicialização. Quando uma instância é encerrada, todas as conexões pendentes que não são encerradas em até 60 segundos produzem erros no desligamento.

Com apenas conexões que duram menos de 60 segundos, a maioria dos desligamentos com erros pode ser evitada, incluindo conexões pelo prompt de comando do banco de dados. Se você mantiver essas conexões abertas por horas ou dias, é possível que haja erros nos desligamentos.

Não é possível excluir um usuário. O usuário provavelmente tem objetos no banco de dados que dependem dele. É necessário descartar esses objetos ou reatribuí-los a outro usuário.

Descubra quais objetos dependem do usuário e, em seguida, disponibilize ou reatribua esses objetos a outro usuário.

Esta linha de execução no Stack Exchange discute como encontrar os objetos de propriedade do usuário.
As consultas específicas estão lentas. As consultas podem ser lentas por vários motivos, principalmente devido a aspectos específicos do banco de dados. Um motivo que pode envolver o Cloud SQL é a latência da rede, quando o recurso de origem (gravador ou leitor) e o recurso de destino (Cloud SQL) estão em regiões diferentes.

Consulte as dicas gerais de desempenho, especialmente:

Para atualizações, exclusões ou inserções lentas no banco de dados, considere as seguintes ações:

  • Verifique os locais do gravador e do banco de dados. O envio de dados por uma longa distância gera latência.
  • Verifique o local do leitor e do banco de dados. A latência afeta o desempenho de leitura ainda mais do que o desempenho de gravação

Para reduzir a latência, recomenda-se que os recursos de origem e de destino estejam na mesma região.

A falta de memória é indicada, mas os gráficos de monitoramento não mostram isso. Uma instância pode falhar e informar Out of memory, mas os gráficos do Console do Google Cloud ou do Cloud Monitoring parecem mostrar que ainda há memória.

Há outros fatores, além da carga de trabalho, que podem afetar o uso de memória, como o número de conexões ativas e processos de sobrecarga interna. Eles nem sempre aparecem nos gráficos de monitoramento.

Verifique se a instância tem sobrecarga suficiente para suportar sua carga de trabalho e uma possível sobrecarga.

Como recuperar uma instância excluída. Ao excluir uma instância, todos os dados contidos nela são perdidos permanentemente, inclusive backups.

Para preservar os dados, exporte-os para o Cloud Storage antes de excluir uma instância.

O papel de administrador do Cloud SQL inclui a permissão para excluir a instância. Para evitar exclusões acidentais, conceda esse papel somente quando necessário.

Você quer renomear uma instância do Cloud SQL. Não é possível renomear uma instância atual.

Há outras maneiras de atingir a meta criando uma nova instância.

  • É possível clonar a instância que você quer renomear e definir um novo nome para ela. Isso permite que você crie a nova instância sem precisar importar dados manualmente. Assim como ao criar uma nova instância, a instância clonada tem um novo endereço IP.
  • É possível exportar dados da instância para um bucket do Cloud Storage, criar uma nova instância com o novo nome e import os dados para a nova instância.

Nos dois casos, é possível excluir a instância antiga depois que a operação for concluída. Recomendamos seguir a rota de clonagem porque ela não afeta o desempenho e não exige que você refaça nenhuma das definições da configuração da instância, como sinalizações, tipo de máquina, tamanho do armazenamento e memória.

Erro ao excluir uma instância. Se a proteção contra exclusão estiver ativada em uma instância, confirme seus planos para excluir a instância. Em seguida, desative a proteção contra exclusão antes de excluir a instância.

Private Service Connect

Problema Solução de problemas
O anexo de serviço da instância não aceita o endpoint do Private Service Connect.
  1. Verifique o status do endpoint.

    gcloud

    Para verificar o status, use o comando
    gcloud compute forwarding-rules describe.

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    | grep pscConnectionStatus

    Faça as seguintes substituições:

    • ENDPOINT_NAME: o nome do endpoint.
    • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém o endpoint
    • REGION_NAME: o nome da região do endpoint

    REST

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

    • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém o endpoint do Private Service Connect
    • REGION_NAME: o nome da região.
    • ENDPOINT_NAME: o nome do endpoint.

    Método HTTP e URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

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

    Você receberá uma resposta JSON semelhante a esta:

    {
      "kind": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    
  2. Verifique se o status do endpoint é ACCEPTED. Se o status for PENDING, a instância não está permitindo o projeto do Google Cloud que contém o endpoint. Verifique se o projeto de rede em que o endpoint foi criado é permitido. Para mais informações, consulte Editar uma instância com o Private Service Connect ativado.

Replicação

Problema Solução de problemas
A réplica de leitura não começou a ser replicada na criação. Provavelmente há um erro mais específico nos arquivos de registro. Inspecione os registros no Cloud Logging para encontrar o erro real.
Não foi possível criar a réplica de leitura: erro invalidFlagValue. Uma das sinalizações na solicitação é inválida. Pode ser uma sinalização fornecida explicitamente ou uma que foi definida como um valor padrão.

Primeiro, verifique se o valor da sinalização max_connections é maior ou igual ao valor na instância principal.

Se a sinalização max_connections estiver definida corretamente, inspecione os registros no Cloud Logging para encontrar o erro real.

Não foi possível criar a réplica de leitura: erro desconhecido. Provavelmente há um erro mais específico nos arquivos de registro. Inspecione os registros no Cloud Logging para encontrar o erro real.

Se o erro for: set Service Networking service account as servicenetworking.serviceAgent role on consumer project, desative e reative o Service Networking API. Essa ação cria a conta de serviço necessária para continuar com o processo.

O disco está cheio. O tamanho do disco da instância principal pode ficar cheio durante a criação da réplica. Edite a instância principal com upgrade para um tamanho de disco maior.
A instância da réplica está usando memória demais. A réplica usa memória temporária para armazenar em cache as operações de leitura solicitadas com frequência, o que pode fazer com que ela use mais memória do que a instância principal.

Reinicie a instância da réplica para recuperar o espaço de memória temporário.

Replicação interrompida. O limite máximo de armazenamento foi atingido e o aumento automático de armazenamento não está ativado.

Edite a instância para ativar automatic storage increase.

O atraso da replicação é consistentemente alto. A carga de gravação é alta demais para a réplica processar. O atraso de replicação ocorre quando a linha de execução SQL em uma réplica não consegue acompanhar a linha de execução de E/S. Alguns tipos de consultas ou cargas de trabalho podem causar um atraso de replicação temporário ou permanente para um determinado esquema. Estas são algumas das causas comuns do atraso de replicação:
  • Consultas lentas na réplica. Encontre e corrija esses problemas.
  • Consultas como DELETE ... WHERE field < 50000000 causam atraso de replicação com base em linha, já que um grande número de atualizações é acumulado na réplica.

Algumas soluções possíveis incluem:

  • Editar a instância para aumentar o tamanho da réplica.
  • Reduza a carga no banco de dados.
  • Envia o tráfego de leitura para a réplica de leitura.
  • Inclua as tabelas em um índice.
  • Identifique e corrija consultas de gravação lentas.
  • Recrie a réplica.
A criação da réplica falha com o tempo limite. Transações não confirmadas de longa duração na instância primária podem causar falha na criação da réplica de leitura.

Recrie a réplica depois de interromper todas as consultas em execução.