Archive for September, 2006

Replicacion de servidores con MySQL

Wednesday, September 20th, 2006
Cuando se realizan aplicaciones que se conectan con servidores remotos podemos llegar a sufrir una excesiva lentitud al acceder a los datos, lentitud causada por la gran cantidad de accesos que soporta el servidor. Para paliar esto y otros problemas se usa la replicaci�n de servidores, pero �qu� es y como funciona la replicaci�n de servidores?La replicaci�n consiste en tener un servidor local, al que llamaremos servidor esclavo, que tiene una copia exacta de la base de datos que hay en otro servidor al que denominaremos servidor maestro.El objetivo de la replicaci�n consiste en disponer de datos de forma r�pida sin tener que acceder al servidor maestro para hacer las consultas, lo que hace que el sistema sea, adem�s, m�s eficiente.En un sistema replicado, el servidor maestro es el que recibe todas las operaciones de mantenimiento de datos, es decir, todos los INSERT, UPDATES y DELETES; mientras que los servidores esclavo son los que soportan las operaciones de consulta de datos (SELECT).Los servidores montados en modo replicaci�n se sincronizan autom�ticamente, de forma que los servidores esclavos est�n constantemente actualizados.Para montar la replicaci�n tendremos que realizar estas operaciones:

NOTA: Estas operaciones se han realizado con la version 5 de MySQL.

I) En el servidor maestro

1.- Entrar en el servidor maestro usando el cliente mysql como root.

2.- Crear el usuario de replicaci�n y asignarles privilegios de r�plica:

GRANT FILE ON *.* TO usr_repl@’%’ IDENTIFIED BY ‘contrase�a’;

UPDATE mysql.user SET Repl_slave_priv=’y', Repl_client_priv=’y’
WHERE User=’usr_repl’;

FLUSH PRIVILEGES;

3.- Sacar copia de la base de datos a replicar usando mysqldump.

4.- Volver al cliente mysql y obtener los valores del estado del servidor:

SHOW MASTER STATUS;

anotaremos los valores de File y Position para usarlos m�s tarde en la configuraci�n del cliente.

5.- Cerraremos el programa cliente mysql.

6.- Detendremos el servicio del servidor MySQL.

7.- Buscaremos y editaremos el fichero my.ini (my.cfg en Linux) y nos aseguraremos que tiene estas lineas:

[mysqld]
log-bin=mysql-bin
server-id=1

8.- Arrancar de nuevo el servicio del servidor MySQL para poner el servidor maestro en marcha.

9.- Entrar en el cliente mysql y ejecutar

RESET MASTER;

Aunque no es necesario seg�n la documentaci�n del MySQL, es aconsejable.

II) En el servidor esclavo

1.- Detendremos el servicio del servidor MySQL.

2.- Buscaremos y editaremos el fichero my.ini (my.cfg en Linux) y nos aseguraremos que tiene estas lineas:

[mysqld]
server-id=2

Para el uso de varios servidores esclavos estableceremos distintos valores de server-id a cada uno y siempre mayores que 1.

3.- Arrancaremos de nuevo el servicio del servidor MySQL.

4.- Crearemos la base de datos usando el cliente mysql.

5.- Importaremos la copia de los datos que sacamos anteriormente del servidor maestro.

6.- Desde el cliente mysql ejecutaremos:

CHANGE MASTER TO
MASTER_HOST=’nombre o IP del servidor maestro’,
MASTER_USER=’usr_repl’,
MASTER_PASSWORD=’contrase�a’,
MASTER_LOG_FILE=’valor de File que anotamos antes’,
MASTER_LOG_POS=valor de Position que anotamos antes;

NOTA: Ojo a las comillas!!!

7.- Arrancar el servidor esclavo desde el cliente mysql:

START SLAVE;

y tendremos los dos servidores sincronizados.

8ª Reunion anual de programadores xBase (Alaska, Clipper, xHarbour, Xailer, etc.) en España

Wednesday, September 6th, 2006

Como viene siendo tradicional desde hace ocho años, los programadores
que usamos cualquier dialecto xBase derivado de Clipper nos daremos cita
este año los días 11 y 12 de Noviembre de 2006 en el salón de Actos de
la empresa Atisa en Torrejón de Ardoz (Madrid).

Si alguien esta interesado en exponer algún tema que contate conmigo por
privado.

También esperamos nos indiqueis que contenidos os gustaría que se
tratasen en la reunion de este año.

En breve indicaré el enlace a la página de registro. La inscripción es
gratuita.