Sobre a replicação no Cloud SQL

A replicação é a capacidade de criar cópias de uma instância do Cloud SQL 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 para a replicação incluem a migração de dados entre regiões.

Além disso, se uma instância original estiver corrompida, uma réplica poderá ser promovida a uma instância autônoma. Nesse caso, as réplicas existentes não considerariam essa instância como principal.

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.

Quando a primeira réplica é criada:

  • A instância principal é definida como o modelo de recuperação completo para todos os bancos de dados na instância principal.
  • Um disco temporário é criado e um backup completo é feito e armazenado no disco temporário. O disco temporário será excluído após a conclusão do processo de criação da réplica.

Se, no período de criação da primeira réplica, o usuário alternar para o modelo de recuperação simples, a criação da réplica falhará.

Os itens a seguir se aplicam aos bancos de dados adicionados à instância primária após a criação das réplicas:

  • Os bancos de dados são adicionados aos grupos de disponibilidade automaticamente e são preenchidos nas réplicas usando a propagação automática.
  • Cada criação de réplica invoca um backup completo (modelo de recuperação completo) de bancos de dados na instância principal. Os logins e objetos de servidor criados após a criação da réplica não são replicados.

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

Com a aplicação de conectores, é possível usar apenas o proxy de autenticação do Cloud SQL ou os conectores de linguagem do Cloud SQL para se conectar a instâncias do Cloud SQL. Com a aplicação do conector, o Cloud SQL rejeita conexões diretas ao banco de dados. Não é possível criar réplicas de leitura para uma instância com a aplicação de conector ativada. Da mesma forma, se uma instância tiver réplicas de leitura, não será possível ativar a aplicação do conector nela.

O Cloud SQL não oferece suporte à replicação entre dois servidores externos.

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. É possível ter até 8 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. Caso esteja se conectando a uma réplica usando um endereço IP particular, você não precisará criar mais uma conexão particular da VPC para a réplica, porque ela é herdada da instância principal.

Para informações sobre como criar uma réplica de leitura, consulte Como criar réplicas de leitura. Para informações sobre como gerenciar uma réplica de leitura, consulte Como gerenciar réplicas de leitura.

Como prática recomendada, coloque réplicas de leitura em uma zona diferente da instância principal quando usar a alta disponibilidade nessa instância. Essa prática garante que as réplicas de leitura continuem a operar quando a zona que contém a instância principal tiver uma interrupção. Consulte a Visão geral da alta disponibilidade para mais informações.

Como selecionar um tipo de máquina apropriado

As réplicas de leitura podem ter um tipo de máquina diferente da principal. É necessário monitorar métricas na instância, como o uso de CPU e memória, para garantir que a instância da réplica esteja dimensionada corretamente para a carga de trabalho, especialmente se ela for menor do que a instância principal. Uma instância de réplica que tiver um tamanho menor é mais propensa a um desempenho ruim, como eventos frequentes de memória insuficiente (OOM, na sigla em inglês).

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.

No caso de réplicas de leitura do SQL Server, presume-se que a réplica esteja na mesma rede virtual que a réplica principal ou que ela se comunique por meio de IP público.

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.

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

Réplicas de leitura em cascata

A replicação em cascata permite criar uma réplica de leitura sob outra réplica de leitura na mesma região ou em uma região diferente. As réplicas em cascata são implementadas usando grupos de disponibilidade distribuídos. Confira alguns casos de uso de réplicas em cascata:

  • Recuperação de desastres: é possível usar uma hierarquia em cascata de réplicas de leitura para simular a topologia da instância principal e das réplicas de leitura. Durante uma falha temporária, sua réplica de leitura selecionada é promovida para primária e as réplicas de leitura sob a nova primária continuam a ser replicadas e estão prontas para uso. A antiga instância principal se torna secundária da nova quando ela fica disponível. Você pode voltar para a antiga quando ela se recuperar usando uma troca. Para mais informações sobre o uso de réplicas em cascata para recuperação de desastres, consulte Sobre a recuperação de desastres.
  • Melhorias de desempenho: reduza a carga na instância principal descarregando o trabalho de replicação em várias réplicas de leitura.
  • Leituras em escala: é possível ter mais réplicas para compartilhar a carga de leitura.
  • Redução de custos: é possível reduzir custos de rede usando uma única réplica em cascata com replicação entre regiões em outras regiões.

Terminologia

  • Réplica em cascata: uma réplica de leitura entre regiões que pode ser usada para operações de failover de switchover e de réplica em recuperação de desastres avançada (DR) com o Cloud SQL para SQL Server.
  • Réplica em cascata: uma réplica de leitura que pode ter a própria réplica.
  • Níveis: é possível criar níveis de réplicas em uma hierarquia de réplicas em cascata. Por exemplo, se você adicionar quatro réplicas a uma instância, essas quatro réplicas estarão no mesmo nível.
  • Instâncias semelhantes: várias réplicas que se replicam da mesma instância principal. As semelhantes estão no mesmo nível na hierarquia de réplicas. Uma réplica pode ter oficialmente até oito semelhantes.
  • Réplica de folha: uma réplica de leitura que não tem réplicas próprias. Em uma hierarquia de replicação com vários níveis, a réplica de folha é o último nível.
  • Promover: uma ação que converte uma réplica, em qualquer nível na hierarquia, em uma instância principal. Quando promovida, a hierarquia de réplica em cascata da réplica é retida.

Configurar réplicas em cascata

As réplicas em cascata permitem adicionar réplicas de leitura a qualquer réplica atual. É possível adicionar até quatro níveis de réplicas, incluindo a instância principal. Quando você promove a réplica no topo de uma hierarquia de réplicas em cascata, ela se torna uma instância principal e as réplicas em cascata continuam a ser replicadas.

Para mais informações sobre como configurar grupos de disponibilidade distribuídos, consulte Configurar um grupo de disponibilidade distribuído sempre ativado.

Restrições

  • Não é possível excluir uma réplica que tenha réplicas sob ela. Para excluir a réplica, comece com as réplicas de folha e siga para cima na hierarquia.
  • A dependência de região circular não é compatível. Para ter a réplica de uma réplica em cascata na mesma região da instância principal, a réplica em cascata também precisa estar na mesma região.
  • É necessário criar réplicas em cascata em uma região diferente da instância principal. Em seguida, é possível criar réplicas em cascata na mesma região da réplica em cascata.

Casos de uso da replicação

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

Nome Principal 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
  • Melhorar o desempenho da leitura
  • Exportar de réplicas
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
Replicação do SQL Server Instância externa ao Cloud SQL Instância do Cloud SQL para SQL Server
  • Caminho de migração para o Cloud SQL
  • Replicação de um servidor externo para o Cloud SQL
  • Replicação do Cloud SQL para um servidor externo
  • Replicação entre instâncias do Cloud SQL
  • Replicação de dados para o Google Cloud
  • Destino do Analytics

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.
  • O preço de uma réplica de leitura entre regiões é igual ao de criar uma nova instância do Cloud SQL na região. Consulte Preços de instâncias do Cloud SQL e selecione a região apropriada. Além do custo normal associado à instância, uma réplica entre regiões gera cobranças de transferência de dados entre regiões referentes aos registros de replicação enviados da instância primária para a de réplica, conforme descrito em Preços de saída da rede.

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

Tópico Discussão
Backups Você não pode configurar backups na réplica.
Núcleos e memória As réplicas de leitura podem usar um número diferente de núcleos e uma quantidade diferentes de memória daqueles da instância primária.
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 excluir a réplica Quando você exclui uma réplica, não há impacto no status da instância principal.
Como excluir um banco de dados replicado É possível excluir um banco de dados do SQL Server replicado usando o console do Google Cloud ou o comando gcloud. A exclusão é propagada automaticamente para as réplicas. Não é possível excluir um banco de dados do SQL Server replicado usando os comandos T-SQL.
Failover Uma instância principal pode fazer o failover para uma réplica somente se a réplica for uma réplica de DR. As réplicas de leitura não podem fazer failover de forma alguma durante uma interrupção.
Balanceamento de carga O Cloud SQL não fornece balanceamento de carga entre as réplicas.
Janelas de manutenção No entanto, as réplicas de leitura compartilham janelas de manutenção com a instância principal. As réplicas seguem as configurações de manutenção da instância principal, incluindo a janela de manutenção, a reprogramação e o período de negação de manutenção. Durante a manutenção, o Cloud SQL atualiza todas as réplicas de leitura antes de atualizar a instância principal.
Várias réplicas de leitura É possível criar até 8 réplicas de leitura para uma única instância primária.
IP privado Caso esteja se conectando a uma réplica usando um endereço IP particular, você não precisará criar mais uma conexão particular da VPC para a réplica, porque ela é herdada da instância principal.
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, é necessário promover ou excluir todas as réplicas da instância.
Configurações As configurações da instância principal são propagadas para a réplica, incluindo alterações nos dados sobre os usuários que podem acessar a instância.
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 (), mas não é possível interromper a réplica como em uma instância primária.
Como fazer upgrade de uma réplica É possível que as réplicas de leitura passem por um upgrade que as interrompa a qualquer momento.
Tabelas do usuário Não é possível fazer alterações na réplica. Todas as modificações do usuário precisam ser realizadas na instância primária.

Limitações

  • Esse recurso se aplica apenas às seguintes versões do Cloud SQL para SQL Server:

    • SQL Server 2017 Enterprise
    • SQL Server 2019 Enterprise
    • SQL Server 2022 Enterprise
  • Os logins não são propagados para uma réplica.

  • É preciso monitorar a réplica usando o T-SQL e/ou o SQL Server Management Studio.

  • Antes de excluir um banco de dados, é preciso fechar as conexões com ele.

  • Quando você cria uma réplica, a instância principal não pode conter bancos de dados no modo de usuário único. Caso contrário, a criação da réplica falhará.

A seguir