Replicação no Cloud SQL

A replicação é a capacidade de criar cópias de uma instância do Cloud SQL ou de um banco de dados local e distribuir o trabalho para as cópias.

Introdução

O principal motivo para usar a replicação é a possibilidade de escalonar o uso dos dados em um banco de dados sem prejudicar o desempenho. Outros motivos incluem:

  • migrar dados entre regiões;
  • migrar dados entre plataformas;
  • migrar dados de um banco de dados local para o Cloud SQL.

Além disso, uma réplica poderá ser promovida se a instância original for corrompida.

Ao se referir a uma instância do Cloud SQL, a instância que é replicada é chamada de instância primária, e as cópias são chamadas de réplicas de leitura. A instância primária e as réplicas de leitura residem no Cloud SQL.

Ao se referir a um banco de dados local, o cenário de replicação é chamado de replicação a partir de um servidor externo. Nesse cenário, o banco de dados que é replicado é o servidor do banco de dados de origem. As cópias que residem no Cloud SQL são chamadas de réplicas do Cloud SQL. Há também uma instância que representa o servidor do banco de dados de origem no Cloud SQL chamada de instância de representação de origem.

O Cloud SQL é compatível com os seguintes tipos de réplica:

Réplicas de leitura

Você usará uma réplica de leitura para distribuir o trabalho de uma instância do Cloud SQL. A réplica de leitura é uma cópia exata da instância primária. Os dados e outras alterações na instância primária são atualizados quase em tempo real na réplica de leitura.

As réplicas de leitura são somente para leitura. Portanto, não é possível fazer gravações nelas. A réplica de leitura processa consultas, solicitações de leitura e tráfego de análise, reduzindo a carga na instância primária.

Também é possível que as réplicas de leitura tenham mais CPUs e memória do que a instância principal, mas não menos. É possível ter até 10 réplicas de leitura por instância primária.

Você se conecta a uma réplica diretamente usando o nome de conexão e o endereço IP dela.

Para informações sobre como criar uma réplica de leitura, consulte este link. Para informações sobre como gerenciar uma réplica de leitura, consulte esta página.

Réplicas de leitura entre regiões

A replicação entre regiões permite criar uma réplica de leitura em uma região diferente da instância primária. Você cria uma réplica de leitura entre regiões da mesma maneira que cria uma réplica na região.

Réplicas entre regiões:

  • melhoram o desempenho de leitura disponibilizando réplicas mais próximas da região do aplicativo;
  • fornecem capacidade adicional de recuperação de desastres para oferecer proteção contra uma falha regional;
  • permitem migrar dados de uma região para outra com um tempo de inatividade mínimo.

Consulte Como promover réplicas para migração regional ou recuperação de desastres e veja mais informações sobre réplicas entre regiões.

Réplicas de leitura externas

Réplicas de leitura externas são instâncias externas do MySQL replicadas de uma instância primária do Cloud SQL. Por exemplo, uma instância do MySQL em execução no Compute Engine é considerada uma instância externa.

As réplicas de leitura externas têm as seguintes restrições:

  • A replicação para uma instância do MySQL hospedada por outra plataforma de nuvem talvez não seja possível. Verifique a documentação do outro fornecedor.
  • Se a replicação for interrompida por algumas horas, por causa de uma interrupção da rede ou do servidor, por exemplo, a réplica ficará atrasada em relação à instância primária. Assim que a réplica se reconectar à instância principal, ela perderá o atraso e começará a replicar novamente. Porém, se a replicação for interrompida por um tempo maior que o período de preservação dos registros de replicação do Cloud SQL (sete backups), você precisará excluir a réplica e criar uma nova.
  • Os dados transmitidos da instância primária para a réplica externa são cobrados como saída de rede. Consulte a página de preços para ver os valores de saída de rede para seu tipo de instância do Cloud SQL.

Casos de uso da replicação

Os casos de uso a seguir se aplicam a cada tipo de replicação.

Nome Linha Réplica Benefícios e casos de uso Mais informações
Réplica de leitura Instância do Cloud SQL Instância do Cloud SQL
  • Capacidade de leitura adicional
  • Destino do Analytics
Réplica de leitura entre regiões Instância do Cloud SQL Instância do Cloud SQL
  • Capacidade de leitura adicional
  • Destino do Analytics
  • Capacidade adicional de recuperação de desastres
  • Melhorar o desempenho da leitura
  • Migrar dados entre regiões
Réplica de leitura externa Instância do Cloud SQL Instância do MySQL externa ao Cloud SQL
  • Latência reduzida para conexões externas
  • Destino do Analytics
  • Caminho de migração para outras plataformas
Replicação a partir de um servidor externo Instância do MySQL externa ao Cloud SQL Instância do Cloud SQL para MySQL
  • Caminho de migração para o Cloud SQL
  • Replicação de dados para o Google Cloud Platform
  • Destino do Analytics

Pré-requisitos para criar uma réplica de leitura

Antes de criar uma réplica de leitura usando uma instância primária do Cloud SQL, essa instância precisa atender aos seguintes requisitos:

  • Os backups automáticos precisam estar ativados.
  • A geração de registros binários precisa estar ativada, o que exige que a recuperação pontual também esteja ativada. Saiba mais sobre o impacto desses registros.
  • Pelo menos um backup precisa ser criado após a ativação da geração de registros binários.

Requisitos adicionais para a réplica externa:

  • A versão do MySQL da réplica precisa ser igual ou mais nova do que à da instância principal. Saiba mais (em inglês).
  • Por questões de segurança, configure o SSL/TLS na instância principal. Saiba mais.

Impacto da ativação da geração de registros binários

É preciso ativar a recuperação pontual para ativar a geração de registros binários na instância primária para ter compatibilidade com as réplicas de leitura. Fazer isso causa os seguintes impactos:

  • Sobrecarga no desempenho

    O Cloud SQL usa a replicação baseada em linhas com as sinalizações sync_binlog=1 e innodb_support_xa=true do MySQL. Por isso, um disco extra fsync (em inglês) é obrigatório para cada operação de gravação, o que reduz o desempenho.

  • Sobrecarga no armazenamento

    O armazenamento dos registros binários é cobrado com a mesma taxa dos dados regulares. Os registros binários são automaticamente truncados para a idade do backup automático mais antigo. Atualmente, o Cloud SQL mantém os sete backups automatizados mais recentes e todos os backups sob demanda. O tamanho dos registros binários e, portanto, do valor cobrado, depende da carga de trabalho. Por exemplo, uma carga de trabalho com muita gravação consome mais espaço do registro binário do que uma de muita leitura.

    Use o comando do MySQL SHOW BINARY LOGS (em inglês) para ver o tamanho dos registros binários.

    Quando os backups são realizados, os registros são armazenados neles com os dados.

  • Reinicialização da instância

    Quando você ativa ou desativa a geração de registros binários, a instância é reiniciada. As conexões do banco de dados são perdidas e precisam ser restabelecidas.

Faturamento

  • Uma réplica de leitura é cobrada segundo a mesma taxa de uma instância padrão do Cloud SQL. Não há cobrança pela replicação de dados.
  • A instância primária nunca é desativada porque ela sempre mantém uma conexão com a réplica. Esse cenário pode aumentar o faturamento gerado pela instância principal. Saiba mais.
  • Para réplicas externas, os dados que fluem da instância primária para a réplica externa são cobrados como saída de rede. Consulte a página de preços para ver os valores de saída de rede para seu tipo de instância do Cloud SQL.
  • Além do custo normal associado às instâncias do Cloud SQL, uma réplica entre regiões gera cobranças de saída de rede entre regiões para registros de replicação enviados pela instância primária para a réplica, conforme descrito em Preços de saída de rede.
  • O preço de uma réplica de leitura entre regiões é igual ao de criar uma nova instância na região. Consulte Preços de instâncias do Cloud SQL e selecione a região apropriada.

Referência rápida para réplicas de leitura do Cloud SQL

Tópico Discussão
Alta disponibilidade As réplicas de leitura não garantem nem oferecem alta disponibilidade.
Failover Não é possível fazer o failover de uma instância principal para uma réplica de leitura. Além disso, as réplicas de leitura não realizam qualquer tipo de failover durante uma interrupção.
Janelas de manutenção Não é possível definir janelas de manutenção em réplicas de leitura. Além disso, elas não compartilham as janelas de manutenção com a instância principal. A manutenção pode ocorrer a qualquer momento na réplica de leitura. Porém, ela não acontece no mesmo horário que a manutenção da instância principal.
Upgrades que causam interrupções É possível que as réplicas de leitura passem por um upgrade que as interrompa a qualquer momento.
Desempenho Quando você cria uma réplica de leitura, ela não impacta o desempenho ou a disponibilidade da instância principal.
Várias réplicas de leitura É possível criar até 10 réplicas de leitura para uma única instância primária.
Balanceamento de carga O Cloud SQL não fornece balanceamento de carga entre as réplicas. Use o pooling de conexões e distribua consultas entre as réplicas.
Configurações As configurações MySQL da instância principal são propagadas para a réplica, incluindo a senha raiz e as mudanças feitas na tabela do usuário. As mudanças de nível não são propagadas para a réplica.
Tipos de máquina É possível que as réplicas de leitura sejam um tipo de máquina (ou nível) diferente da instância principal. Também é possível que elas tenham mais CPUs e memória do que a instância principal, mas não menos.
Tabelas do usuário Não é possível fazer modificações na tabela do usuário na réplica. Todas as modificações do usuário precisam ser realizadas na instância primária.
Backups Não é possível configurar backups na réplica.
Como restaurar a instância principal Enquanto uma réplica existir, não será possível restaurar a instância principal dela. Antes de restaurar uma instância de um backup ou executar uma recuperação pontual, é preciso promover ou excluir todas as réplicas da instância.
Como excluir a instância principal Antes de excluir uma instância principal, você precisa promover todas as réplicas de leitura dela para instâncias independentes ou remover as réplicas.
Como desativar a geração de registros binários Antes de desativar os registros binários em uma instância primária, você precisa promover ou excluir todas as réplicas de leitura dela.
Como criar uma réplica de uma réplica Não é possível criar uma réplica de uma réplica.
Como interromper uma réplica Não é possível interromper (stop) uma réplica, apenas instâncias principais. No entanto, ela pode ser reiniciada (restart), excluída (delete) ou desativada (disable replication), mas não é possível interromper a réplica como em uma instância primária.

A seguir