Como gerenciar réplicas

Nesta página, você verá uma descrição de como desativar e ativar a replicação de uma réplica. Também verá como promover uma réplica a uma instância autônoma ou exclui-la. Para mais informações sobre como trabalhar com réplicas de leitura, consulte Requisitos e dicas para configurar réplicas.

Como desativar a 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. Ao desativar ou reativar a replicação, a réplica é reiniciada.

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. É possível reativar a replicação na réplica desativada, excluí-la ou promovê-la a uma instância autônoma. Não é possível interromper a réplica.

Para desativar a replicação:

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Abra a instância de uma réplica clicando em seu nome.
  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

Para executar esse comando cURL em um prompt de linha de comando, receba 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://www.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:

Como ativar a 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. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

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

gcloud

gcloud sql instances patch [REPLICA_NAME] --enable-database-replication

REST

Para executar esse comando cURL em um prompt de linha de comando, receba 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://www.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:

Como promover uma réplica

A promoção de uma réplica para uma instância principal autônoma do Cloud SQL é uma ação irreversível. Após a promoção, não é possível converter uma instância de volta em uma réplica de leitura. Você promove uma réplica de leitura como parte da recuperação de desastres, quando a instância principal original fica permanentemente indisponível.

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

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

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

gcloud

gcloud sql instances promote-replica [REPLICA_NAME]
  

REST

Para executar esse comando cURL em um prompt de linha de comando, receba 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://www.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. Especificamente, é preciso ativar backups automatizados e avaliar se há necessidade de configurar a alta disponibilidade na instância.

Como verificar o status da replicação

Ao fazer login em uma instância de réplica individual usando um cliente de administração, você recebe detalhes sobre a replicação, incluindo o status e as métricas. Ao usar o Console do Google Cloud ou a ferramenta de linha de comando gcloud, você recebe um breve resumo da replicação.

Observação: não é possível verificar o status da replicação de uma réplica que tenha uma instância principal fora do Cloud SQL usando o Console do Google Cloud.

Para verificar o status da replicação:

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione uma instância de réplica clicando no nome dela.
  3. O status da replicação é fornecido em um banner na parte superior da página.

gcloud

Na instância da réplica, verifique o status da replicação com:

gcloud sql instances describe [REPLICA_NAME]

Na saída, procure as propriedades databaseReplicationEnabled e masterInstanceName.

Em uma instância principal, verifique se há réplicas com:

gcloud sql instances describe [MASTER_INSTANCE_NAME]

Na saída, procure a propriedade replicaNames.

Cliente MySQL

  1. Conecte-se à réplica com um cliente MySQL.

    Para mais informações, consulte Opções de conexão para aplicativos externos,

  2. Verifique o status da réplica:
    SHOW SLAVE STATUS \G
  3. Procure as métricas a seguir na saída do comando:
    • Master_Host: o nome da instância principal.
    • Slave_IO_Running: indica se a linha de execução de E/S de leitura da instância principal está em execução. Ele precisa ser Yes quando a replicação é iniciada.
    • Slave_SQL_Running: indica se a linha de execução SQL de eventos no registro de redirecionamento está em execução. Ele precisa ser Yes quando a replicação é iniciada.
    • Seconds_Behind_Master: o número de segundos em que a linha de execução da réplica SQL está atrasada no processamento do registro binário mestre. Ele precisa ser O ou um número pequeno de segundos.

    Para conferir mais detalhes sobre a saída do comando, consulte Verificar o status da replicação.

Como solucionar problemas

Para este erro... O problema pode ser... Tente o seguinte...
A replicação foi interrompida. A réplica pode ter atingido o limite máximo de armazenamento. Ative a opção de aumento do armazenamento automático na página de configuração da instância em Tipo de máquina e armazenamento.
O atraso da replicação é consistentemente alto. A linha de execução SQL na réplica não consegue acompanhar a linha de execução de E/S.

Alguns tipos de consultas e cargas de trabalho causam um alto atraso de replicação temporário ou permanente em um determinado esquema. Estas são algumas das causas comuns do atraso de replicação:

  • Consultas lentas na réplica. Elas são detectáveis ao ativar log_slow_slave_statements e corrigi-las.
  • Todas as tabelas precisam ter uma chave primária/exclusiva. Toda atualização em uma tabela sem uma chave primária/exclusiva faz verificações completas de tabela na réplica.
  • Consultas que usam muita CPU, como DELETE ... WHERE field < 50000000, causam atraso de replicação com replicação baseada em linha, já que um grande número de atualizações é acumulado na réplica. É possível acelerar a carga de entrada na instância principal ou aumentar o tamanho da instância para elevar a memória (RAM) do sistema.
  • Se a réplica estiver atrasada por muito tempo na instância principal, uma possível opção será fragmentar o banco de dados para que as operações de gravação sejam compartilhadas entre várias instâncias principais.
Não foi possível criar a réplica de leitura: unknown error. A API Service Networking não está ativada. Verifique os registros. Desative e reative a API Service Networking se o erro real for: set Service Networking service account as servicenetworking.serviceAgent role on consumer project. Essa ação cria a conta de serviço necessária para continuar com o processo.
A linha de execução da réplica gera um evento UPDATE_DISK_SIZE. O disco da instância principal fica cheio durante a criação da réplica, e ela falha.Aumente o tamanho do disco da instância principal e tente criar a réplica de leitura novamente. Assim, a réplica gera uma instância com um tamanho de disco apropriado.

A seguir