Sessões de banco de dados podem ser interrompidas quando uma réplica de leitura é promovida para primária, uma versão secundária é atualizada ou as especificações são alteradas. As aplicações precisam verificar o status da sessão e reagir às alterações determinando: se uma conexão ou transação de banco de dados foi interrompida, como compensar as transações e como reconstruir os contextos da sessão.
Para resolver esses problemas, o TaurusDB fornece ALT, que impede interrupções de conexão e transação de banco de dados durante a alternância do sistema de banco de dados. Não há necessidade de compensar transações ou reconstruir contextos de sessão, garantindo a continuidade da aplicação.
Arquitetura
Figura 1 Arquitetura
ALT pode ser ativada para suas conexões de aplicação. Quando você se conecta a uma instância de proxy e, em seguida, promove uma réplica de leitura para primária, altera especificações ou atualiza a versão secundária, o sistema pode replicar suas sessões de back-end. Depois que um limite de transação segura for atingido, as sessões de back-end serão totalmente clonadas no nó de destino, e as cargas de trabalho nem sequer serão notadas.
Um limite de transação segura refere-se ao status de que uma transação na sessão atual foi confirmada, mas a próxima transação não foi iniciada. Um limite de transação segura pode ser alcançado em qualquer uma das seguintes situações:
Precauções
Tabela 1 Precauções
Categoria |
Precaução |
Restrições de versão |
- A versão do kernel da instância de TaurusDB deve ser 2.0.54.240600 ou posterior.
- A versão do kernel da instância de proxy deve ser 2.24.06.000 ou posterior.
|
Restrições de uso |
- Para usar o ALT, envie uma solicitação escolhendo Service Tickets > Create Service Ticket no canto superior direito do console de gerenciamento.
- A instância do TaurusDB tem pelo menos uma réplica de leitura. Uma instância de proxy foi criada e a instância do TaurusDB deve ser conectada por meio do endereço de proxy.
- Instâncias de proxy no modo somente leitura não suportam ALT.
- Instâncias de proxy no modo primário/em espera não oferecem suporte a ALT.
- Instâncias do TaurusDB de nó único ou multiprimárias não oferecem suporte a ALT.
- Quando você ativar ALT pela primeira vez, a instância de TaurusDB será reinicializada. Ativar ou desativar ALT fará com que uma instância de proxy seja reinicializada. Depois que o ALT for desativado para todas as instâncias de proxy, a instância de TaurusDB também será reinicializada.
- O intervalo de tempo limite de drenagem de transação para ALT é controlado por rds_tac_drain_timeout. Este parâmetro tem como padrão 5s e varia de 1s a 60s.
- Aumente esse intervalo para cargas de trabalho pesadas, várias declarações preparadas ou transações demoradas.
- Diminuir este intervalo não é recomendado. Se houver conexões que não drenam transações dentro do intervalo de tempo limite de drenagem de transação configurado, a ALT não entrará em vigor para essas conexões.
- Durante uma alternância de ALT, as conexões em espera serão estabelecidas no novo host por um breve período, igual em número às do nó primário original. Certifique-se de que o número máximo de conexões da instância do TaurusDB seja pelo menos o dobro do número atual de conexões. Para alterar o número máximo de conexões, você precisa avaliar as especificações da instância e o uso de memória. Para obter detalhes, consulte Qual é o número máximo de conexões com uma instância de TaurusDB?
- ALT suporta instruções preparadas. Durante uma alternância, os contextos das instruções preparadas são reconstruídos. Se houver um grande número de instruções preparadas, a taxa de sucesso da alternância pode ser afetada.
- É aconselhável realizar uma alternância de ALT fora do horário de pico. Se o nó primário e as réplicas de leitura estiverem sobrecarregados, a taxa de sucesso da alternância poderá ser afetada.
- Para obter detalhes sobre restrições de sintaxe e função de instâncias de proxy, consulte Precauções para instâncias de proxy.
|
Funções não suportadas |
- A habilitação de ALT faz com que sua instância perca o suporte para alguns valores de variáveis de sistema.
- innodb_ft_user_stopword_table: só pode ser definido como NULL.
- transaction_write_set_extraction: só pode ser definido como OFF.
- profiling: não pode ser ajustado para 1 ou ON.
- ALT não suporta Transparent Data Encryption (TDE).
- ALT não está disponível quando qualquer um dos seguintes recursos de proxy está ativado:
- Pool de conexões em nível de sessão
- Qualquer coluna que contenha mais de 16 MB de dados
- Qualquer conjunto de resultados de consulta que contenha mais de 16 MB de dados
- Cache de instruções preparado
- ALT não suporta tabelas temporárias criadas por usuários.
- ALT não é suportada nos seguintes cenários em que um limite de transação segura não pode ser alcançado:
- Os blocos de transação do InnoDB não são confirmados em tempo hábil.
- Existem bloqueios de tabela não liberados, bloqueios de usuário, bloqueios de backup e bloqueios de binlog.
- As transações XA não são confirmadas ou revertidas.
- O ALT provavelmente falhará se uma alternância, atualização de versão secundária ou alteração de especificação ocorrer com frequência dentro de um curto período de tempo.
- Se ALT estiver ativado, as instruções preparadas não poderão ser transferidas nos seguintes cenários:
- O cursor é aberto e não fechado em uma instrução preparada.
- A variável de uma instrução preparada salvou o tipo LONG_DATA.
|