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.
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)