Se conoce como copia espejo (en inglés data
mirroring) al procedimiento de
protección de datos y de acceso a los mismos en los equipos informáticos implementado en la tecnología de
RAID.
RAID.- conjunto redundante de discos
independientes, hace referencia a un sistema de almacenamiento que usan
múltiples discos duros o SSD entre los que se distribuyen o replican los datos.
Base de Datos Espejo (Database Mirroring).- es una configuración donde dos o tres servidores de dase de datos,
ejecutándose en equipos independientes, cooperan para mantener copias de la base de datos y archivo
de registro de transacciones (log).
Tanto el servidor primario como el servidor espejo
mantienen una copia de la base de datos y el registro de transacciones,
mientras que el tercer servidor, llamado el servidor árbitro, es usado cuando
es necesario determinar cuál de los los otros dos servidores puede tomar la
propiedad de la base de datos. El árbitro no mantiene una copia de la base de
datos. La configuración de los tres servidores de base de datos (el primario,
el espejo y el árbitro) es llamado Sistema Espejo (Mirroring System), y el
servidor primarioy espejo juntos son llamados Servidores Operacionales
(Operational Servers) o Compañeros (Partners).
Beneficios
·
Este método permite hacer una réplica
exacta de una base de datos de un servidor a otro. La gran ventaja de este
método es que permite el failover automático sin intervención humana
·
Con este modo, se logra tener una
copia exacta (un espejo de nuestra base de datos) de una instancia en otra.
·
Cualquier cambio hecho en la base de
datos de la primera instancia, es replicado inmediatamente en la base de datos
de la segunda instancia (la instancia y base de datos reflejada).
Hacer un mirror
Para hacer el mirror, es necesario como mínimo 2
instancia y como máximo 3. Si utilizamos 2 instancias, una de ellas contiene la
base de datos y la otra la espejo. La pega de esta configuración es que el
failover no es automático y se necesita intervención humana. Si utilizamos 3
instancias, entonces utilizamos una de ellas como witness server y permite que
el failover sea automático, osea que cuando una caiga, la otra se ponga en
marcha.
Sentencia en MySQL
mysqldump.exe --opt --password=123 --user=root
mi_db > c:\replica_db.sql
·
mysqldump opera en cooperación con el servidor
MySQL. Los métodos de copia directa son externos al servidor, de manera que
usted debe tomar las medidas oportunas para asegurar que ningún cliente
modifique las tablas mientras usted las copia genera archivos de texto
transportables a otras máquinas (aún cuando presenten distintas arquitecturas
hardware). Los archivos de copia directa no lo son, a no ser que las tablas que
esté copiando usen el formato de almacenamiento MyISAM.
Creación
Prepare una cuenta en el maestro que
pueda usar el esclavo para conectar. Este cuenta debe tener el privilegioREPLICATION
SLAVE . Si la cuenta se usa sólo para replicación (lo que se recomienda), no
necesita dar ningún privilegio adicional.
mysql>
GRANT REPLICATION SLAVE ON *.* TO
'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
Si usa sólo tablas MyISAM , vuelque
todas las tablas y bloquee los comandos de escritura ejecutando un comandoFLUSH
TABLES WITH READ LOCK :
mysql>
FLUSH TABLES WITH READ LOCK;
Para usar tar para crear un archivo
que incluya todas las bases de datos, cambie la localización en el directorio
de datos del maestro, luego ejecute el comando:
shell> tar
-cvf /tmp/mysql-snapshot.tar .
Si quiere que el archivo sólo incluya
una base de datos llamada this_db, use este comando:
shell> tar
-cvf /tmp/mysql-snapshot.tar ./this_db
Luego copie el archivo en el
directorio /tmp del servidor esclavo. En esa máquina, cambie la localización al
directorio de datos del esclavo, y desempaquete el fichero usando este comando:
shell> tar
-xvf /tmp/mysql-snapshot.tar
Mientras el bloqueo de FLUSH TABLES
WITH READ LOCK está en efecto, lee el valor del nombre y el desplazamiento del
log binario actual en el maestro:
mysql > SHOW MASTER STATUS;
Una vez que tiene los datos y ha
guardado el nombre y desplazamiento del log, puede reanudar la actividad de
escritura en el maestro:
mysql> UNLOCK TABLES;
Para guardar los nombres de ficheros
actual y desplazamientos, debe ejecutar el siguiente comando antes de parar el
servidor:
mysql>
FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
Bibliografia
http://www.techdays.com.ar/2009/08/21/tutorial-creando-backup-automaticamente-de-bases-de-datos-mysql/
http://es.wikipedia.org/wiki/Copia_espejo
http://es.wikipedia.org/wiki/RAID
http://miblogtecnico.wordpress.com/tag/failover-en-sql-server/
http://www.corporacionsybven.com/portal/index.php?option=com_content&view=article&id=362
Bibliografia
http://www.techdays.com.ar/2009/08/21/tutorial-creando-backup-automaticamente-de-bases-de-datos-mysql/
http://es.wikipedia.org/wiki/Copia_espejo
http://es.wikipedia.org/wiki/RAID
http://miblogtecnico.wordpress.com/tag/failover-en-sql-server/
http://www.corporacionsybven.com/portal/index.php?option=com_content&view=article&id=362
No hay comentarios:
Publicar un comentario