Database mirroring es una solución de alta disponibilidad implementada en hardware comunes.
En una solución de Database mirroring pueden actuar tres participantes con diferentes roles.
Principal Server: Es el servidor que mantiene la copia activa de la BD que están utilizando los clientes. Cada transacción es realizada al tiempo en el servidor y en el espejo
Mirror Server : Mantiene la copia de la Bd principal sincronizada
Witness Server: Es un componente adicional (Instancia o equipo) que monitoriza el estado del los servidores y en caso de presentarse una falla en el principal, habilita al Mirror como Principal
Existen tres tipos de modos de configuración de Database Mirroring
Alta Disponibilidad: Garantiza la consistencia transaccional entre el servidor principal y el espejo y ofrece Automatic Failover por medio de un Testigo
Alta Protección: Garantiza la consistencia transaccional entre el servidor principal y el espejo
Alto Rendimiento: Aplica la 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.
Para configurar un el Data base Mirroring tu debes realizar los siguientes pasos
*Crear los mirroring Endpoints y logins.
*Configurar el modo de recuperación FULL
*Realizar un Backup de la BD principal y restaurarla en el espejo
*Copiar cualquier recurso adicional en el servidor espejo
La comunicación entre los servidores se hace por medio de Endpoints
Un ejemplo de un EndPoints seria:
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 4099 )
FOR DATABASE_MIRRORING
(
AUTHENTICATION = WINDOWS KERBEROS,
ENCRYPTION = SUPPORTED,
ROLE=ALL);
Estos Endpoint deberían ser creados en cada uno de los componentes de la solución especificando su respectivo role
Los roles pueden ser ALL, PARTNER o WITNESS
Para que los participantes sepan quienes son los otros componentes es necesario configurar la base de datos para que los conozca
En el servidor Principal debemos ejecutar esta instrucción para que el conozca quien es su compañero
ALTER DATABASE PRUEBA SET PARTNER ='TCP://MIRROR.DOMINIO.com:5022'
En el Servidor espejo debemos ejecutar esta instrucción
ALTER DATABASE PRUEBA SET PARTNER = 'TCP://PRINCIPAL.DOMINIO.com:5022'
Y si tenemos un testigo debemos ejecutar la siguiente instrucción en ambos servidores
ALTER DATABASE PRUEBA SET PARTNER = 'TCP://TESTIGO.DOMINIO.com:5023'
Existen otras configuraciones que se pueden realizar con ALTER DATABASE como son:
Safety: Esta opción puede tomar dos valores FULL o OFF. Cuando esta configurada como FULL las transacciones se realizan sincrónicamente y se garantiza el Fails over automático. Cuando esta en OFF las transacciones se realizan asíncronamente
ALTER DATABASE Prueba SET PARTNER SAFETY FULL
Failover: Realiza manualmente un fail over del principal al espejo. Esto se ejecuta en el Principal
ALTER DATABASE Prueba SET PARTNER FAILOVER
Force_Service_Allow_Data_Loss: Forza al espejo a tomar el rol de principal. Esta se utiliza cuando el principal no esta disponible y el testigo esta Off
ALTER DATABASE Prueba SET PARTNER
FORCE_SERVICE_ALLOW_DATA_LOSS
sábado, 27 de junio de 2009
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario