Está en la página 1de 15

Replicacin

Integrantes:
lvarez Gmez Jess Modesto Carrillo Flix Carlos Ernesto Casillas Castillo Rubn Daro Monge Parra Jorge Ariel

Qu es la Replicacin?
Es un mecanismo utilizado para propagar y diseminar datos en un ambiente distribuido, con el objetivo de tener mejor performance y confiabilidad, mediante la reduccin de dependencia de un sistema de base de datos centralizado.

La replicacin es til para:


Copia de seguridad: En condiciones normales, una base de datos replicada de forma correcta es vlida como copia de seguridad. Adems se puede realizar copias de seguridad usando un servidor esclavo para as no interferir al servidor maestro.

Mejorar la escalabilidad: Podramos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados. Podramos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualizacin de datos al maestro.

Alta disponibilidad: En aplicaciones y entornos en donde slo se requieren lecturas, podramos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continue prestando servicio.

Conceptos necesarios de conocer relacionados con la replicacin en MySQL

El Log Binario El log binario es un archivo binario gestionado por el servidor de base de datos en el que se registran todas las sentencias SQL de modificacin de datos o estructura.

En el caso de la replicacin es importante saber que cada servidor esclavo se conecta al servidor maestro y le solicita que le envi las sentencias registradas en los logs binarios a partir de una posicin, para ello, cada esclavo mantiene un archivo a modo de ndice en donde registra la posicin actual de la replicacin.

Implementacin de la replicacin
Cada servidor esclavo recibe del maestro las actualizaciones guardadas que el maestro ha guardado en su log binario, de forma que el esclavo puede ejecutar las mismas actualizaciones en su copia de los datos. Cualquier esclavo que inicialice necesita copias de las bases de datos del maestro tal y como estaban en el momento en que activ el log binario en el maestro. Si arranca sus esclavos con bases de datos que no estn en el mismo estado que las del maestro cuando arranc el log binario, es muy posible que fallen sus esclavos.

Copiar los datos del maestro al esclavo: LOAD DATA FROM MASTER . Tenga en cuenta que LOAD DATA FROM MASTER funciona slo si todas las tablas en el maestro usan el motor de almacenamiento MyISAM. No se puede actualizar el maestro mientras las tablas se transfieren al esclavo. Debido a estas limitaciones, recomendamos que en este punto use LOAD DATA FROM MASTER slo si el conjunto de datos en el maestro es relativamente pequeo, o si se puede realizar un bloqueo de lectura prolongado en el maestro. Mientras que la velocidad real de LOAD DATA FROM MASTER puede variar de sistema a sistema, una buena regla de estimar cunto tarda es 1 segundo por 1MB de datos

Tras inicializar el esclavo con una copia de los datos del maestro, se conecta al maestro y espera a procesar actualizaciones. Si el maestro falla, o el esclavo pierde conectividad con el maestro, el esclavo sigue intentando conectar peridicamente hasta que es capaz de reanudar la espera de actualizaciones. El intervalo de reintento lo controla la opcin --master-connect-retry.

Capacidades de replicacin de MySQL


Estn implementadas usando tres flujos (uno en el servidor maestro y dos en el esclavo). Cuando se ejecuta un START SLAVE, el esclavo crea un flujo de entrada/salida, que conecta al maestro y le pide que enve los comandos guardados en su log binario. El maestro crea un flujo para enviar los contenidos del log binario al esclavo. Este flujo puede identificarse como el flujo Binlog Dump en la salida de SHOW PROCESSLIST en el maestro. El tercer flujo es el flujo SQL, que crea el esclavo para leer los logs retardados y para ejecutar las actualizaciones que contiene.

Pasos para poner en marcha la replicacin

Creamos de un usuario MySQL en el servidor maestro con privilegios de replicacin

Configuracin del servidor maestro Deberemos agregar las siguientes lineas al final del archivo de configuracin del servidor MySQL, por defecto:<MySQL_HOME>/my.ini

Desde la consola ejecutamos los siguientes comandos:


[maestro]:<MYSQL_HOME>/bin/mysql -u root --password=<contrasea> -e "FLUSH TABLES WITH READ LOCK" Para limpiar las caches y bloquear el acceso de cualquier aplicacion a la base de datos. [maestro]:<MYSQL_HOME>/bin/mysqldump --u root --password=<contrasea> --opt bd_autentia > backup.sql Realizamos una copia completa de la base de datos en el archivobackup.sql. [esclavo]:<MYSQL_HOME>/bin/mysql --user=root --password=<contrasea> bd_autentia < backup.sql Para restaurar la copia de seguridad en el esclavo. [esclavo]:<MYSQL_HOME>/bin/mysqladmin -u root --password=<contrasea> shutdown Detenemos el servidor esclavo [maestro]:<MYSQL_HOME>/bin/mysqladmin -u root --password=<contrasea> shutdown Detenemos el servidor maestro (Se desbloquearn las tablas de las bases de datos previamente bloquadas) [esclavo]:<MYSQL_HOME>/bin/mysqld-nt --defaultsfile="<MYSQL_HOME>\my.ini" MySQL Iniciamos el servidor el cual tomar la nueva configuracin. [maestro]:<MYSQL_HOME>/bin/mysqld-nt --defaultsfile="<MYSQL_HOME>\my.ini" MySQL

SHOW BINLOG EVENTS

Muestra el contenido de los archivos de logs, es decir las sentencias SQL. Muestra el nombre y tamao en bytes de los archivos binarios de logs.

SHOW BINARY LOGS

PURGE BINARY LOGS BEFORE '2008-02-01 21:00:00'

Elimina los logs desde una determinada fecha

RESET MASTER

Borra todos los logs binarios.

PURGE BINARY LOGS TO 'pccarlos-bin.000001'

Elimina un archivo de log binario.

SHOW SLAVE STATUS

Muestra el estado de la replicacin.

CHANGE MASTER TO MASTER_HOST='maestro_host_na me', MASTER_USER='replicacion_user', Comando en donde todos los parmetrosson opcionalesy MASTER_PASSWORD='replicacion_ a travs del cual podemos modificar el origen de la replicacin.. (Es til user', cuando hay errores) MASTER_LOG_FILE='maestro_log_bi nario_a_usar', MASTER_LOG_POS=maestro_log_bi nario_posicion

También podría gustarte