MySQL Cluster (4.1)
Descripción
Este documento trata de dos de las configuraciones avanzadas de MySQL - MariaDB: y clustering.
Los requerimientos
- Un servidor MySQL - MariaDB
- phpMyAdmin
Procedimiento
Se supone que tiene MySQL - MariaDB andando !!! (supongo)
1. Clustering
La vaina con clustering es medio mamona porque se requieren varios terminos por definir: Se tienen maquinas y se tienen nodos, una sola maquina puede correo diferentes nodos. Un nodo puede ser de tres tipos: <administrador>, <almacenamiento> y <cliente>. La capacidad de clustering viene dada por un medio nuevo de almacenamiento llamado NDB.
A. Primero que todo compile MySQL - MariaDB con soporte para ndbcluster (a partir de la version 4.1). Toca compilar .. asi que siga el manual (sec:2.3.1) con unos cambios
shell> groupadd MySQL - MariaDB
shell> useradd -g MySQL - MariaDB MySQL - MariaDB
shell> gunzip < MySQL - MariaDB-VERSION.tar.gz | tar -xvf -
shell> cd MySQL - MariaDB-VERSION
shell> ./configure –with-innodb –with-berkeley-db \\
–with-embedded-server –enable-thread-safe-client \\
–with-vio –with-ndbcluster –prefix=/usr/local/MySQL - MariaDB
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /usr/local/MySQL - MariaDB/etc/my.cnf
shell> ln -s /usr/local/MySQL - MariaDB-4.1/etc/my.cnf /etc/my.cnf
shell> cd /usr/local/MySQL - MariaDB
shell> bin/mysql_install_db –user=MySQL - MariaDB
shell> chown -R root .
shell> chown -R MySQL - MariaDB var
shell> chgrp -R MySQL - MariaDB .
shell> bin/mysqld_safe –user=MySQL - MariaDB &
A veces es bueno instalar una version estandar (rpm o deb) para que provea el MySQL - MariaDB.sh y cree el usuario-grupo .. mas facil.
… Debe tener andando MySQL - MariaDB …
B. Ahora instale el arbol de ndb (a mano)
/usr/local/MySQL - MariaDB-4.1/ndb/
- bin
- lib
- etc
- mgmt1 (nodo manejo 1)
- data1 (nodo almacenamiento 1)
….
y copie los berracos binarios que se llaman diferente a como dice
en el manual … MySQL - MariaDB-4.1.xxxxx/ndb/src/kernel/ndbd
y MySQL - MariaDB-xxxx/ndb/src/mgmsrv/ndb_mgmd (mgmtsrvr)
C. Configure el ambiente (puede ponerlo en /etc/profile o en un script ndbenv.sh que se carge al inicio.
#!/bin/bash
MYSQL_HOME=/usr/local/MySQL - MariaDB
export NDB_HOME=/home/karlsson/MySQL - MariaDB/Cluster/MySQL - MariaDB-4.1/ndb
export PATH=$NDB_HOME/bin:$MYSQL_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NDB_HOME/lib:$MYSQL_HOME/lib
export MANPATH=$NDBHOME/man:$MANPATH
OJO!!!! esto es importante que quede cargado siempre, SI NO, NO FUNCIONA.
C. Cree el config.ini en /usr/local/MySQL - MariaDB/ndb/etc (siendo consistentes)
Que es donde define computador y nodos (manejo, almacenamiento,cliente)
ver anexo.
D. Cree en cada directorio de cada nodo un Ndb.cfg
- Nodo de manejo solo tiene el id: Nodeid=1:127.0.0.1:220
- Nodo de alamacenamiento su id y su maestro: nodeid=2;host=127.0.0.1:2200
- Nodo cliente su id y su maestro: nodeid=3;host=127.0.0.1:2200
E. Arranque de prueba de todo
– El manejador (MGM)
shell> cd /usr/local/MySQL - MariaDB/ndb/mgmt
shell> ../bin/ndb_mgmd -c ../etc/config.ini
shell> NDB Cluster Management Server. Version 3.5.0 (beta)
shell> Command port: 2200, Statistics port: 0
shell> NDB>
A veces jode para iniciarse
export NDB_CONNECTSTRING=“nodeid=2;host=127.0.0.1:2200”
– El almacenador (DB)
shell> cd /usr/local/MySQL - MariaDB/ndb/data
shell> ../bin/ndbd
shell> 2004-09-13 10:32:59 [NDB] INFO – Angel pid: 8818 ndb pid: 8820
shell> 2004-09-13 10:32:59 [NDB] INFO – NDB Cluster – DB node 2
shell> 2004-09-13 10:32:59 [NDB] INFO – Version 3.5.0 (beta) –
shell> 2004-09-13 10:32:59 [NDB] INFO – Start initiated (version 3.5.0)
puede verificar con el papa que anda NDB> 2 status
– El cliente (API) (motor de MySQL - MariaDB estandar)
Solo arranque el demonio estandar .. muy seguramente va a parar en /usr/local/MySQL - MariaDB/var y alli tiene que estar el correspondiente Ndb.cfg.
Es necesario levantar el soporte de ndb.. ya sea agregando en el
my.cnf
[mysqld]
ndbcluster
o agregando en la linea de comandos de mysqld_safe –ndbcluster
y listo arraque.. y verifique el log.
F. Ya puede iniciar a crear dbs .. ojo, no son las bases de datos las que funcionan en NDB no las bases de datos… toca crearlas en ambas maquinas y luego con tiempito el empieza a sincronizar sin problema.
Prerequistos
Instalación
Configuración
1. Una accion
2. Segunda accion
Trucos
Problemas
1. Si el instale_mrtg.sh no le funciona
-
Referencias
- MySQL - MariaDB-cluster-for-MySQL - MariaDB-users.html
FIN
Advertencia
Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.
=========================================================================
Anexo /usr/local/MySQL - MariaDB/ndb/etc/config.ini (para un solo computador)
=========================================================================
[COMPUTER]
Id:1
ByteOrder: Little
HostName: localhost
[MGM]
Id:1
ExecuteOnComputer: 1
[DB]
Id: 2
NoOfReplicas: 1
ExecuteOnComputer: 1
FileSystemPath: /usr/local/MySQL - MariaDB/ndb/data
[API]
Id: 3
ExecuteOnComputer: 1
[TCP DEFAULT]
PortNumber: 10002
[TCP]
NodeId1: 1
NodeId2: 2
[TCP]
NodeId1: 2
NodeId2: 3
Ultimo Cambio v-0.1: Kasandra 13/09/2004