Os pools de leitura do Cloud SQL oferecem suporte ao balanceamento de carga para suas grandes cargas de trabalho de leitura.
O que são pools de leitura?
Um pool de leitura é uma coleção de instâncias de réplica de leitura usadas para distribuir suas grandes cargas de trabalho de leitura. Essas cargas de trabalho podem ser redirecionadas da instância principal para o pool de leitura para reduzir a carga na instância principal.
Cada réplica de leitura no pool de leitura é chamada de nó do pool de leitura.
É possível escalonar o pool de leitura de várias maneiras:
- Escalonar horizontalmente: escalone a capacidade de balanceamento de carga horizontalmente modificando o número de nós do pool de leitura no pool de leitura. Cada pool de leitura é compatível com 1 a 7 nós.
- Escalonar verticalmente para cima ou para baixo: escalone verticalmente a capacidade de balanceamento de carga modificando o tipo de máquina associado a um nó do pool de leitura. Depois de definida, a configuração é aplicada de maneira uniforme a cada nó do pool de leitura.
Quando você modifica as configurações de nó do pool de leitura, como armazenamento, conectividade ou flags de configuração do banco de dados, as mudanças são aplicadas automaticamente de maneira uniforme em cada nó do pool de leitura.
Acessar um pool de leitura por um único endpoint de leitura
O pool de leitura pode ser acessado por um único endpoint de leitura com um endereço IP imutável. As conexões feitas pelo endpoint são redirecionadas automaticamente para um dos nós do pool de leitura. Quando você quer que o pool de leitura seja reduzir escalonamento horizontal ou escalonar horizontalmente, os aplicativos que estavam conectados a esse endpoint de leitura único não precisam ser reconfigurados, mesmo que você possa criar novos nós de pool de leitura no pool de leitura ou excluir os anteriores.
Cada nó do pool de leitura também tem o próprio endereço IP. Embora não seja recomendado como uma abordagem eficiente para acessar seus dados, é possível usar esses endereços IP para resolver problemas de desempenho de nós individuais do pool de leitura.
Para mais informações sobre como recuperar as informações de conexão do pool de leitura ou dos nós do pool de leitura (endereços IP ou uma string de conexão), consulte Ver informações do pool de leitura.
Replicação
A replicação do pool de leitura do Cloud SQL é implementada usando grupos de disponibilidade de escalonamento de leitura do SQL Server.
Para mais informações, confira Sobre a replicação.
Escalonamento automático do pool de leitura
É possível configurar o pool de leitura para ser redimensionado automaticamente e se adaptar às mudanças nas necessidades de carga de trabalho do aplicativo. Para mais informações, consulte Escalonamento automático do pool de leitura.
Características do pool de leitura
As seguintes características se aplicam:
- Os pools de leitura não têm uma API exclusiva compatível com o Cloud SQL. Qualquer
operação para criar, configurar ou visualizar um pool de leitura é feita usando a
API de instância do Cloud SQL.
Por exemplo, ao usar o
gcloud CLIpara criar um pool de leitura, use o comandogcloud sql instances create. Da mesma forma, para verificar o número de nós do pool de leitura configurados em um pool de leitura, use o comandogcloud sql instances describe. - Um pool de leitura com dois ou mais nós é coberto pelo Contrato de nível de serviço (SLA).
- Os nós do pool de leitura sempre residem na mesma região, conforme especificado pelo usuário. O Google Cloud alterna a residência do nó do pool de leitura entre todas as zonas da região.
- Uma instância primária pode ter um ou mais pools de leitura.
- As operações a seguir causam inatividade em menos de um segundo:
- Escalonar horizontalmente (adicionar ou remover nós do pool de leitura).
- Escalonamento vertical (alteração do tipo de máquina dos nós no pool).
- Converter uma réplica de leitura zonal em um pool de leitura.
- Um pool de leitura recebe manutenção antes da instância principal, de forma semelhante às réplicas de leitura. Assim como as réplicas de leitura, os pools de leitura recebem manutenção durante a janela de manutenção da instância principal.
- Cada nó do pool de leitura tem as mesmas métricas disponíveis que uma réplica de leitura do Cloud SQL.
- Ao usar
gcloudou o console do Google Cloud para descrever os detalhes de um projeto, o nome do pool de leitura é listado, mas os nomes dos nós individuais do pool de leitura não são.
Contagem máxima de nós do pool de leitura por instância principal
É possível atribuir no máximo sete réplicas de leitura por instância principal.
O número combinado de réplicas de leitura e nós de pool de leitura replicados da mesma instância principal não pode exceder sete.
Como calcular a contagem máxima de nós do pool de leitura por instância principal
Conceitualmente, uma réplica de leitura é como um único nó de pool de leitura.
É possível converter uma réplica de leitura em um pool de leitura e, em seguida, alterar o número de nós do pool de leitura para um número maior que um.
Em seguida, é possível atribuir o escalonamento automático ao pool de leitura para que a contagem de nós do pool de leitura seja ajustada dinamicamente para cima ou para baixo de acordo com as necessidades da carga de trabalho.
Quando o escalonamento automático está ativado em um pool de leitura, é necessário indicar uma contagem máxima válida de nós para o pool de leitura. Esse número, combinado com o número de réplicas de leitura existentes que estão sendo replicadas da mesma instância principal ou de nós de pool de leitura que pertencem a outros pools de leitura que estão sendo replicados da mesma instância principal, não pode exceder sete.
Por exemplo, se uma instância principal tiver duas réplicas de leitura, um pool de leitura com dois nós e um segundo pool de leitura com o escalonamento automático ativado, a contagem máxima de nós do segundo pool de leitura não poderá ser maior que três.
Para mais informações, consulte Escalonamento automático do pool de leitura.
Limitações
Considere as seguintes limitações:
- Os pools de leitura estão disponíveis apenas para instâncias do Cloud SQL Enterprise Plus na nova arquitetura de rede. A instância principal associada a um pool de leitura também precisa ser uma instância da edição Cloud SQL Enterprise Plus.
- É possível atribuir no máximo sete réplicas de leitura por instância principal. Para mais informações, consulte Contagem máxima de nós.
- A recuperação de desastres avançada não é compatível com pools de leitura. As instâncias primárias não podem usar pools de leitura e réplicas em cascata.
- O tráfego é disponibilizado pelos nós do pool de leitura com base na integridade do banco de dados, mas independentemente do atraso de replicação nesse nó do pool de leitura. O tráfego pode ser disponibilizado por um nó do pool de leitura com atraso, mesmo que outro nó do pool de leitura esteja disponível sem atraso. Um banco de dados é considerado íntegro se o processo do banco de dados estiver ativo e puder responder a consultas, mas não há requisitos sobre a atualização dos dados que estão sendo disponibilizados.
- Não há garantia de que uma única sessão lógica se conecte a vários nós do pool de leitura.
- Os seguintes tipos de atualizações não são compatíveis:
- Embora os pools de leitura ainda recebam atualizações de manutenção do Cloud SQL, não é possível atualizar o pool de leitura ou a instância principal associada para uma nova versão principal do banco de dados.
- Iniciar ou interromper nós do pool de leitura.
- Além das operações que não são compatíveis com réplicas de leitura, as
operações a seguir não são compatíveis com pools de leitura:
- Ativar e desativar a replicação
- Active Directory gerenciado pelo cliente
- Microsoft AD gerenciado
- Promover réplica
- Reiniciar
- Importar
- Exportar
- Failover
- Recriptografar
- Clonar
- Os certificados SSL/TLS com CA compartilhada ou gerenciada pelo cliente não podem ser usados com um pool de leitura.
- Um pool de leitura não pode ser replicado para outra instância, por exemplo, uma réplica em cascata ou outro pool de leitura.
- Um pool de leitura precisa ser replicado diretamente de uma instância primária. Não pode ser uma réplica em cascata.
- Ao criar ou escalonar um pool de leitura, é necessário aguardar a conclusão das operações anteriores de criação,
reduzir escalonamento horizontal ou escalonar horizontalmente horizontal associadas ao pool de leitura. Essa
restrição se aplica a qualquer outro pool de leitura associado à mesma instância
principal. Se você quiser escalonar vários pools de leitura associados à mesma
instância principal, aguarde a conclusão das operações de escalonamento associadas ao
primeiro pool de leitura antes de começar a escalonar o próximo. Se você
emitir solicitações simultâneas, poderá receber o seguinte erro:
Operation failed because another operation was already in progress.. - Somente uma réplica zonal localizada na mesma região que a principal pode ser convertida para uso em um pool de leitura.
- Os nós do pool de leitura podem apresentar níveis variados de atraso de replicação, o que pode resultar em leituras inconsistentes. Se o aplicativo exigir alta consistência de leitura, recomendamos escalonar verticalmente uma única réplica de leitura em vez de usar um pool de leitura.
- O Cloud SQL repara automaticamente os nós do pool de leitura nas seguintes
condições:
- Quando a instância está inativa.
- Quando a replicação está corrompida.
Nesses cenários, se você criar logins adicionais na instância principal, não será possível fazer login usando esses logins depois que o nó do pool de leitura for recriado. Verifique se o login usado para o endpoint de leitura está disponível na instância principal.
- A Microsoft não oferece suporte à replicação de objetos de servidor.
Todos os objetos no nível do servidor criados em uma réplica de leitura também precisam ser criados e gerenciados na instância principal. Esses objetos não são replicados automaticamente.
Esse comportamento se aplica aos seguintes cenários, embora não seja uma lista completa:
- Reparar um pool de leitura.
- Converter uma réplica de leitura em um pool de leitura.
- Objetos no nível do servidor, como logins, ficam inacessíveis.
- Se você criar um login que existe na réplica de leitura original, mas não na instância principal, ele não será replicado para o novo nó do pool de leitura.
- Converter um pool de leitura em uma réplica de leitura.
- Se você criar um login em um pool de leitura, e não na instância principal, e depois desativar o pool de leitura, o login deixará de existir.
Alguns exemplos de objetos no nível do servidor que não são replicados incluem:
- Logins.
- Configuração do servidor vinculado.
- Arquivos de auditoria de banco de dados criados pela auditoria do SQL Server.
- Sessões XEvents e as configurações delas.
Para mais informações, consulte a documentação da Microsoft.
- O certificado de criptografia transparente de dados (TDE, na sigla em inglês) está bloqueado para operações de importação e exportação.
- Sempre importe e exporte certificados de TDE da instância principal. Os certificados de TDE serão replicados automaticamente para todas as réplicas de leitura no pool de leitura, não importa o tipo de réplica.
- As operações de importação e exportação de TDE não são compatíveis. Sempre importe o certificado de TDE da instância principal.