MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Dicas para gerenciar suas configurações de banco de dados


Nas últimas cinco postagens da série de blogs, abordamos a implantação de clustering/replicação (MySQL / Galera, MySQL Replication, MongoDB e PostgreSQL), gerenciamento e monitoramento de seus bancos de dados e clusters existentes, monitoramento de desempenho e integridade, como fazer sua configuração altamente disponível através do HAProxy e MaxScale e no último post, como se preparar para desastres agendando backups.

Desde o ClusterControl 1.2.11, fizemos grandes melhorias no gerenciador de configuração do banco de dados. A nova versão permite alterar parâmetros em vários hosts de banco de dados ao mesmo tempo e, se possível, alterar seus valores em tempo de execução.

Apresentamos o novo MySQL Configuration Management em uma postagem no blog Tips &Tricks, mas esta postagem será mais detalhada e cobrirá o Configuration Management no ClusterControl para MySQL, PostgreSQL e MongoDB.

Gerenciamento de configuração do ClusterControl


A interface de gerenciamento de configuração pode ser encontrada em Gerenciar> Configurações. A partir daqui, você pode visualizar ou alterar as configurações de seus nós de banco de dados e outras ferramentas que o ClusterControl gerencia. O ClusterControl importará a configuração mais recente de todos os nós e substituirá as cópias anteriores feitas. Atualmente não há dados históricos mantidos.

Se preferir editar manualmente os arquivos de configuração diretamente nos nós, você pode reimportar a configuração alterada pressionando o botão Importar.

E por último, mas não menos importante:você pode criar ou editar modelos de configuração. Esses modelos são usados ​​sempre que você implanta novos nós em seu cluster. É claro que quaisquer alterações feitas nos modelos não serão aplicadas retroativamente aos nós já implementados que foram criados usando esses modelos.

Gerenciamento de configuração do MySQL


Como mencionado anteriormente, o gerenciamento de configuração do MySQL recebeu uma revisão completa no ClusterControl 1.2.11. A interface agora é mais intuitiva. Ao alterar os parâmetros, o ClusterControl verifica se o parâmetro realmente existe. Isso garante que sua configuração não negue a inicialização do MySQL devido a parâmetros que não existem.

Em Gerenciar -> Configurações, você encontrará uma visão geral de todos os arquivos de configuração usados ​​no cluster selecionado, incluindo nós do balanceador de carga.

Usamos uma estrutura em árvore para visualizar facilmente os hosts e seus respectivos arquivos de configuração. Na parte inferior da árvore, você encontrará os modelos de configuração disponíveis para este cluster.

Alterando parâmetros


Suponha que precisamos alterar um parâmetro simples como o número máximo de conexões permitidas (max_connections), podemos simplesmente alterar esse parâmetro em tempo de execução.

Primeiro, selecione os hosts aos quais aplicar essa alteração.

Em seguida, selecione a seção que deseja alterar. Na maioria dos casos, você desejará alterar a seção MYSQLD. Se você quiser alterar o conjunto de caracteres padrão para o MySQL, terá que alterá-lo nas seções MYSQLD e cliente.

Se necessário, você também pode criar uma nova seção simplesmente digitando o nome da nova seção. Isso criará uma nova seção no my.cnf.

Assim que alterarmos um parâmetro e definirmos seu novo valor pressionando “Proceed”, o ClusterControl verificará se o parâmetro existe para esta versão do MySQL. Isso é para evitar que parâmetros inexistentes bloqueiem a inicialização do MySQL na próxima reinicialização.

Quando pressionarmos “proceed” para a alteração de max_connections, receberemos uma confirmação de que ela foi aplicada à configuração e definida em tempo de execução usando SET GLOBAL. Uma reinicialização não é necessária, pois max_connections é um parâmetro que podemos alterar em tempo de execução.

Agora suponha que queremos alterar o tamanho do bufferpool, isso exigiria uma reinicialização do MySQL antes de entrar em vigor:

E como esperado o valor foi alterado no arquivo de configuração, mas é necessário reiniciar. Você pode fazer isso efetuando login no host manualmente e reiniciando o processo do MySQL. Outra maneira de fazer isso no ClusterControl é usando o painel Nodes.

Reiniciando nós em um cluster Galera


Você pode executar uma reinicialização por nó selecionando “Reiniciar Nó” e pressionando o botão “Continuar”.

Ao selecionar “Initial Start” em um nó Galera, o ClusterControl esvaziará o diretório de dados do MySQL e forçará uma cópia completa desta forma. Isso é, obviamente, desnecessário para uma mudança de configuração. Certifique-se de deixar a caixa de seleção “inicial” desmarcada na caixa de diálogo de confirmação. Isso irá parar e iniciar o MySQL no host, mas dependendo da sua carga de trabalho e tamanho do bufferpool, isso pode demorar um pouco, pois o MySQL começará a liberar as páginas sujas do bufferpool do InnoDB para o disco. Estas são as páginas que foram modificadas na memória, mas não no disco.

Reiniciando nós em topologias MySQL Master-Slave


Para topologias mestre-escravo do MySQL, você não pode simplesmente reiniciar nó por nó. A menos que o tempo de inatividade do mestre seja aceitável, você terá que aplicar as alterações de configuração aos escravos primeiro e depois promover um escravo para se tornar o novo mestre.

Você pode passar pelos escravos um por um e executar um “Restart Node” neles.

Após aplicar as alterações em todos os escravos, promova um escravo para se tornar o novo mestre:

Depois que o escravo se tornar o novo mestre, você pode desligar e reiniciar o antigo nó mestre para aplicar a alteração.

Importando configurações


Agora que aplicamos a alteração diretamente no banco de dados, bem como no arquivo de configuração, levará até a próxima importação de configuração para ver a alteração refletida na configuração armazenada no ClusterControl. Se você for menos paciente, pode agendar uma importação imediata da configuração pressionando o botão “Importar”.

Gerenciamento de configuração do PostgreSQL


Para o PostgreSQL, o Configuration Management funciona um pouco diferente do MySQL Configuration Management. Em geral, você tem a mesma funcionalidade aqui:alterar a configuração, importar configurações para todos os nós e definir/alterar modelos.

A diferença aqui é que você pode alterar imediatamente todo o arquivo de configuração e gravar essa configuração de volta no nó do banco de dados.

Se as alterações feitas exigirem uma reinicialização, aparecerá um botão “Reiniciar” que permite reiniciar o nó para aplicar as alterações.

Gerenciamento de configuração do MongoDB


O Gerenciamento de Configuração do MongoDB funciona de maneira semelhante ao Gerenciamento de Configuração do MySQL:você pode alterar a configuração, importar configurações para todos os nós, alterar parâmetros e alterar modelos.

Alterar a configuração é bastante simples, usando a caixa de diálogo Alterar parâmetro (conforme descrito na seção "Alterando parâmetros"::

Uma vez alterado, você pode ver a ação pós-modificação proposta pelo ClusterControl na caixa de diálogo "Config Change Log":

Você pode então reiniciar os respectivos nós do MongoDB, um nó por vez, para carregar as alterações.

Considerações finais


Nesta postagem do blog, aprendemos sobre como gerenciar, alterar e modelar suas configurações no ClusterControl. Alterar os modelos pode economizar muito tempo quando você implantou apenas um nó em sua topologia. Como o modelo será usado para novos nós, isso evitará que você altere todas as configurações posteriormente. No entanto, para nós baseados em MySQL e MongoDB, alterar a configuração em todos os nós tornou-se trivial devido à nova interface de gerenciamento de configuração.

Como lembrete, abordamos recentemente na mesma série a implantação de clustering/replicação (MySQL / Galera, MySQL Replication, MongoDB e PostgreSQL), gerenciamento e monitoramento de seus bancos de dados e clusters existentes, monitoramento de desempenho e integridade, como tornar sua configuração altamente disponível através do HAProxy e MaxScale e no último post, como se preparar para desastres agendando backups.