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

Volver arriba