Como criar um Cluster Mysql para 2 Servidores (são necessários 3 na realidade)
Este tutorial servirá para criar um cluster de forma a que seja possível fazer um balanço de carga dos dados servidos, será necessário um terceiro servidor que após a configuração pode ser desligado, não é recomendável fazer isso, não é possível apenas com os dois servidores ter uma verdadeira redundancia.
Para ser possível desligar um dos servidores do Cluster é necessário que o servidor de gestão esteja a correr.
Vamos então ver os 3 servidores:
mysql1.dominio.com 192.168.0.1
mysql2.dominio.com 192.168.0.2
mysql3.dominio.com 192.168.0.3
O servidor 1 e 2 serão os que acabarão a servir o cluster, enquanto que o terceiro irá fazer a gestão do nó, não requer a instalação do Mysql e apenas algumas pequenas alterações serão efectuadas (geralmente utiliza-se uma máquina que já se encontra em produção a fazer outras tarefas).
Passo 1 – Instalar o Mysql em ambas as máquinas do cluster para isso serão necessários os seguintes comandos em ambas as máquinas do cluster.
cd /usr/local/
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db –user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig –add mysql.server~
Não inicie o mysql.
Passo 2 – Instalar e configurar a máquina de gestão do Cluster.
Para isso irá necessitar dos ficheiros que se encontram em /bin no directório do Mysql: ndb_mgm e ndb_mgmd poderá ir buscar estes ficheiros ao mysql-max basta descarregar o mesmo.
De seguida terá que executar os seguintes comandos:
mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm .
mv bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd
rm -rf /usr/src/mysql-mgm
Terá que configurar o ficheiro de configuração para a gestão:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi (ou qualquer outro editor) config.ini
Agora, altere o que é apresentado:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.3 # O IP do servidor actual de gestao
# Storage Engines
[NDBD]
HostName=192.168.0.1 # O IP do primeiro servidor
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2 # O IP do segundo servidor
DataDir=/var/lib/mysql-cluster
# 2 Clientes MySQL
[MYSQLD]
[MYSQLD]
Agora inicie o servidor de gestão mysql:
ndb_mgmd
Este é o servidor de gestão e não a consola de gestão, logo de momento não espere nenhum tipo de output. (Já voltamos a isso)
Passo 3 – Configurar as directorias da informação e iniciar o mysql.
Em ambos os servidores do cluster terá que alterar o seguinte: (Alterando o que for necessário para se adaptar)
nano /etc/my.cnf
Insira as seguintes linhas em ambos os servidores alterando os endereços IP para o IP do servidor de gestão que configurou no passo 2.
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão
[mysql_cluster]
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão
Agora criamos a directoria da informação e iniciamos o motor de dados:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd –initial
/etc/rc.d/init.d/mysql.server start
Repita exactamente o mesmo passo para o segundo servidor do cluster.
Nota: deverá usar –initial apenas se está a fazer este procedimento de raiz ou se ouve alguma alteração ao ficheiro config.ini no servidor de gestão.
Passo 4 – Verificar se tudo está a funcionar.
Agora poderá aceder ao servidor de gestão do cluster para ver o que está a acontecer.
/usr/local/mysql/bin/nbd_mgm
Insira o comando SHOW para perceber o que está a acontecer, deverá visualizar ambos os servidores com o respectivo id caso ele se tenha ligado é altura de aceder a um dos servidores e fazer:
mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest
O comportamento esperado é que a mesma informação seja visível no outro servidor, o derradeiro teste será desligar um dos servidor e verificar se a informação continua disponível.




Categoria: 







