Cluster MySQL - Instalação e configuração

Nesse artigo aprenderemos como configurar um cluster MySQL com três nós, um nó de gerenciamento e dois nós de armazenamento.

[ Hits: 55.402 ]

Por: André Costa em 25/10/2010


Como desligar e reiniciar o cluster



No servidor de gerenciamento (MGM) use os comandos abaixo.

Esse comando faz com que o ndb_mgm, ndb_mgmd e quaisquer processos ndbd encerre:

# ndb_mgm -e shutdown

Comando para restartar o cluster:

# ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Nos servidores de armazenamento (NDBD) use os comandos abaixo em cada nó "BD2" e "BD3".

Comando para startar o "ndbd":

# ndbd

Comando para startar o MySQL:

# service mysql start

Se tudo foi configurado corretamente, o cluster deve estar funcionando.

Digite o comando abaixo no servidor de gerenciamento (MGM) para administração dos nós:

# ndb_mgm

-- NDB Cluster -- Management Client --
ndb_mgm> show

Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @172.16.3.242 (Version: 5.0.90, Nodegroup: 0)
id=3 @172.16.3.243 (Version: 5.0.90, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.16.3.241 (Version: 5.0.90)

[mysqld(API)] 3 node(s)
id=4 @172.16.3.242 (Version: 5.0.90)
id=5 @172.16.3.243 (Version: 5.0.90)

ndb_mgm>


Criar base de teste em um dos servidores de armazenamento (NDBD), "BD2" ou "BD3":

# mysql
mysql> use test;
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;

Como a tabela "ctest" foi criada utilizando o engine de banco de dados "NDBCLUSTER", todas as modificações nos dados realizados em qualquer um dos nós será replicada automaticamente para os demais.

Podemos fazer um teste simples incluindo uma linha na tabela "ctest" em um dos nós e verificar que esta linha foi automaticamente enviada para a tabela "ctest" do outro nó.

mysql> INSERT INTO ctest () VALUES (1);
mysql> SELECT * FROM ctest

Referências


Meu agradecimento ao Viva o Linux por me dar a oportunidade de compartilhar o meu conhecimento com outros companheiros.

Abraços a todos.

Página anterior    

Páginas do artigo
   1. Introdução
   2. 2° passo - Configuração dos servidores de armazenamento (NDBD) node 1 e node 2
   3. Como desligar e reiniciar o cluster
Outros artigos deste autor

Servidor de e-mail Postfix + MySQL + Dovecot + Cyrus

Webmail Squirrelmail e Roundcubemail, Clamav e SpamAssassin integrados no MTA Postfix

Leitura recomendada

Sincronização segura entre bancos de dados MySQL utilizando SJA

Gerenciando banco de dados com MySQL (Parte 1)

Introdução ao MySQL

Slackware + MariaDB (MySQL): importando e exportando arquivos TXT

Blindando o MySQL: Configurações de segurança

  
Comentários
[1] Comentário enviado por fs.schmidt em 26/10/2010 - 12:15h

Parabéns, exclente solução e artigo !

[2] Comentário enviado por removido em 26/10/2010 - 14:30h

Muito Bom seu artigo...

Mas tenho uma dúvida? O acesso ao banco se dará pelo servidor de Gerenciamento?

E se o servidor de Gerenciamento falhar, estiver down, como fica o acesso das aplicações que estão usando este acesso?

Mais uma vez parabéns...

Bruno Lima®

[3] Comentário enviado por andrecostall em 26/10/2010 - 16:28h

Opa, muito obrigado Bruno !!!

As aplicações podem se conectar tanto no servidor 172.16.3.242 (BD2) como no servidor 172.16.3.243 (BD3). Mas se eles tentarem se conectar ao servidor que possui as ferramentas administrativas 172.16.3.241 (BD2) eles não conseguiram se conectar, ele somente faz o gerenciamento do Cluster.
Caso um nó do cluster não esteja "up" isso não será um problema para a aplicação, uma vez que os outros nós funcionaram de forma independente. Quando um nó estiver "down" e quando subir o serviço NDBD ele irá procurar as informações perdidas e tentará sincronizar os dados.

Há, tem uma ferramenta chamada "MySQLProxy" esse serviço faz o balanceamento de carga, você pode instalar no Servidor de Gerenciamento, ai as aplicações podem se conectar apenas no Servidor de Gerenciamento, com esse serviço você terá uma solução completa de balanceamento de carga, tolerância a falhas e replicação dos dados por meio do cluster.

Bom cara é isso, espero ter tirado sua dúvida.

Qualquer coisa me add no msn andreclsilva@hotmail.com.

Abraços

[4] Comentário enviado por snails em 14/11/2010 - 17:51h

Bom artigo....

To pensando já aonde posso aplica essa solução..rsrsrsrs...

Referente a pergunta do bjnl eu entendi a duvida.....alias...como vão gerenciar os nodos, se o gerenciador estiver off.....

Bem, pelo que parece, o gerenciador que faz o sync dos bancos..... então caso ele esteja off, vc apenas perde o sync dos bancos de dados....
Uma solução robusta e phoderosa para usar com esse sistema seria o heartbeat com sync de sistemas. Foi postado um tuto sobre ele aqui no VOL....

Poderia ser feito um heartbeat do gerenciador com o MysqlProxy e alguns nodos do cluster..isso tbm garantiria 99,9% de osciosidade nos seus sstemas DB.

Vai ae a dica !!!

Flw

[5] Comentário enviado por wasleyalmeida em 03/05/2013 - 09:02h

Bom dia amigo,

Desculpe minha ignorância, consigo utilizar essa tecnologia possuindo apenas dois servidores, ou seja

Servidor 1: rodaria o NDBD (node 1) e rodaria tb o MGM
Servidor 2: rodaria o NDBD (node 2) e receberia as replicações do node 2.

Deseja agradeço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts