MySQL Cluster

Antes de iniciar este post gostaria de informar que a tarefa aqui é apenas levantar o ambiente da imagem1. Não vou entrar nos detalhes sobre funcionalidades de cada serviço, deixarei este assunto para um próximo post.



Instalei os pacotes MySQL-Cluster-client-gpl-7.3.2.1.rhel5.x86_64.rpm e MySQL-Cluster-embedded-gpl-7.3.2.1.rhel5.x86_64.rpm em todos os servidores. A diferença está apenas na função que cada um vai assumir para o cluster funcionar.

No servidor de gerenciamento, configurei apenas o serviço ndb_mgmd. Em alguns rápidos testes, percebi que o cluster não funciona caso ele não esteja rodando!

O seu principal arquivo de configuração é o config.ini que no caso do CentOS 5.7 64bits está localizado em /usr/mysql-cluster/config.ini. A imagem abaixo descreve como configurei.


Depois de configurado, vamos iniciá-lo, para isso digite: ndb_mgm no terminal. O ndb_mgm informa quantos servidores estão conectados, assim como também a versão do mysql utilizada em cada servidor. Digite: ndb_mgm -e show e confira.


No servidor de banco de dados, após instalarmos os dois pacotes listados no inicio deste post, devemos configurar o arquivo my.cnf localizado por default no CentOS em /usr/my.cnf.

Gostaria de abrir um parênteses, porque como usuário do debian e suas derivações, estava acostumado com o arquivo my.cnf em outro diretório. Esta foi inclusive uma grande dificuldade que enfrentei durante o processo.

É preciso informar dois parâmetros adicionais na tag [mysqld] e criarmos as tags [mysql-cluster] e [ndb]. Como podem reparar, como este ambiente é apenas de teste, o my.cnf não possui nenhuma outra configuração.


Importante lembrar que os passos acima relacionados ao servidor de banco de dados 1, devem ser repetidos para o banco de dados 2. Feito isso, devemos iniciar os serviços: ndbd e MySQL em ambos os bancos de dados.
ndbd -c 10.0.2.120
/etc/init.d/mysql start --ndbcluster

O servidor que roda o ndb_mgm deve identificar as conexões, como mostra a imagem abaixo.

Apos iniciar os serviços, este deve ser o resultado!
Curiosidade: Reparem nas informações do conky(direita)

Quando os ndbd's e os mysql's estiverem rodando, vá até o servidor de banco de dados e crie um banco utilizando o engine: ndbcluster. Reparou que este banco foi automaticamente replicado no segundo servidor? agora crie as tabelas e comece a utilizar!

Muito importante informar que apenas os bancos de dados cujo a engine for ndbcluster vão ser replicados. Não consegui fazer funcionar utilizando innoDB, MyISAM ou qualquer outro.

Entendo que este post poderia ter mais detalhes! não tem porque ainda estou fazendo testes nesse ambiente. Optei por escrever apenas para documentar alguns passos.


Referencias:

https://dev.mysql.com/downloads/cluster/#downloads
http://imasters.com.br/artigo/11673/mysql/cluster-no-mysql-parte-01/
http://imasters.com.br/artigo/11901/mysql/cluster-no-mysql-parte-2/
http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster.html
http://bugs.mysql.com/bug.php?id=21743

Postagens mais visitadas deste blog

Auditoria de compartilhamento Samba

Análise de Vulnerabilidades com o OpenVas em 12 passos

Cartão de Visita com Inkscape