Acerca da replicação no Cloud SQL

A replicação é a capacidade de criar cópias de uma instância do Cloud SQL e transferir trabalho para as cópias.

Introdução

O principal motivo para usar a replicação é dimensionar a utilização de dados numa base de dados sem degradar 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 danificada, uma réplica pode ser promovida a uma instância autónoma (neste caso, as réplicas existentes não considerariam essa instância como principal).

Quando se refere a uma instância do Cloud SQL, a instância replicada é denominada instância principal e as cópias são denominadas réplicas de leitura. A instância principal e as réplicas de leitura residem todas no Cloud SQL.

Quando a primeira réplica é criada:

  • A instância principal está definida para o modelo de recuperação completo para todas as bases de dados na instância principal.
  • É criado um disco temporário, e é feita uma cópia de segurança completa e armazenada no disco temporário. O disco temporário é eliminado após a conclusão do processo de criação da réplica.

Se, no período de tempo da primeira criação de réplicas, o utilizador mudar para o modelo de recuperação simples, a criação de réplicas falha.

O seguinte aplica-se às bases de dados adicionadas à instância principal após a criação das réplicas:

  • As bases de dados são adicionadas automaticamente aos grupos de disponibilidade e são preenchidas nas réplicas através da inicialização automática.
  • Cada criação de réplica invoca uma cópia de segurança completa (modelo de recuperação completo) das bases de dados na instância principal. Os inícios de sessão e os objetos do servidor criados após a criação da réplica não são replicados.

O Cloud SQL suporta os seguintes tipos de réplicas:

Ao usar a aplicação de conetores, pode aplicar a utilização apenas do proxy Auth do Cloud SQL ou dos conetores de linguagem do Cloud SQL para ligar a instâncias do Cloud SQL. Com a aplicação do conetor, o Cloud SQL rejeita ligações diretas à base de dados. Não pode criar réplicas de leitura para uma instância com a aplicação do conector ativada. Da mesma forma, se uma instância tiver réplicas de leitura, não pode ativar a aplicação de conectores para a instância.

O Cloud SQL não suporta a replicação entre dois servidores externos.

Réplicas de leitura

Usa uma réplica de leitura para descarregar trabalho de uma instância do Cloud SQL. A réplica de leitura é uma cópia exata da instância principal. Os dados e outras alterações na instância principal são atualizados quase em tempo real na réplica de leitura.

As réplicas de leitura são só de leitura; não pode escrever nelas. A réplica de leitura processa consultas, pedidos de leitura e tráfego de estatísticas, reduzindo assim a carga na instância principal. Pode ter até 8 réplicas de leitura por instância principal.

Estabelece ligação a uma réplica diretamente através do respetivo nome de ligação e endereço IP. Se estiver a estabelecer ligação a uma réplica através de um endereço IP privado, não precisa de criar uma ligação privada de VPC adicional para a réplica, porque a ligação é herdada da instância principal.

Para obter informações sobre como criar uma réplica de leitura, consulte o artigo Criar réplicas de leitura. Para ver informações sobre a gestão de uma réplica de leitura, consulte o artigo Gerir réplicas de leitura.

Como prática recomendada, coloque as réplicas de leitura numa zona diferente da instância principal quando usar a HA na instância principal. Esta prática garante que as réplicas de leitura continuam a funcionar quando a zona que contém a instância principal tem uma indisponibilidade. Consulte a Vista geral da alta disponibilidade para mais informações.

Selecionar um tipo de máquina adequado

As réplicas de leitura podem ter um número diferente de vCPUs e memória em relação ao primário. Deve monitorizar as métricas na sua instância, como a utilização de CPU e memória, para garantir que a instância de réplica tem o tamanho correto para a respetiva carga de trabalho, especialmente se for mais pequena do que a instância principal. Uma instância de réplica com tamanho inferior ao necessário é mais propensa a um desempenho fraco, como eventos frequentes de falta de memória (OOM).

Capacidade de armazenamento em réplicas de leitura

Quando o tamanho de uma instância principal é alterado, o tamanho de todas as respetivas réplicas de leitura também é alterado, se necessário, para que tenham, pelo menos, a mesma capacidade de armazenamento que a instância principal atualizada.

Réplicas de leitura entre regiões

A replicação entre regiões permite-lhe criar uma réplica de leitura numa região diferente da instância principal. Crie uma réplica de leitura entre regiões da mesma forma que cria uma réplica na região.

No caso das réplicas de leitura do SQL Server, pressupõe-se que a réplica está na mesma rede virtual que a réplica principal ou que comunicam através do IP público.

Réplicas entre regiões:

  • Melhore o desempenho de leitura disponibilizando réplicas mais perto da região da sua aplicação.
  • Oferecer capacidade de recuperação de desastres adicional para proteção contra uma falha regional.
  • Permitem-lhe migrar dados de uma região para outra.

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

Réplicas de leitura em cascata

A replicação em cascata permite-lhe criar uma réplica de leitura sob outra réplica de leitura na mesma região ou numa região diferente. As réplicas em cascata são implementadas através de grupos de disponibilidade distribuídos. Seguem-se alguns exemplos de utilização de réplicas em cascata:

  • Recuperação de desastres: pode usar uma hierarquia em cascata de réplicas de leitura para simular a topologia da sua instância principal e das respetivas réplicas de leitura. Durante uma indisponibilidade, a réplica de leitura selecionada é promovida a principal, e as réplicas de leitura na nova principal continuam a ser replicadas e estão prontas para utilização. O domínio principal antigo torna-se um domínio secundário do novo domínio principal quando este fica disponível. Pode voltar a usar o domínio principal antigo assim que for recuperado através de uma comutação. Para mais informações sobre a utilização de réplicas em cascata para recuperação de desastres, consulte o artigo Acerca da recuperação de desastres.
  • Melhoria do desempenho: reduza a carga na instância principal transferindo o trabalho de replicação para várias réplicas de leitura.
  • Escalar leituras: pode ter mais réplicas para partilhar a carga de leitura.
  • Redução de custos: pode reduzir os custos de rede usando uma única réplica em cascata com replicação entre regiões noutras regiões.

Terminologia

  • Réplica em cascata: uma réplica de leitura entre regiões que pode ser usada para operações de comutação e replicação de failover em recuperação de desastres (RD) avançada com o Cloud SQL para SQL Server.
  • Réplica em cascata: uma réplica de leitura que pode ter a sua própria réplica.
  • Níveis: pode criar níveis de réplicas numa hierarquia de réplicas em cascata. Por exemplo, se adicionar quatro réplicas a uma instância, essas quatro réplicas estão ao mesmo nível.
  • Instâncias secundárias: várias réplicas que são replicadas a partir da mesma instância principal. Os elementos irmãos estão no mesmo nível na hierarquia da réplica. Uma réplica pode ter oficialmente até oito irmãos.
  • Réplica folha: uma réplica de leitura que não tem réplicas próprias. Numa hierarquia de replicação de vários níveis, a réplica de folha é o último nível.
  • Promover: uma ação que converte uma réplica, a qualquer nível na hierarquia, numa instância principal. Quando é promovida, a hierarquia de réplicas em cascata da réplica é mantida.

Configure réplicas em cascata

As réplicas em cascata permitem-lhe adicionar réplicas de leitura a quaisquer réplicas existentes. Pode adicionar até quatro níveis de réplicas, incluindo a instância principal. Quando promove a réplica na parte superior de uma hierarquia de réplicas em cascata, esta torna-se uma instância principal e as respetivas réplicas em cascata continuam a ser replicadas.

Para mais informações sobre a configuração de grupos de disponibilidade distribuídos, consulte o artigo Configurar um grupo de disponibilidade distribuído Always On.

Restrições

  • Não pode eliminar uma réplica que tenha réplicas abaixo. Para eliminar a réplica, tem de começar pelas réplicas de folhas e avançar na hierarquia.
  • A dependência de regiões circulares não é suportada. Para ter a réplica de uma réplica em cascata na mesma região que a instância principal, a réplica em cascata também tem de estar na mesma região.
  • Tem de criar réplicas em cascata numa região diferente da região da instância principal. Em seguida, pode criar réplicas em cascata na mesma região que a réplica em cascata.

Exemplos de utilização de replicação

Os seguintes exemplos de utilização aplicam-se a cada tipo de replicação.

Nome Primary Réplica Vantagens e exemplos de utilização Mais informações
Ler réplica Instância do Cloud SQL Instância do Cloud SQL
  • Capacidade de leitura adicional
  • Alvo do Analytics
  • Melhore o desempenho de leitura
  • Exporte de réplicas
Réplica de leitura entre regiões Instância do Cloud SQL Instância do Cloud SQL
  • Capacidade de leitura adicional
  • Alvo do Analytics
  • Capacidade de recuperação de desastres adicional
  • Melhore o desempenho de leitura
  • Migre 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
  • Alvo do Analytics

Faturação

  • Uma réplica de leitura é cobrada à mesma taxa que uma instância padrão do Cloud SQL. Não existe qualquer custo para a replicação de dados.
  • O preço de uma réplica de leitura entre regiões é o mesmo que o de criar uma nova instância do Cloud SQL na região. Consulte os preços das instâncias do Cloud SQL e selecione a região adequada. Além do custo normal associado à instância, uma réplica entre regiões incorre em encargos de transferência de dados entre regiões para registos de replicação enviados da instância principal para a instância 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 Debate
Cópias de segurança Não pode configurar cópias de segurança 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 de memória dos da instância principal.
Eliminar a instância principal Antes de poder eliminar uma instância principal, tem de promover todas as respetivas réplicas de leitura a instâncias autónomas ou eliminar as réplicas de leitura.
Eliminar a réplica Quando elimina uma réplica, não existe qualquer impacto no estado da instância principal.
Eliminar uma base de dados replicada Pode eliminar uma base de dados do SQL Server replicada através da Google Cloud consola ou do comando gcloud, e a eliminação propaga-se automaticamente às réplicas. Não é possível eliminar uma base de dados do SQL Server replicada através de comandos T-SQL.
Failover Uma instância principal só pode fazer failover para uma réplica se esta for uma réplica de recuperação de desastres. As réplicas de leitura não conseguem fazer failover de forma alguma durante uma indisponibilidade.
Balanceamento de carga O Cloud SQL não oferece equilíbrio de carga entre réplicas.
Períodos de manutenção As réplicas de leitura partilham os períodos de manutenção com a instância principal. As réplicas seguem as definições de manutenção da instância principal, incluindo o período de manutenção, o reagendamento e o período de manutenção recusado. Durante a manutenção, o Cloud SQL atualiza primeiro todas as réplicas de leitura antes de atualizar a instância principal.
Várias réplicas de leitura Pode criar até 8 réplicas de leitura para uma única instância principal.
IP privado Se estiver a estabelecer ligação a uma réplica através de um endereço IP privado, não precisa de criar uma ligação privada de VPC adicional para a réplica, uma vez que é herdada da instância principal.
Restaurar a instância principal Não pode restaurar a instância principal de uma réplica enquanto a réplica existir. Antes de restaurar uma instância a partir de uma cópia de segurança ou executar uma recuperação num momento específico, tem de promover ou eliminar todas as respetivas réplicas.
Definições As definições da instância principal são propagadas para a réplica, incluindo alterações aos dados sobre os utilizadores que podem aceder à instância.
Parar uma réplica Não pode stop uma réplica. Pode restart ou delete, mas não pode pará-la como faria com uma instância principal.
Atualizar uma réplica As réplicas de leitura podem sofrer uma atualização disruptiva em qualquer altura.
Tabelas de utilizadores Não pode fazer alterações na réplica. Todas as alterações de utilizadores têm de ser feitas na instância principal.

Limitações

  • Esta funcionalidade aplica-se apenas às seguintes versões do Cloud SQL para SQL Server:

    • SQL Server 2017 Enterprise
    • SQL Server 2019 Enterprise
    • SQL Server 2022 Enterprise
  • Os inícios de sessão não são propagados para uma réplica.

  • Tem de monitorizar a sua réplica através do T-SQL e/ou do SQL Server Management Studio.

  • Antes de eliminar uma base de dados, tem de fechar as ligações à base de dados.

  • Quando cria uma réplica, a instância principal não pode conter bases de dados no modo de utilizador único. Caso contrário, a criação da réplica falha.

  • Não é possível configurar a replicação numa instância configurada com replicação externa.

O que se segue?