Saltar al contenido

Mirroring SQL Server

04/09/2012

El Mirroring (Base de Datos Espejo) proporciona una solución de alta disponibilidad de bases de datos, aumenta la seguridad y la disponibilidad, mediante la duplicidad de la base de datos.

Esta tecnología esta disponible a partir de la versión de SQL Server 2005 (es la evolución del log shipping presente en versiones anteriores)

En el Mirroring tenemos un servidor principal/primario que mantiene la copia activa de la base de datos (bbdd accesible). Otro servidor de espejo que mantiene una copia de la base de datos principal y aplica todas las transacciones enviadas por el Servidor Principal (en el que no se podrá acceder a la bbdd). Y un servidor testigo/arbitro que permite recuperaciones automáticas ante fallos, monitoriza el servidor principal y el de espejo para en caso de caída cambiar los roles (servidor opcional, no es obligatorio).

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.
Modo Recuperación
Automática
ante Fallos
Posible
Pérdida
de Datos
Servidor Testigo
(Witness)
Transaction
Safety
Alta Disponibilidad
(High Availability)

SI

NO

SI

ON

Alta Protección
(High Protection)

NO

NO

NO

ON

Alto Rendimiento
(High Performance)

NO

SI

NO

OFF

From → SQL Server

7 comentarios
  1. Solo comentar que en la versión de SQL Server 2012 SI que se puede acceder a los servidores secundarios para lectura, recomendando su uso para entornos de reporting o DWH mientras se descarga el servidor principal.

    También diferenciar que existe la posibilidad de que ese ‘mirroring’ (que es una sincronización) sea de forma ‘síncrona’ o ‘asíncrona’.

    Saludos,
    Xavi.

  2. Teixi, por lo que tengo entendido en la versión 2005 y 2008 también se puede acceder en modo lectura siempre y cuando hagas un snapshot…
    Gracias por la info!!!

    • Cayo Soyer De la Cruz permalink

      Hola Aaron, entiendo que el snapshot se tiene que realizar en el servidor secundario, puedes indicarme un pequeño procedimiento, para recuperar el servidor mirroring con la ayuda del snapshot. Muchas gracias de antemano.

  3. Correcto, pero entonces estás consultando ‘una foto’ de la base de datos. Las modificaciones posteriores a ese Snapshot no se veran reflejados en las consultas, con lo que no tiene mucho valor si lo que quieres es acceder a datos ‘reales’ en tiempo real.

    Saludos,
    Xavi.

  4. El mirroring es una antigua inquietud desde épocas de los IBM Mainframes.
    Era carísimo
    Muy bueno. Lo retuiteo
    Abrazos

  5. IIslas permalink

    Teixi

    El crear una Snapshot, no te lleva mucho tiempo y podrias hacerlo mediante un job, por lo que los datos se verian «casi de forma real» (utopia)

  6. javierteixido permalink

    hola IIslas,

    podrías verlo ‘casi de forma real’ siempre que hicieras la query justo despues del snapshot… luego ya no valdría la pena porque los datos estarían desfasados 🙂

    Saludos,
    Xavi.

Deja un comentario