MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

O que é MariaDB TX? Como gerenciar o novo fork MariaDB MySQL!


Você já deve ter ouvido falar sobre o MariaDB TX e deve ter se perguntado o que é?

Existe uma diferença entre ele e o MariaDB Server 10.3?

Nesta postagem do blog, gostaríamos de fornecer uma visão geral do MariaDB TX e do que se trata.

Resumindo:MariaDB TX é uma assinatura na qual MariaDB combina várias ofertas criando um banco de dados transacional completo.

O banco de dados usado no MariaDB TX é o MariaDB Server 10.3, que também inclui o Galera Cluster para replicação multimestre síncrona. Para a camada proxy MariaDB TX usa MaxScale.

Vamos nos concentrar um pouco nessas duas ofertas principais, analisando seus recursos.

Servidor MariaDB 10.3



Ele evoluiu para um fork completo, que implementa novas funcionalidades em cima do que a Oracle implementa no upstream. O MariaDB 10.3 vem com uma lista de recursos voltados para empresas. O MariaDB Server 10.3 não é mais um substituto para o MySQL.

Compatibilidade com Oracle


O MariaDB 10.3 vem com SQL_MODE=ORACLE, que melhora a compatibilidade da sintaxe SQL usada no MariaDB 10.3 com Oracle PL/SQL. Os seguintes recursos de compatibilidade estão incluídos no MariaDB TX:
  • Parâmetros de procedimento armazenado
  • Construção de procedimento armazenado não ANSI
  • Sintaxe do cursor
  • Sintaxe de loop
  • Declaração de variável
  • Herança de tipo de dados (%TYPE, %ROWTYPE)
  • Exceções de estilo PL/SQL
  • Sinônimos para tipos básicos de SQL (VARCHAR2, NUMBER, …)

Isso permite uma migração mais fácil de seus aplicativos de bancos de dados Oracle para o MariaDB TX.

Até 80% do código Oracle PL/SQL agora pode ser executado no MariaDB sem a necessidade de introduzir alterações; isso afeta seriamente a curva de aprendizado geral e reduz o tempo necessário para reescrever o código legado para ser executado no MariaDB TX.

O que também é importante ter em mente, o MariaDB TX vem com um pacote de suporte e você terá acesso a consultores que poderão compartilhar as melhores práticas de migração com você ou até mesmo ajudá-lo diretamente no processo de planejamento para tornar a transição ainda menos problemática.

Melhorias no SQL


O MariaDB TX também nos traz melhorias na sintaxe SQL, incluindo novos recursos que devem ser muito úteis para desenvolvedores como funções de janela ou expressões de tabela comum. Além disso, uma subcláusula temporal pode ser muito útil, pois permite acessar várias versões de uma determinada linha com base em um ponto específico no tempo.

Todas as características estão listadas abaixo:
  • Subcláusulas temporais (por exemplo, AS OF)
  • Funções agregadas definidas pelo usuário
  • Funções de agregação de conjunto ordenado
  • INTERSECT/EXCEPT
  • Construtores de valor de tabela
  • Tempo limite de bloqueio DDL/SELECT
  • Expressões de tabela comuns
  • Funções da janela
  • Funções JSON

Mecanismos de armazenamento externo


O mecanismo padrão do MariaDB é o InnoDB, mecanismo de armazenamento transacional e completo.

É adequado para a maioria das cargas de trabalho e funciona muito bem para a carga de trabalho OLTP (Online Transaction Processing). No entanto, não é o único mecanismo de armazenamento disponível no MariaDB TX. Você obtém acesso ao mecanismo Spider, que pode ser usado para particionar seus dados em várias instâncias do MariaDB, mantendo o suporte para transações XA.

Outro mecanismo de armazenamento que você pode usar é o MyRocks, um mecanismo otimizado para armazenamento e redução de amplificação de gravação. Testado em batalha no Facebook, baseado em LSN, serve perfeitamente para armazenar grandes volumes de dados em armazenamento SSD, reduzindo os custos implementando forte compactação e reduzindo o número de gravações necessárias para uma determinada carga de trabalho (e, assim, minimizando o desgaste do SSD ).

Conjunto Galera


O MariaDB TX oferece fácil acesso ao Galera Cluster, uma replicação multimestre virtualmente síncrona. O Galera Cluster pode ser usado para projetar clusters de WAN altamente disponíveis.

O Galera Cluster é construído sobre o protocolo de reconhecimento de quorum, que garante que o particionamento da rede não seja um problema e que o cérebro dividido não seja mais um problema. O Galera Cluster fornece meios de provisionamento automático de nós novos ou com falha, reduzindo o espaço de gerenciamento.

Recursos operacionais


O MariaDB TX também fornece alguns recursos relacionados às tarefas operacionais. Instant ADD COLUMN ajuda a reduzir o impacto de uma das alterações de esquema mais comuns. Colunas invisíveis ajudam a manter a compatibilidade entre o código antigo e o novo. Índices em colunas virtuais aumentarão o desempenho.

Mariabackup


O MariaDB TX implementa criptografia de dados em repouso que inclui criptografia de logs binários. Para garantir que os usuários do MariaDB TX possam se beneficiar de backups sem bloqueios, o Mariabackup foi criado. É um fork aprimorado do Xtrabackup, que não funcionou corretamente com os recursos de criptografia MariaDB TX. Agora, você pode aproveitar seus backups físicos e dinâmicos com o Mariabackup enquanto seus dados são criptografados com segurança.

MariaDB MaxScale


Além do MariaDB 10.3, o MariaDB TX vem com MaxScale 2.3, um proxy com reconhecimento de SQL que pode ser usado para construir ambientes altamente disponíveis. Ele vem com vários recursos e gostaríamos de passar pelos mais importantes deles aqui.

Failover automático


MaxScale pode ser usado para rastrear a integridade do nó MariaDB mestre e, caso ele falhe, execute um failover rápido e automático. O failover automatizado é crucial na construção de uma solução altamente disponível que pode se recuperar prontamente da falha.

Divisão de leitura-gravação


A divisão de leitura-gravação é um recurso crítico para permitir o dimensionamento de leitura. Basta que o aplicativo se conecte ao MaxScale e ele detectará a topologia, determinará qual MariaDB atua como mestre e quais atuam como escravos. Em seguida, ele encaminhará o tráfego de acordo com isso. As consultas SELECT serão enviadas para os escravos, as gravações serão enviadas para o mestre. Tudo acontece automaticamente, a topologia é monitorada o tempo todo e, caso ocorra um failover, o tráfego será redirecionado com base na alteração.

Roteamento de consulta transparente


MaxScale, sendo o ponto de entrada do tráfego no MariaDB TX, pode ser usado para fazer uma divisão de leitura/gravação. Às vezes, isso ainda não é suficiente e seria ótimo ter uma maneira de controlar para onde determinada consulta deve ser enviada. Isso é possível no MaxScale - você pode combinar as consultas usando expressões regulares e decidir se elas devem ser enviadas para o mestre ou para os escravos. Isso pode ajudar em alguns casos específicos em que a consulta SELECT precisa ser executada no mestre devido a problemas de leitura após gravação ou apenas porque ela precisa ter a visualização mais atualizada do conjunto de dados.

Cache do resultado da consulta


Para melhorar o desempenho, o cache de consulta é obrigatório. O cache de consulta disponível no MariaDB simplesmente não funcionará em ambientes altamente simultâneos, pois impõe a serialização das consultas, reduzindo seriamente o desempenho, mesmo para cargas de trabalho somente leitura. Usar solução externa para cache nem sempre é viável:afinal você vai acabar com mais um banco de dados para manter, proteger e manter saudável. Pode ser melhor usar o MaxScale como cache, supondo que você já o use para outras funcionalidades.

Bloqueio de consultas


Às vezes, os bancos de dados sofrem com uma consulta ineficiente, o que gera alta carga no sistema. Pode ser que reescrever essa consulta levaria muito tempo (alguém teria que reescrevê-la, testar a alteração na preparação e, finalmente, implantar na produção), um tempo que você não tem. O MaxScale pode ajudá-lo aqui com recursos como bloqueio de consultas, que basicamente permitem impedir que uma determinada consulta atinja o banco de dados. Esse recurso também pode ser usado para construir um firewall SQL - elimine todas as consultas que correspondem a padrões que apontam para injeção de SQL ou outras atividades potencialmente perigosas e maliciosas.

Como você pode ver, o MariaDB TX vem com uma lista de recursos e software projetados para trabalhar em conjunto e construir um banco de dados escalável e altamente disponível para processamento de dados transacionais.

Monitoramento e gerenciamento de empresas para MariaDB TX


O ClusterControl suporta totalmente o MariaDB TX. Você pode implantar facilmente o MariaDB Server 10.3 e o MaxScale 2.3. ClusterControl suporta configurações de replicação MariaDB, bem como MariaDB Galera Cluster.

Contanto que você tenha conectividade SSH de sua instância do ClusterControl para os nós nos quais deseja implantar o MariaDB TX, poderá fazer isso com apenas alguns cliques.

Primeiro você precisa definir como o ClusterControl alcançará os nós MariaDB TX.

Em seguida, escolha MariaDB como fornecedor e vá para uma das versões suportadas. Passe a senha de root do MariaDB.

Finalmente, decida sobre a topologia. Você pode implantar o MariaDB TX em uma configuração master - master, active - standby com slaves adicionais. A replicação usará MariaDB GTID.

Para o MariaDB Galera Cluster o primeiro passo é exatamente o mesmo, então você só precisa escolher o MariaDB como fornecedor, decidir a versão e definir nós no MariaDB Galera Cluster:
Com os clusters implantados, você pode usar o poder do ClusterControl para monitorar e gerenciar seus clusters MariaDB TX.
Por exemplo, adicionar balanceadores de carga MaxScale está a apenas alguns cliques de distância:

Uma vez implantado, você pode gerenciar seu MaxScale usando o ClusterControl:

Você também pode dimensionar seu cluster Galera adicionando novos nós Galera ou escravos de replicação assíncrona. Você pode adicionar escravos ou escravos atrasados ​​às suas configurações de replicação ou realizar alterações de topologia promovendo um escravo a mestre e reescravizando o restante da configuração. O ClusterControl monitorará o cluster e tentará recuperar nós ou clusters com falha caso ocorra um incidente. Para backups, o ClusterControl pode ajudá-lo a definir um agendamento de backup usando mysqldump e Mariabackup para que você possa se beneficiar facilmente dos recursos de criptografia do MariaDB TX.

Para a parte de monitoramento e tendências, o ClusterControl pode ser usado em um modo sem agente:

Ou pode ser usado junto com o Prometheus e agentes para fornecer informações ainda melhores sobre o que está acontecendo no cluster MariaDB TX.

Esperamos que esta postagem de blog introdutória tenha ajudado você a entender o que é o MariaDB TX e como o ClusterControl pode ajudá-lo a gerenciá-lo.