Inicialice un servidor esclavo MySQL ubicado en otra red que la maestra

Inicialice un servidor esclavo MySQL ubicado en otra red que la maestra

Es mi primera pregunta aquí y el inglés no es mi lengua materna, pero intentaré explicarlo.

Tengo un servidor MySQL maestro con una dirección IP pública ejecutándose en la infraestructura de mi proveedor y quiero ejecutar un servidor esclavo MySQL local en mi oficina que replicará todos los datos con fines de prueba.

La configuración de la replicación funciona perfectamente, creé un túnel SSH para que mi esclavo lea el binlog del maestro, aquí todo está bien.

Mi problema es configurar los datos del maestro. Normalmente, cuando quiero cargar los datos del maestro a cualquier esclavo en la misma red, ejecuto el siguiente comando en el maestro:

mysqldump 'master' --master-data=1 | mysql 'slave' 

pero aquí no puedo tener ninguna IP para el esclavo porque está ubicado en mi oficina detrás de una serie de enrutadores NAT...

¿Alguien tiene una solución sabiendo que no puedo detener el maestro y que contiene alrededor de 50 GB de datos? Si tiene alguna otra solución para realizar una transferencia de datos "en caliente" de un maestro a un esclavo, también estoy muy interesado.

Gracias de antemano.

Respuesta1

Suponiendo que puedas enviar ssh al maestro, ¿qué tal si lo haces desde el esclavo?

ssh master 'mysqldump \'master\' --master-data=1' | mysql 'slave'

Esto ejecutará el comando de volcado en el maestro, pero lo recargará localmente.

Respuesta2

¿Por qué no lo reenvías a un archivo y lo transfieres más tarde mediante scpo rsync?

mysqldump master --master-data=1 >master.dump

en esclavo

mysql <master.dump

Alternativamente, ejecute el mysqldumpcomando en el esclavo, no en el maestro. Quizás funcione mejor sin el error anterior.

Sugerencia: ¿Quizás deberías deshacerte de todas las bases de datos, no solo de una?

información relacionada