Viernes 8 de Noviembre de 2024, 06:51
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Bases de Datos
»
MySQL
(Moderador:
F_Tanori
) »
Replica En Mysql
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Replica En Mysql (Leído 21755 veces)
moivision
Miembro activo
Mensajes: 64
Replica En Mysql
«
en:
Domingo 5 de Diciembre de 2004, 03:20 »
0
soy nuevo en esto de mysql y me encargaron hacer replica en mysql
es decir que lo del servidor se copie cada cierto tiempo a otro servidor
alguien puede explicarme paso a paso sin omitir detalles
gracias
se los agradecere
Tweet
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #1 en:
Lunes 2 de Julio de 2007, 16:13 »
0
Hola a todos,
me han encargado hacer una réplica de una bd de mi ordenador a otros, y la verdad que no tengo mucha idea de en que consiste ni como se hace.
He estado buscando información y no me aclara nada.
Si alguien es tan amable de comentarme un poco en que consiste hacer una réplica y como se hace.
Muchas gracias.
Saludos
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Replica En Mysql
«
Respuesta #2 en:
Lunes 2 de Julio de 2007, 16:40 »
0
Que tal Irene?...
Yo utilizo SQLyog para administrar mis bases de datos, desde él, puedo exportar desde la opción "Export Database As SQL Statements..." toda la base de datos (estructura, datos, etc) a un archivo de texto que luego puedo importar o simplemente ejecutar en la máquina destino.
No se si esto te sirva
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #3 en:
Lunes 2 de Julio de 2007, 16:56 »
0
Hola Angel_K_ido,
pos mañana cuando vaya a trabajar miraré a ver si puedo utilizarlo y a ver si me sirve y ya te comentaré.
Muchas gracias por tu ayuda
jpaler
Miembro MUY activo
Mensajes: 479
Re: Replica En Mysql
«
Respuesta #4 en:
Lunes 2 de Julio de 2007, 21:42 »
0
si por algun motivo no tienes acceso al programa q angel te comento, entonces
puedes hacerlo a traves de las mismas herramientas q trae mysql cuando lo
instalas.
Citar
mysqldump.exe --opt --password=123 --user=root mi_db > c:\replica_db.sql
con este comando, exportas la db llamada mi_db al archivo replica_db.sql,
especificandole el usuario root y la su contraseña 123.
y listo...
Salu2 !!!
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Replica En Mysql
«
Respuesta #5 en:
Martes 3 de Julio de 2007, 07:24 »
0
Lamento interrumpir pero.... eso no es una replica es un respaldo (backup)
aqui hay una manera de hacerlo con Windows XP (pues yo no uso linux
)
http://www.mygnet.net/articulos/mysql/680/index.php
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
jpaler
Miembro MUY activo
Mensajes: 479
Re: Replica En Mysql
«
Respuesta #6 en:
Martes 3 de Julio de 2007, 13:16 »
0
f_tanori... gracias x la correccion... es q pense q era lo mismo...
serias tan amable de decirme
¿q es una replica?
¿o cual es la diferencia entre replica/backup?
Gracias...
Todos los dias se aprende algo nuevo...
...,eso me gusta del foro
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Replica En Mysql
«
Respuesta #7 en:
Miércoles 4 de Julio de 2007, 21:01 »
0
Claro mira...
Una Replica es conocida tambien como 'espejo' (mirror) o 'esclavo' (slave) y consiste en mantener la informacion
en varias bases de datos ("replicada") apartir de una base de datos "central"....
Por ejemplo:
Supongamos que tienes una cadena comercial de tiendas de ferreteria (o cualquier otro giro
), ahora
la matriz o tienda "principal" se encuentra en Barranquilla y tienes sucursales en Bogotá,Medellín y Cali
Tu servidor de Base de datos se encuentra en Barranquilla y todas las transacciones que se realicen en esa BD
las replicas en las demas base de datos (en Bogotá,Medellín y Cali) tu das de alta un cliente en cualquier sucursal
y a traves de un proceso de sincronizacion, se actualizan todas las bases de datos para mantener la informacion replicada
la informacion del nuevo cliente esta disponible para todas las sucursales, tambien si un servidor falla, puedes usar otro
pues la informacion es la misma.... depende del uso que se le pueda dar...
Un respaldo en MySQL es un archivo en texto con las intrucciones SQL para crear y respaldar los datos de una base de datos
no es una replica, es solo una copia "congelada" de lo que estaba en la base al momento de hacer el respaldo, y no sufrira
alteraciones por sistema
Bueno una explicacion muy tecnica pues no es
, pero espero se entienda la idea, y te sea de ayuda
Para mas informacion esta el google
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
jpaler
Miembro MUY activo
Mensajes: 479
Re: Replica En Mysql
«
Respuesta #8 en:
Jueves 5 de Julio de 2007, 14:49 »
0
Ufff !!!
...,muchas gracias tanori.
mas adelante voy a necesitar eso de las replicas para algo q estoy haciendo, pero
te juro q no tenia ni idea de q en realidad era ese el nombre tecnico "replica".
ahora ya se xq palabrita buscar en google... jejeje
Gracias y salu2 !!!
Mollense
Miembro de PLATA
Mensajes: 1755
Nacionalidad:
Re: Replica En Mysql
«
Respuesta #9 en:
Jueves 5 de Julio de 2007, 15:36 »
0
Viva FT
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."
...no te quedes mirando.
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #10 en:
Jueves 5 de Julio de 2007, 16:26 »
0
F_Tanori, muchisimas gracias por explicarlo de esa manera, por que a mi me a aclarado muchisimo, ya que no sabia exactamente en que consistia
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #11 en:
Martes 10 de Julio de 2007, 09:49 »
0
a ver, si mi ordenador maestro tuviera que replicar varias (muchas) bases de datos, y yo no supiera como se van a llamar estas bd,
¿cómo podria configurar el ordenador para hacer las réplicas?
muchas gracias
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #12 en:
Miércoles 11 de Julio de 2007, 14:52 »
0
es posible que a la hora de configurar mi ordenador esclavo en vez de mandarle el parametro
Código: Text
replicate-do-db = database_name
con la bd que quiero que me replique,
le mando por ejemplo solo el parametro siguiente con la bd que no quiero que me replique, por ejemplo mysql
Código: Text
replicate-ignore-db=mysql
¿¿en teoria me replicaria todas las demas bd que tenga mi ordenador maestro??
saludos
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #13 en:
Viernes 13 de Julio de 2007, 14:08 »
0
Hola a todos,
e estado siguiendo este maual:
htp://blyx.com/public/docs/databases/my ... -howto.pdf
para hacer una replica de mi servidor maestro a mi servidor esclavo.
En el momento en el que voy a ejecutar el comando (en el maestro):
# mysqlbinlog /var/log/mysql/master-bin.000001
me salta el siguiente error:
Código: Text
/*!40019 SET @@session_max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE = @@COMPLETION_TYPE, COMPLETION_TYPE = 0*/;
mysqlbinlog: File '/var/log/mysql/master-bin.000001' not found (Errcode:2)
#End of log file
ROLLBACK /*added by mysqlbinlog*/;
/*!50003 SET COMPLETION_TYPE = @OLD_COMPLETION_TYPE*/;
¿sabeis porque puede ser?
Muchas gracias
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #14 en:
Lunes 16 de Julio de 2007, 15:24 »
0
vale, el problema este está resuelto, era un simple error a la hora de escribir el nombre en una ruta que me habia equivocado
por que cuando en el servidor maestro ponia:
Código: Text
mysql> SHOW MASTER STATUS;
me devolvia
Código: Text
+----------------+-------------+------------------+-----------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------+-------------+------------------+-----------------------------+
|mysql-bin.000003 | 98 | | |
+----------------+-------------+------------------+-----------------------------+
¿hay alguna diferencia en que en vez de que te devuelva
master
-bin.xxxxx sea
mysql
-bin.xxxxx?
Es que a la hora de seguir con el procedimiento de la réplica , estando en el servidor esclavo, ejecuto:
Código: Text
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=98;
me salta el siguiente error:
Código: Text
ERROR 1201 (HY000): Could not initialize master info structure;more error messages can be found in the MySQL error log
¿puede ser debido al nombre de los archivos?
Muchas gracias por vuestra ayuda y ser tan amables
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #15 en:
Martes 17 de Julio de 2007, 14:09 »
0
hola a todos, he estado mi los logs de mysql para poder ver el error que me estaba dando y como tenia un montón de cosas antiguas, eh decidido borrarlos y empezar con la réplica desde 0.
Entonces en el archivo /etc/my.cnf tengo estas líneas:
Código: Text
[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
old_passwords = 1
server_id = 1
innodb_flush_log_at_trx_commit = 1
#innodb_safe_binlog
sync-binlog = 1
log-bin = /var/log/mysql/master-bin
log-bin-index = /var/log/mysql/master-bin.index
la linea de
innodb_safe_binlog
, la tengo comentada por que a la hora de reiniciar el servicio de mysql me daba fallo, entonces, no se si será necesaria al 100%, o puede ser prescindible?
El caso, es que e seguido con la réplica teniendola comentada, y en el momento en que en el servidor esclavo ejecuto:
Código: Text
mysql> CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=634;
me vuelve a dar otra vez el error:
Código: Text
ERROR 1201 (HY000): Could not initialize master info structure;more error messages can be found in the MySQL error log
y he mirado los logs de mysql en los 2 servidores, y no me aparece nada
¿Sabeis si puede tener relacion con innodb_safe_binlog?
Muchas gracias por vuestra ayuda
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #16 en:
Martes 24 de Julio de 2007, 10:33 »
0
Hola a todos, que tal?
A ver, por fin he conseguido que una bd se me replique de un ordenador a otro
(cuando consiga al 100% lo que quiero os lo pondre por aqui por si le sirve a alguien
)
Mi duda de ahora es la siguiente:
tengo 4 ordenadores A, B, C, D, entonces, me gustaria saber que es mejor, ¿tener el ordenador A como maestro y que replique la bd a los otros 3, ó tener A como maestro de B, B como maestro de C, y C como maestro de D?
Espero haberme explicado bien
Muchas gracias
Saludos
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #17 en:
Viernes 27 de Julio de 2007, 10:03 »
0
Hola a todos,
os voy a contar un poco la situacion, como dije antes, tengo 4 ordenadores, en el que A y B tienen una IP x.x.x.1 y una direccion interna 192.168.1.1 y 192.168.1.2, y C y D tiene una IP x.x.x.2 y una direccion interna 192.168.2.1 y 192.168.2.2
Me gustaria saber:
¿si A es el maestro de todos, irá la réplica más rápido, que si fuera A replicando a B y B a C, etc...?
En el caso de que la réplica fuera de A a B, de B a C y de C a D, si por algún casual B deja de funcionar,
¿hay alguna posibilidad de que A pasara en ese momento a ser maestro de C?
y en ese mismo caso de réplica, al pasar copias de un ordenador a otro con diferentes IP, ¿puede haber mas problemas de seguridad, cortes, etc...?
Espero haberme explicado bien y que me entendais
Muchas gracias por vuestro tiempo
irenemiracle
Miembro activo
Mensajes: 26
Re: Replica En Mysql
«
Respuesta #18 en:
Martes 14 de Agosto de 2007, 14:00 »
0
Hola a todos, bueno, como os dije hace ya unos dias, hos voy a poner aquí el procedimiento que yo he seguido para poder hacer replicas de un ordenador a otro de todas las bases de datos, excepto de una.
Este es un pequeño manual que he echo para mi trabajo.
REPLICA DE BASES DE DATOS
[/u][/b]
La réplica de MySQL permite tener una copia exacta de una base de datos de un ordenador principal (maestro) en otro ordenador (esclavo), y todas las actualizaciones que se vayan haciendo en la base de datos del ordenador maestro, se repliega inmediatamente en el esclavo. De esta manera, ambas bases de datos están sincronizadas.
Esta documentación está explicada para realizar réplicas de bases de datos de un ordenador a otro, u otros, bajo el Sistema Operativo de White Box Enterprise Linux.
Para poder realizar toda la configuración necesaria para la réplica, previamente los ordenadores donde se vayan a realizar, deben tener instalado la misma versión de MySQL.
En esta documentación, utilizaremos los siguientes datos a modo de ejemplo:
● ORDENADOR MAESTRO:
IP
= 192.168.17.100
Nombre
= laboratorio1
Nombre de la base de datos que NO se va a replicar
= replica
● ORDENADOR ESCLAVO:
IP
= 192.168.17.101
Nombre
= laboratorio2
OJO!!
, cuando estés realizando la réplica, debes cambiar esos datos de ejemplo por los tuyos reales.
La IP y el nombre de tus ordenadores, los encontrarás en:
# vi /etc/hosts
CONFIGURAR ORDENADOR MAESTRO
1º Creamos los directorios, si no existen, donde se almacenarán los datos de la replicación
Código: Text
# mkdir /var/log/mysql
# chown mysql:mysql /var/log/mysql
2º Pasamos a configurar el maestro. Abrimos el archivo my.cnf
Código: Text
# vi /etc/my.cnf
Y agregamos las siguientes líneas al fichero:
Código: Text
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1
binlog-ignore-db=replica *1
server-id=1
innodb_flush_log_at_trx_commit=1
sync-binlog=1
log-bin=/var/log/mysql/laboratorio1-bin
log-bin-index=/var/log/mysql/laboratorio1-bin.index
*1
si se quiere ignorar más de una base de datos, se pondrá esta línea (binlog-ignore-db) tantas veces como sea necesario, seguido del nombre de las bases de datos que no se van replicar.
3º Reiniciamos el demonio de mysql una vez echas estas modificaciones
Código: Text
# /etc/init.d/mysql restart
4º Seguido comprobamos que escucha por el puerto 3306
Código: Text
# netstat -an|grep -i listen|grep -i 3306
5º Ahora pasamos a configurar al usuario que realizará la réplica entre el maestro y el esclavo:
Código: Text
# mysql -u root
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘slave_user’@’%’ IDENTIFIED BY ‘clave_user’;
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
(El comando SHOW MASTER STATUS mostrará algo parecido a la siguiente tabla. El resultado que nos da en File y Position, lo apuntamos, ya que lo seguiremos utilizando en siguientes pasos)
Código: Text
+---------------------------+-----------------+--------------------+----------------------+
| File | Position | Binlog_Do_Db | Binlog_Ignore_Db |
+---------------------------+-----------------+--------------------+----------------------+
|laboratorio1-bin.000001 | 98 | | replica,replica |
+---------------------------+-----------------+--------------------+----------------------+
mysql> quit
6º Ahora comprobamos que está en el log binario con el comando mysqlbinlog y podremos ver el contenido del mismo
Código: Text
# mysqlbinlog /var/lib/mysql/laboratorio1-bin.000001 *
*
donde pone laboratorio1-bin.000001, pondremos lo que nos dio de resultado el File cuando ejecutamos antes el comando SHOW MASTER STATUS.
CONFIGURAR ORDENADOR ESCLAVO
1º Creamos los directorios, si no existen, donde se almacenarán los datos de la replicación
Código: Text
# mkdir /var/log/mysql
# chown mysql:mysql /var/log/mysql
2º Si la base de datos no existe, se creará
Código: Text
# mysql -u root
mysql> CREATE DATABASE replica;
mysql> quit
3º Pasamos a configurar el esclavo. Abrimos el archivo my.cnf
Código: Text
# vi /etc/my.cnf
Y agregamos las siguientes líneas
Código: Text
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1
server-id=2 *1
master-host=192.168.17.100
master-user=slave_user
master-password=clave_user
master-connect-retry=60
replicate-ignore-db=replica *2
relay-log=/var/log/mysql/laboratorio2-relay-bin
relay-log-index=/var/log/mysql/laboratorio2-relay-bin.index
*1
si vamos a tener más de un ordenador esclavo, a cada uno le mandaremos un server-id distinto (por ejemplo: server-id=3, server-id=4,etc…). Este nº nunca debe de ser igual que el del maestro.
*2
si se va a ignorar más de una base de datos, se pondrá esta línea (replicate-ignore-db) tantas veces como sea necesario, seguido del nombre de las bases de datos que van a ser replicadas.
4º Reiniciamos el demonio de mysql una vez echas estas modificaciones
Código: Text
# /etc/init.d/mysql restart
5º Seguido comprobamos que escucha por el puerto 3306
Código: Text
# netstat -an|grep -i listen|grep -i 3306
6º
Código: Text
# mysql -u root
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.17.100’, MASTER_USER=’slave_user’, MASTER_PASSWORD=’clave_user’, MASTER_LOG_FILE=’laboratorio1-bin.000001’, MASTER_LOG_POS=98;
mysql> start slave;
mysql> quit
- en
MASTER_HOST
, pondremos la IP o nombre del ordenador maestro.
- en
MASTER_USER
, pondremos el nombre del usuario al que concedimos los derechos de la réplica.
- en
MASTER_PASSWORD
, pondremos la contraseña del usuario de MASTER_USER
- en
MASTER_LOG_FILE
, pondremos el resultado que nos devuelve en campo File, cuando ejecutamos SHOW MASTER STATUS en el maestro.
- en
MASTER_LOG_POS
, pondremos el resultado que nos devuelve en campo Position, cuando ejecutamos SHOW MASTER STATUS en el maestro.
7º Ya sólo queda comprobar que la réplica de todas las bases de datos menos una ó varias funciona, así que sólo tenemos q ir a ordenador maestro y realizar cualquier cambio en cualquier base de datos, y comprobar en el esclavo que el cambio se ha realizado.
Si quereis que un ordenador sea
maestro
y
esclavo
a la vez, en el archivo
my.cnf
teneis que poner tanto la parte que corresponde al maestro como la del esclavo, pero no podeis olvidar poner la linea
log-slave-updates
, porque sin esto no funcionaria
Bueno, espero que le sirva de ayuda a alguien, ya que entre todos habeis podido ayudarme a mi.
Muchas gracias
Saludos
F_Tanori
Moderador
Mensajes: 1919
Nacionalidad:
Re: Replica En Mysql
«
Respuesta #19 en:
Miércoles 15 de Agosto de 2007, 08:57 »
0
Vaya le haz dado un buen seguimiento a esto, y haz colocado una buena guia, ( lo malo para mi es no saber linux
)
Gracias,
estará como discusion importante en este Foro de MySQL
Saludos
" ExIsTo y A vEcEs PiEnSo "
NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================
aes1278
Nuevo Miembro
Mensajes: 2
Re: Replica En Mysql
«
Respuesta #20 en:
Jueves 7 de Febrero de 2008, 16:15 »
0
¡¡¡MUY BUENA EXPLICACIÓN!!! Me anduvo todo perfecto. Ahora tengo una duda, ¿Cómo hago para tener 2 maestros y un solo esclavo? Agradecería que me explicaran tan bien como antes.
helmutba
Nuevo Miembro
Mensajes: 1
Re: Replica En Mysql
«
Respuesta #21 en:
Lunes 5 de Mayo de 2008, 20:10 »
0
Holaaaaaaaaaa!!.. amigos, soy nuevo en el foro y me siento contento de estar con udsss---- ando apurado porke tengo que hacer una replica, en XP mysql, pero no se como hacerla, de hecho no necesito hacer algo muy complicado, solo es una tarea, pero pues.. tiene que funcionar?.. alguien pudiera ayudarme en linea, páso a paso?.. seria mucho pedirrrr?.. yo se que hay personas dispuestas.. y muchas gracias a todooooss!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Bases de Datos
»
MySQL
(Moderador:
F_Tanori
) »
Replica En Mysql