Espejeo Mirroring.
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).
Existen varios tipos de mirroring:
- Alta disponibilidad: Garantiza la consistencia transaccional entre el servidor principal y el servidor de espejo y ofrece Automatic Failover mediante un servidor testigo.
- Alta Protección: Garantiza la consistencia transaccional entre el servidor principal y el espejo.
- Alto Rendimiento: Aplica las transacciones en el Servidor Espejo de manera asíncrona ocasionando mejoras significativas en el rendimiento del servidor principal pero no garantiza que dichas transacciones se hallan realizado de manera exitosa en el espejo.
Mirroring esta tecnica fue introducida en la edicion 2005, se puede decir que es la evolución del log shipping. La
principal diferencia es el tiempo de espera para tener la información
mas actual el espejeo es un recurso mas rapido que el log shipping. Otra
diferencia es que el servidor en stand by automaticamente puede
levantarse en caso de que el servidor principal fallara (a esto se le
llama espejeo de alta disponiblidad, y para esto
requerimos de un tercer servidor al que nombran testigo), sin tener que
restaurar los registros (en realidad, los registros se fusionan de forma
continua en este escenario – no es de extrañar que se llama Espejo).
Las ventajas adicionales incluyen la creación de reflejo de apoyo a
nivel NET Framework. Además de algunas nuevas características como
la recuperación automática de páginas incluidas en SQL Server 2008.
periodicamente a un servidor en stand by. Si el servidor activo va
para abajo se puede subir el servidor en stand by restaurando todos los
logs transferidos.Escenario donde se puede usar: si usted desea que el tiempo de recuperación sea menos y también requiere una solución rentable en términos de almacenamiento compartido, interruptores, etc También se dirigen a una base de datos única que se adapta fácilmente en sus discos.
Creacion:
1. Primeramente preparamos nuestra base de datos espejo en nuestro server o instancia que fungirá como tal, aquí dos puntos importantes: Que la base datos que restauremos sea el ultimo backup realizado desde la principal. A la hora de restaurarla tenemos que marcar la opción de NON RECOVERY.
2. En el Management Studio, Explorador de Objetos, Seleccionamos una base de datos, hacemos click derecho sobre ella en la opción, Task, Mirror.
3. El primer paso sería configurar la seguridad, para lo cual vamos a seguir un asistente.
En el primer paso del asistente nos preguntara si queremos tener una instancia de testigo, para este primer ejempo le diremos que No.
4. Luego definiremos el servidor principal
5. Ahora definiremos nuestra instancia o servidor espejo
6. En
este paso se definen las cuentas de usuario que utilizaran tanto el
servidor principal como el espejo que estén en un dominio. Para nuestro
ejemplo dejaremos en blanco esta opción.
7. Finalmente terminanos de configurar el asistente de seguridad.
8. Una vez finalizado nos pedirá si deseamos iniciar el mirroring, le diremos iniciar.
9. Ya tendremos configurado nuestro mirroring como se muestra en la pantalla siguiente, desde aquí podemos iniciar el mirroring, y podemos configurar el tipo de operación que deseamos, tal y cual se planteo al inicio del articulo. Hacemos click en OK.
La
Redirección Automática del cliente en una infraestructura de Database
Mirroring, es una funcionalidad muy apreciada, y en este caso, es tan
fácil como utilizar una sintaxis determinada en la cadena de conexión a
SQL Server, como se muestra en el siguiente:
"Data Source=PORTATIL;Failover Partner=PORTATIL\MIRROR;Initial Catalog=Demo;Integrated Security=True;"
Problema:
¿Cómo conectar a un mirror server después de un failover en DB Mirroring de Microsoft SQL Server?
En el siguiente enlace se puede consultar como resolver este problema.
http://blog.capside.com/tag/db-mirror/
Windows 7 crear unidad espejo.
En Windows 7 existe la posibilidad de crear una unidad espejo (o RAID 1) de forma nativa y sin tener que utilziar ningún software.
Para ello vamos al
Panel de control > Herramientas administrativas
> Administrador de equipos > Almacenamiento > Administración
de discos.
En esta ventana nos saldrán todos los discos duros de nuestro equipo.
Lo primero que tenemos que hacer es seleccionar el disco que haremos de
espejo. Pulsamos en el con el botón derecho y elegimos la opción “Agregar reflejo”.
A partir de aquí nos aparecerá un asistente que deberemos de seguir
para elegir el disco duro donde se copiarán todos los datos del primer
disco duro.
Una vez finalizado el asistente los discos duros empezarán a
sincronizarse. Esta tarea puede durar largo tiempo dependiendo de la
cantidad de información que tengamos almacenada en el disco duro.
REPLICACION:
Replica (Replication) de una Base de Datos
Para poder trabajar desde distintos equipos en una base de datos es
necesario crear una o varias réplicas de dicha BDD que después, deberán
ser sincronizadas. Cada réplica es miembro de un conjunto de réplicas
que se pueden sincronizarcon otras réplicas del mismo
grupo, es decir, los cambios realizados en una réplica se aplican a las
otras réplicas y al diseño principal.
La
réplica proporciona una manera rápida y confiable de diseminar la
información corporativa entre múltiples localizaciones en un ambiente de
negocio distribuido, permitiendo distribuir la información de manera
confiable.
MySQL soporta replicación unidireccional asíncrona, es decir, las
son replicadas en los servidores esclavos. Esta replicación se realiza
de forma transparente. Además es instantánea si los servidores esclavos
están levantandos y en estado de replicación.
Beneficios.
La replicación es útil para:-
Copia de seguridad:
En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.
Además se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.
-
Mejorar la escalabilidad:
Podríamos configurar nuestras aplicaciones para balancear las
consultas de lectura (SELECT) entre los servidores replicados.
Podríamos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualización de datos al maestro.
-
Alta disponibilidad:
En aplicaciones y entornos en donde sólo se requieren
lecturas, podríamos configurar nuestras aplicaciones para balancear las
consultas de lectura (SELECT) entre los servidores replicados de manera
que si uno se cae se continue prestando servicio.
Pasos para poner en marcha la replicación
A continuación vamos a exponer los pasos a realizar la replicación de una base de datosbd_autentia
en un único servidor esclavo. Si quisieramos configurar más esclavos, los pasos a realizar serían los mismos sobre cada uno de los esclavos.
Creamos de un usuario MySQL en el servidor maestro con privilegios de replicación
El servidor esclavo se autenticará frente al servidor maestro como un usuario normal.
Para crear el usuario debemos ejecutar desde la consola de comandos de mysql las siguientes sentencias SQL:
Configuración del servidor esclavo
Deberemos agregar las siguientes lineas al final del archivo de configuración del servidor MySQL, por defecto:<MySQL_HOME>/my.ini
Realizamos una copia de seguridad de la base de datos del maestro sobre el servidor el esclavo
Desde la consola ejecutamos los siguientes comandos:
- [maestro]:
<MYSQL_HOME>/bin/mysql -u root --password=<contraseña> -e "FLUSH TABLES WITH READ LOCK"
Para limpiar las caches y bloquear el acceso de cualquier aplicacion a la base de datos. - [maestro]:
<MYSQL_HOME>/bin/mysqldump --u root --password=<contraseña> --opt bd_autentia > backup.sql
Realizamos una copia completa de la base de datos en el archivobackup.sql
. - [esclavo]:
<MYSQL_HOME>/bin/mysql --user=root --password=<contraseña> bd_autentia < backup.sql
Para restaurar la copia de seguridad en el esclavo. - [esclavo]:
<MYSQL_HOME>/bin/mysqladmin -u root --password=<contraseña> shutdown
Detenemos el servidor esclavo - [maestro]:
<MYSQL_HOME>/bin/mysqladmin -u root --password=<contraseña> shutdown
Detenemos el servidor maestro (Se desbloquearán las tablas de las bases de datos previamente bloquadas) - [esclavo]:
<MYSQL_HOME>/bin/mysqld-nt --defaults-file="<MYSQL_HOME>\my.ini" MySQL
Iniciamos el servidor el cual tomará la nueva configuración. - [maestro]:
<MYSQL_HOME>/bin/mysqld-nt --defaults-file="<MYSQL_HOME>\my.ini" MySQL
Iniciamos el servidor el cual tomará la nueva configuración.
Probando la replicación
- En el servidor esclavo ejecute el comando
SHOW SLAVE STATUS
y observe que el mensaje que le muestra es un mensaje que indica que está esperando eventos del maestro... - Modifique algo en el maestro y verifique que instantaneamente se replica en el esclavo.
- Detenga el esclavo durante un tiempo, realize cambios (cree tablas, modifique registros..) en el maestro e inicie el esclavo. En cuestion de milisegundos ambas bases de datos deberían de ser iguales.
Modelo de Replicación
El modelo de Replicación que usa SQL es el de “Publicador – Suscriptor”. Este modelo consiste en Publicadores,Suscriptores y Distribuidores; las publicaciones y los artículos, y las suscripciones por tirón o empuje. Además incorpora agentes de administración como Agente de Instantánea, Agente Lector de Registro, Agente de Distribución, y Agente de Mezcla. Todos los agentes pueden funcionar debajo del agente del servidor del SQL y se pueden administrar completamente por el Administrador del Servidor de SQL.http://www.compucaja.net/ayuda/ABD004.pdf
Podemos citar este pequeño tutorial acerca de la creacion de replicas.
Sencillo y entendible:
http://www.mty.itesm.mx/rectoria/dda/usols/creacion.htm
Informacion:
Veamos cómo crear una réplica de nuestra base de datos:
- Abre la base de datos DB1 (o de cualquier base de datos que tengas)
- Accede a Herramientas > Réplica > Crear réplica. Aparecerá un mensaje de aviso:
- Contesta afirmativamente.
- Pulsa en Sí
- Acepta el nombre que ofrece Access
Sin embargo, los datos podremos editarlos en cualquiera de las réplicas que hayamos realizado.
- Acepta el último cuadro de diálogo que ha aparecido.
- Añade un nuevo DATO en la base de datos principal para probar la sincronización entre bases de datos.
- Accede a Herramientas >Réplica >Sincronizar ahora
- Acepta el cuadro de diálogo que aparece.
- Acepta
- Abre la tabla Réplica de DB1 y observa los cambios
pregunta que pasa si el server arbitro se cae, la disponibilidad pasa ser prácticamente de ese cierto o que esquema puedo adoptar no puedo dejar que una base de datos se caigo ni 30 segundos
ResponderEliminar