Вы находитесь на странице: 1из 4

UNIVERSIDAD POLITECNICA DEL VALLE DE

TOLUCA
CURSO: BASE DE DATOS DISTRIBUIDAS
PROYECTO:
REPLICACION DE LA BASE DE DATOS (MAESTROESCLAVO)
PROFESORA: MARTHA MARIA MONTES DE OCA
GRUPO: INI6MA

INTEGRANTES
Domnguez Cruz Noem Enriqueta

MATRICULA
1110INI031

Iglesias Delgado Miguel ngel


Romero Romero Abimael

1110INI0
1110INI051

Una rplica de MySql Server hace uso del fichero binario de transacciones para
almacenar en el maestro todos los cambios reaizados (UPDATES, DELETES,
CREATE, etc..) para que un servidor externo lo lea y replique exactamente los
mismos cambios en su propia base de datos.
De este modo tenemos uno o ms servidores MySql esclavos haciendo las
mismas transacciones que el maestro para as tener los mismos datos en
diferentes servidores cosa que se realmente til y, no slo ante cadas, ya que
es posible configurar nuestra aplicacin para compartir las SELECT entre
distintos nodos de MySql y mejorar as el rendimiento.

Lo primero que debemos hacer es configurar el servidor maestro para que


almacene el log binario y asignarle un identificador. Para ello editamos
el my.cnf aadiendo (o editando si ya las tiene) las siguientes entradas:

Como siempre que modificamos un my.cnf hay que reiniciar el servicio de


MySql para que acepte los cambios.
Luego tenemos que hacer lo propio con el (o los) esclavo(s). Modificar el my.cnf
con los siguientes parmetros y luego reiniciar el servicio:

Ya tenemos un servidor maestro y un esclavo pero ahora necesitamos crear


un usuario para que el esclavo se conecte al maestro y pueda leer el log de
transacciones. Para ello vamos a crear un nuevo usuario llamado "replicador"
(el nombre y pass puede variar) en el master con privilegios de "REPLICATION
SLAVE":

Y luego le damos los permisos de REPLICATION SLAVE:

Ya tenemos los servidores bien configurados y el usuario que usaremos como


replicador por lo que lo prximo que tenemos que hacer es crear una copia
inicial o "snapshot" de la base de datos que queremos replicar para luego
poder indicar al servidor esclavo desde dnde tiene que empezar a leer.
Para hacer el snapshot primero ejecutamos las siguientes consultas:

Ten en cuenta que al hacer "READ LOCK" estamos bloqueando la tabla para
que nadie cambie nada por lo que lo que viene a continuacin deberamos
hacerlo lo ms rpidamente posible.
El SHOW MASTER STATUS muestra dos valores que debemos anotar que son
el "File" y "Position". Necesitaremos indicarselos al servidor de rplica una
vez hayamos cargado la copia inicial.

+------------------+----------+--------------+------------------+
| File
| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |
492 |
|
|
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Muy bien! Vamos al servidor esclavo y lo terminamos de configurar.


Lo primero es cargar una copia de seguridad de base de datos que
queremos replicar del master al esclavo (puedes usar el mtodo que quieras,
mysqldump, HeidSql, MySql Workbench...) y, una vez restaurada, configurar
el esclavo e iniciarlo.
En este ejemplo vamos a suponer que el servidor maestro est alojado en
10.0.1.10. Fjate que tenemos que indicar el File y la Position que hemos
obtenido antes del SHOW MASTER STATUS:

Para terminar volvemos al maestro y desbloqueamos de nuevo las tablas para


que puedan volver a editar datos:

Si no ha pasado nada raro tendremos el servidor esclavo con la carga inicial


funcionando y todo cambio en el master se replicara .

Si queremos saber el estado del servidor de rplica podemos usar la consulta:

Que
nos
mostrar
un
listado
de
datos.
Yo
miro
el
valor
"Seconds_Behind_Master" que indica que "retraso" tiene el servidor esclavo
respecto al maestro (si es NULL es que no va. Revisa el "Slave_IO_State" y
"Last_Error").

Вам также может понравиться