En algunas oportunidades necesitaremos acceder a ciertas tablas de nuestra base de datos MySQL, desde una red distinta a la de nuestra base de datos, siempre podríamos hacer una doble duplicación, pero el sistema de distribución se puede volver complejo.
Además de de no tener toda la información de primera fuente en la base de datos central, debido a que parte de la información viene replicada, con lo que no podremos replicar toda la base de datos a otra.
No es muy aconsejable realizar una doble replicación a no ser que sea absolutamente necesario y no haya otra posibilidad.
Tablas Federadas
Existe una funcionalidad de las bases de datos MySQL, se trata de las tablas federadas, un tipo de motor de Mysql ‘FEDERATED’ en las que se crea un enlace entre la tabla ‘federada’ y la tabla principal de la base de datos central. Es por ello que esta tabla no contiene datos, sólo el enlace mencionado.
Por ejemplo si tenemos en la base de datos central (de un servidor principal) una tabla:
CREATE TABLE prueba ( idPrueba INT(5) NOT NULL AUTO_INCREMENT, dato VARCHAR(20) NOT NULL DEFAULT ”, PRIMARY KEY (idPrueba) ) ENGINE=MyISAM
En la base de datos de otro servidor la tabla federada sería:
CREATE TABLE prueba ( idPrueba INT(5) NOT NULL, dato VARCHAR(20) NOT NULL DEFAULT ” ) ENGINE=FEDERATED CONNECTION=’mysql://usuario_de_conexión@IP_del_servidor:Puerto_base_de_datos/base_de_datos/prueba’;
En este caso la tabla principal y la tabla federada deben tener la misma estructura, aunque la tabla federada no necesita AUTO_INCREMENT ni índices, ya que no almacena datos, sólo funciona como una interfaz.