Gerenciar réplicas de leitura

Nesta página, você verá como gerenciar réplicas de leitura. Essas operações incluem desativar e ativar a replicação, promover uma réplica, configurar a replicação paralela e verificar o status da replicação.

Para mais informações sobre como funciona a replicação, consulte Replicação no Cloud SQL.

Esta página se aplica a réplicas de uma instância do Cloud SQL. Para configurar uma instância do Cloud SQL para atuar como editor em um assinante externo, consulte Configurar réplicas externas.

.

Desativar replicação

Por padrão, uma réplica começa com a replicação ativada. No entanto, é possível desativar a replicação, por exemplo, para depurar ou analisar o estado de uma instância. Ao terminar, reative a replicação explicitamente. Desativar ou reativar a replicação não reinicia a instância da réplica.

Quando a replicação é desativada, isso não interrompe a instância da réplica: ela se torna uma instância somente leitura que não é mais replicada da instância principal. Você continuará sendo cobrado pela instância. Na réplica desativada, é possível reativar a replicação, excluir a réplica ou promovê-la a uma instância autônoma.

Para desativar a replicação:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Selecione uma instância de réplica clicando no nome dela.
  3. Clique em Desativar replicação na barra de botões.
  4. Clique em OK.

gcloud

gcloud sql instances patch REPLICA_NAME \
--no-enable-database-replication

REST v1

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: patch" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name

Corpo JSON da solicitação:

{
  "settings":
  {
    "databaseReplicationEnabled": "False"
  }
}

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

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: patch" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name

Corpo JSON da solicitação:

{
  "settings":
  {
    "databaseReplicationEnabled": "False"
  }
}

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

Você receberá uma resposta JSON semelhante a esta:

Ativar replicação

Se uma réplica não for replicada por muito tempo, ela demorará mais para alcançar a instância principal. Nesse caso, exclua a réplica e crie uma nova.

Para ativar a replicação:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Selecione uma instância de réplica clicando no nome dela.
  3. Clique em Ativar replicação.
  4. Clique em OK.

gcloud

gcloud sql instances patch REPLICA_NAME \
--enable-database-replication

REST v1

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: patch" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name

Corpo JSON da solicitação:

{
  "settings":
  {
    "databaseReplicationEnabled": "True"
  }
}

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

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: patch" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name

Corpo JSON da solicitação:

{
  "settings":
  {
    "databaseReplicationEnabled": "True"
  }
}

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

Você receberá uma resposta JSON semelhante a esta:

Promover uma réplica

Promover uma réplica de leitura interrompe a replicação e converte a instância em uma instância primária independente do Cloud SQL com recursos de leitura e gravação.

Quando promovidas, as réplicas de leitura são configuradas automaticamente com backups, mas não são configuradas automaticamente como instâncias de alta disponibilidade (HA, na sigla em inglês). É possível ativar a alta disponibilidade depois de promover a réplica, assim como faria para qualquer instância que não seja réplica. Configurar uma réplica de leitura para alta disponibilidade é feito da mesma maneira que em uma instância principal. Saiba mais sobre como configurar a instância para alta disponibilidade.

Antes de promover uma réplica de leitura, se a principal ainda estiver disponível e atendendo aos clientes, faça o seguinte:

  1. Interrompa todas as gravações na instância principal.
  2. Verifique o status de replicação da réplica Uma opção para fazer isso é o painel de grupo de disponibilidade sempre ativados no SQL Server Management Studio (SSMS).
  3. Verifique se a réplica está replicando e verifique o atraso da replicação, por exemplo, conforme informado pela métrica seconds_behind_master.

Caso contrário, uma instância recém-promovida pode não ter algumas transações confirmadas na instância principal.

Para promover uma réplica a uma instância autônoma:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Selecione uma instância de réplica clicando no nome dela.
  3. Clique em Promover réplica.
  4. Clique em OK.

gcloud

gcloud sql instances promote-replica REPLICA_NAME
  

REST v1

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: promoteReplica" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name/promoteReplica

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

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Para executar esse comando cURL em um prompt de linha de comando, adquira um token de acesso. Basta usar o comando gcloud auth print-access-token. Use também o APIs Explorer na página "Instâncias: promoteReplica" para enviar a solicitação da API REST.

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

  • project-id: o ID do projeto
  • replica-name: o nome da instância da réplica

Método HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name/promoteReplica

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

Você receberá uma resposta JSON semelhante a esta:

Confirme se a instância promovida está configurada corretamente. Em particular, configure a instância para alta disponibilidade, se necessário.

Verificar o status da replicação

No momento, use consultas T-SQL ou SSMS para monitorar o status da replicação. Para ver mais informações, consulte os seguintes tópicos:

Resolver problemas

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.

A seguir