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

776 visualizaciones

Publicado el

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

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
776
En SlideShare
0
De insertados
0
Número de insertados
189
Acciones
Compartido
0
Descargas
19
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

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

  1. 1. 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
  2. 2. 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 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 positivo de 1 a 232 - 1. [mysqld] log-bin=mysql-bin server-id=1 2. Reinicie el servidor maestro. Hasta este punto aún no van a replicar porque no les hemos indicado al servidor maestro 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 debe tener 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
  3. 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 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 world shell> mysql -u root -p world < dump_file.sql 10. Ejecute los siguientes comandos en el servidor esclavo, reemplazando los valores de opciones con los valores adecuados 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 cualquier actualización que haya ocurrido desde que se obtuvieron los datos. Elaboró: Francisco Medina López 3

×