actividad no. 1.14: replicación de datos en mysql 5.1

3
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado en Diseño y Administración de Base de Datos Actividad No. 1.14: Replicación de datos en MySQL 5.1 Introducción MySQL 5.1 soporta la replicación asíncrona unidireccional, es decir, un servidor actúa como maestro y uno o más actúan como esclavos. (Esto contrasta con la replicación síncrona que es una característica de MySQL Cluster) El servidor maestro escribe actualizaciones en un archivo de log binario, y mantiene un índice de los archivos para rastrear las rotaciones de logs. Estos logs sirven como registros de actualizaciones para enviar a los servidores esclavos. Cuando un esclavo se conecta al maestro, informa al maestro de la posición hasta la que el esclavo ha leído los logs en la última actualización satisfactoria. El esclavo recibe cualquier actualización que han tenido lugar desde entonces, y se bloquea y espera para que el master le envíe nuevas actualizaciones. La replicación unidireccional tiene beneficios para la robustez, velocidad, y administración del sistema tales como: La robustez se incrementa con un escenario maestro/esclavo. En caso de problemas con el maestro, puede cambiar al esclavo como copia de seguridad. Puede conseguirse un mejor tiempo de respuesta dividiendo la carga de consultas de clientes a procesar entre los servidores maestro y esclavo. Se puede enviar consultas SELECT al esclavo para reducir la carga de proceso de consultas del maestro. Sin embargo, las sentencias que modifican datos deben enviarse siempre al maestro, de forma que el maestro y el esclavo no se desincronicen. Esta estrategia de balanceo de carga es efectiva si dominan consultas que no actualizan datos, pero este es el caso más habitual. Puede realizar copias de seguridad usando un servidor esclavo sin perturbar al maestro. El maestro continúa procesando actualizaciones mientras se realiza la copia de seguridad. Duración 1 hora. Objetivo El participante describirá las características de replicación proporcionadas por MySQL. Conocerá los conceptos de replicación y preparará servidores de replicación. Prerrequisitos Para el siguiente laboratorio trabajará con dos instalaciones del servidor de base de datos MySQL, la de usted y la de su compañero. Se asume que quiere replicar todas las bases de datos en el maestro y no tiene una replicación previamente configurada además de tener creada la base de datos world. 1. Si no se tiene el servidor mysql instalado, ejecutar como root el siguiente comando, tanto en el servidor maestro como en el servidor esclavo: yum -y install mysql-server mysql 2. Realize una configuración básica del manejador de bases de datos mysql, tanto en el servidor maestro como en el servidor esclavo utilizando el archivo generado en el sitio www.percona.com: Elaboró: Francisco Medina López 1

Upload: francisco-medina

Post on 20-Jul-2015

365 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Actividad No. 1.14: Replicación de datos en  MySQL 5.1

Universidad Nacional Autónoma de MéxicoFacultad de Contaduría y AdministraciónDiplomado en Diseño y Administración de Base de Datos

Actividad No. 1.14: Replicación de datos en MySQL 5.1

Introducción

MySQL 5.1 soporta la replicación asíncrona unidireccional, es decir, un servidor actúa como maestro y uno o másactúan como esclavos. (Esto contrasta con la replicación síncrona que es una característica de MySQL Cluster)

El servidor maestro escribe actualizaciones en un archivo de log binario, y mantiene un índice de los archivospara rastrear las rotaciones de logs. Estos logs sirven como registros de actualizaciones para enviar a los servidoresesclavos. Cuando un esclavo se conecta al maestro, informa al maestro de la posición hasta la que el esclavo ha leídolos logs en la última actualización satisfactoria. El esclavo recibe cualquier actualización que han tenido lugar desdeentonces, y se bloquea y espera para que el master le envíe nuevas actualizaciones.

La replicación unidireccional tiene beneficios para la robustez, velocidad, y administración del sistema tales como:

La robustez se incrementa con un escenario maestro/esclavo. En caso de problemas con el maestro, puedecambiar al esclavo como copia de seguridad.

Puede conseguirse un mejor tiempo de respuesta dividiendo la carga de consultas de clientes a procesar entrelos servidores maestro y esclavo. Se puede enviar consultas SELECT al esclavo para reducir la carga de procesode consultas del maestro. Sin embargo, las sentencias que modifican datos deben enviarse siempre al maestro,de forma que el maestro y el esclavo no se desincronicen. Esta estrategia de balanceo de carga es efectiva sidominan consultas que no actualizan datos, pero este es el caso más habitual.

Puede realizar copias de seguridad usando un servidor esclavo sin perturbar al maestro. El maestro continúaprocesando actualizaciones mientras se realiza la copia de seguridad.

Duración

1 hora.

Objetivo

El participante describirá las características de replicación proporcionadas por MySQL. Conocerá los conceptos dereplicación y preparará servidores de replicación.

Prerrequisitos

Para el siguiente laboratorio trabajará con dos instalaciones del servidor de base de datos MySQL, la de usted y lade su compañero. Se asume que quiere replicar todas las bases de datos en el maestro y no tiene una replicaciónpreviamente configurada además de tener creada la base de datos world.

1. Si no se tiene el servidor mysql instalado, ejecutar como root el siguiente comando, tanto en el servidor maestrocomo en el servidor esclavo:

yum -y install mysql-server mysql

2. Realize una configuración básica del manejador de bases de datos mysql, tanto en el servidor maestro comoen el servidor esclavo utilizando el archivo generado en el sitio www.percona.com:

Elaboró: Francisco Medina López 1

Page 2: Actividad No. 1.14: Replicación de datos en  MySQL 5.1

Universidad Nacional Autónoma de MéxicoFacultad de Contaduría y AdministraciónDiplomado en Diseño y Administración de Base de Datos

3. Inicie el servicio de mysql en ambos servidores:

service mysqld start

4. En el servidor maestro descarga la base de datos de ejemplo world:

wget -c "http://downloads.mysql.com/docs/world.sql.gz"

5. En el servidor maestro carga la base de datos de ejemplo world:

gunzip -d world.sql.gz

mysqladmin -u root -p create world

mysql world < world.sql

Instrucciones

Realizar las siguiente actividades enumeradas a continuación:

1. Asegúrese que la sección [mysqld] del archivo /etc/my.cnf en el servidor maestro incluye una opción log-bin.Esta sección debe también tener la opción server-id=master_id , donde master_id debe ser un entero positivode 1 a 232 - 1.

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

2. Reinicie el servidor maestro. Hasta este punto aún no van a replicar porque no les hemos indicado al servidormaestro que empiecen a replicar.

service mysqld restart

3. Crear una cuenta en el servidor maestro que pueda usar el servidor esclavo para conectarse. Esta cuenta debetener el privilegio REPLICATION SLAVE:

mysql> GRANT REPLICATION SLAVE ON *.*-> TO ’repl’@’%’ IDENTIFIED BY ’slavepass’;

4. En el servidor maestro bloquear las tablas para evitar actualizaciones.

mysql> FLUSH TABLES WITH READ LOCK;

5. Detener el servidor que se vaya a usar como esclavo y añada lo siguiente a su archivo my.cnf :

[mysqld]server-id=2

6. Hacer un respaldo de la base de datos world del servidor maestro con el comando mysqldump

shell> mysqldump world > dump_file.sql

7. Una vez terminado el respaldo, tenemos que recordar la situación del log binario en el servidor maestro:

Elaboró: Francisco Medina López 2

Page 3: Actividad No. 1.14: Replicación de datos en  MySQL 5.1

Universidad Nacional Autónoma de MéxicoFacultad de Contaduría y AdministraciónDiplomado en Diseño y Administración de Base de Datos

mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000004 | 724356 | | |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)

8. Transferir el respaldo al servidor esclavo Recuerda cambiar la dirección 10.211.55.75 por la que corresponda.

shell> scp dump_file.sql 10.211.55.75:

9. Realizar la recuperación de la base de datos en el servidor esclavo.

shell> mysqladmin create worldshell> mysql -u root -p world < dump_file.sql

10. Ejecute los siguientes comandos en el servidor esclavo, reemplazando los valores de opciones con los valoresadecuados para su sistema:

mysql> CHANGE MASTER TO-> MASTER_HOST=’10.211.55.76’,-> MASTER_USER=’repl’,-> MASTER_PASSWORD=’slavepass’,-> MASTER_LOG_FILE=’mysql-bin.000004’,-> MASTER_LOG_POS=724356;

11. Iniciar el servicio de replicación en el servidor esclavo:

mysql> START SLAVE;

12. Para comprobar el estado de la replicación, ejecutar el siguiente comando en la consola de MySQL:

mysql> show slave status \G

Una vez realizado este procedimiento, el servidor esclavo debe conectar con el servidor maestro y realizar cualquieractualización que haya ocurrido desde que se obtuvieron los datos.

Elaboró: Francisco Medina López 3