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

Atualizações de tempo de inatividade zero facilitadas com o ClusterControl

"Mantenha seu banco de dados atualizado para a versão mais recente - é para sua segurança" é algo que você pode ouvir com frequência como um bom conselho e prática recomendada quando se trata de gerenciamento de banco de dados. Por outro lado, atualizar seu banco de dados pode ser uma tarefa demorada. Mesmo uma atualização de versão secundária requer que você teste completamente a atualização em um ambiente de teste antes de atualizar sua configuração de produção. Então, qual é o grande problema? Se você está apenas ficando para trás em uma versão menor, isso não deveria importar, certo? Bem, pode não... até que aconteça. E você está realmente preparado para correr esse tipo de risco?

No início deste ano, uma nova vulnerabilidade potencialmente perigosa foi identificada no Galera Cluster (CVE-2021-27928). À primeira vista, vemos que a gravidade foi marcada como alta e, quando começamos a aprofundar o problema, ele realmente parece grave. Parece que um usuário SUPER pode executar qualquer código arbitrário alterando as variáveis ​​wsrep_provider e wsrep_notify_cmd no tempo de execução. Ele permite que o usuário carregue a biblioteca .so e aponte para um script que o servidor executará. Como você pode imaginar, esta não é uma boa situação. Claro, você precisa ter acesso ao usuário SUPER, e você precisaria ter algo disponível para executar no nó do banco de dados, mas o fato de Galera poder ser configurado para executar código arbitrário como um usuário 'mysql' é ruim o suficiente em seu ter.

Como de costume, em casos como esses, as correções foram criadas e novas versões do software, não afetadas pela vulnerabilidade, foram enviadas. Esse problema específico foi corrigido no MariaDB 10.5.9, 10.4.18, 10.3.28 e 10.2.37, bem como no Percona XtraDB Cluster 5.6.51-28.46, Percona XtraDB Cluster 5.7.33-31.49 e Percona XtraDB Cluster 8.0.22-13.1. Tudo parece estar de volta ao normal. Direita?

Errado. Existem inúmeros sistemas em produção que ainda não foram atualizados para a nova versão não afetada. A equipe de suporte da Many9es está em contato com muitos ambientes de banco de dados disponíveis e estamos trabalhando constantemente com clientes em potencial para ajudá-los a migrar para um ambiente gerenciado pelo ClusterControl. Vemos todos os tipos de MySQL (e não apenas MySQL) sendo executados em versões desatualizadas, às vezes até versões que chegaram ao fim da vida útil e não estão mais recebendo atualizações de segurança. Esse não deve ser o caso, especialmente se você for um usuário do ClusterControl.

O ClusterControl vem com um conjunto de recursos que o ajudarão a manter-se atualizado com todas as correções de segurança. Vamos dar uma olhada:

Primeiro, o ClusterControl vem com Relatórios Operacionais, sendo um deles o Relatório de Atualização de Pacotes:

Como todos os relatórios operacionais do ClusterControl, o Package Upgrade Report pode ser programado para ser executado regularmente e, em seguida, entregue por e-mail. Ele conterá informações sobre as versões de pacotes instaladas nos nós e se há algum tipo de atualização que deve ser realizada:

O Relatório de Atualização de Pacotes apresenta uma lista de pacotes que devem ser atualizados para todos bancos de dados, balanceadores de carga, correções de segurança e quaisquer outros pacotes instalados no nó. Para todos os pacotes do sistema, a solução é atualizá-los usando métodos padrão (apt, yum). Quando se trata de bancos de dados e balanceadores de carga, o ClusterControl vem com funcionalidade que permite realizar a atualização da versão secundária diretamente da interface do usuário.

Antes de irmos para lá, vamos supor que o banco de dados precisa ser atualizado. Você não deseja apenas prosseguir e executar a atualização às cegas - isso pode causar problemas para seu aplicativo. Não deveria - versões menores não quebram a compatibilidade com versões anteriores (exceto quando você usa o MySQL 8.0 - então sim, você pode esperar qualquer coisa ao passar de 8.0.x para 8.0.x+1); no entanto, há sempre algum risco envolvido. O que você deve fazer primeiro é testar a atualização em um ambiente separado.

Temos um cluster MariaDB Galera simples com ProxySQL e Keepalived:

Gostaríamos de construir um cluster de teste para que possamos testar a atualização processo. Com o ClusterControl, é tão fácil quanto usar o trabalho Criar cluster de réplica:

Podemos obter os dados atualizados do cluster existente ou podemos usar os dados de um backup.

Também temos que escolher um nó de origem no cluster de produção:

Então temos que passar por um assistente de implantação regular, escolhendo a versão e fornecedor do banco de dados, definindo a senha do root e assim por diante. Concluímos passando os nós nos quais o cluster será instalado.

Como resultado, você verá um novo cluster na lista com um marca clara de que está replicando fora do cluster de produção. Uma coisa que vale a pena mencionar, na configuração padrão, o ClusterControl usará as versões mais recentes dos pacotes para criar o cluster de réplica. Se você quiser verificar apenas as consultas, isso é suficiente. Se você quiser passar por todo o processo de atualização, precisará definir as versões mais antigas dos pacotes MySQL para instalar uma versão antiga (e depois desafixá-las e testar a atualização).

De uma forma ou de outra, após testes bem-sucedidos, você eventualmente desejará realizar a atualização. O ClusterControl pode ajudá-lo a fazer isso:

Em Gerenciar -> Atualizações, você encontrará uma interface do usuário para realizar a atualização .

Você pode usar “Check For New Packages” para atualizar o banco de dados de pacotes. Também podemos escolher quais nós queremos atualizar e quais serviços:

Basta confirmar e pronto - ClusterControl irá realizar a atualização e obter o última versão dos pacotes.

Como você pode ver, o ClusterControl torna fácil e simples manter seus bancos de dados atualizados. A única etapa que você deve manipular manualmente é o teste adequado. Caso contrário - todo o resto pode ser realizado para você pelo ClusterControl. Interessado em saber mais sobre como o ClusterControl pode ajudá-lo a gerenciar seu banco de dados com eficiência? Experimente gratuitamente por 30 dias.