Sincronización de bases de datos MySQL

Un problema bastante habitual suele ser mantener dos bases de datos sincronizadas en distintos servidores.

Dentro del abanico de posibilidades para hacer esta tarea que se ofrecen para MySQL, la que más rápido y mejor soluciona el problema, es el uso del motor de almacenamiento FEDERATED, diponible a partir de la versión MySQL 5.0.3, que accede a tablas remotas en lugar de locales.

Las tablas FEDERATED deben mantener la misma estructura que la tabla remota, con la diferencia del motor usado que pasará de MyISAM o InnoDB a FEDERATED.

Supongamos un ejemplo práctico: La estructura de la tabla remota podría ser la siguiente:

CREATE TABLE test_table (
id     int(20) NOT NULL auto_increment,
name   varchar(32) NOT NULL default '',
other  int(20) NOT NULL default '0',
PRIMARY KEY  (id),
KEY name (name),
KEY other_key (other)
)
ENGINE=MyISAM
DEFAULT CHARSET=latin1;

Para el servidor local deberíamos crear la siguiente estructura para darle acceso a la tabla remota anterior:

CREATE TABLE federated_table (
id     int(20) NOT NULL auto_increment,
name   varchar(32) NOT NULL default '',
other  int(20) NOT NULL default '0',
PRIMARY KEY  (id),
KEY name (name),
KEY other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
COMMENT='mysql://usuario_db:contraseña_db@servidor_remoto
:3306/federated/test_table';

A pesar de que también se puede hacer esto mismo mediante programación, esta puede ser una buena solución para mantener dos bases de datos sincronizadas. En el manual de MySQL teneis más información sobre el motor de almacenamiento FEDERATED.

Un comentario sobre “Sincronización de bases de datos MySQL”

  1. Saludos me parece bien el post estoy interezado en aplicar federated a mi sitio web para que los quiero quiero tener alojada pi pagina en 2 servidores diferentes es decir 4 dns 2 para cada servidor pero la data solo estara en 1 o en un tercer servidor, ahora unas dudas si puedes responder?
    Que pasa si el servidor base falla(BD Base)?
    En la tabla federada no se si se diga asi(la que se actualiza puedo insertar registros y estos de actualizan en la BD base)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.