Información general de la creación de reflejo de la base de datos

Actualizado: 5 de diciembre de 2005

La creación de reflejo de la base de datos es una solución de software usada principalmente para aumentar la disponibilidad de una base de datos. La creación de reflejo se implementa en cada una de las bases de datos y sólo funciona con las que utilizan el modelo de recuperación completa. Los modelos de recuperación simple y por medio de registros de operaciones masivas no admiten la creación de reflejo de la base de datos. Por lo tanto, todas las operaciones masivas se registran siempre por completo. La creación de reflejo de una base de datos funciona con cualquier nivel de compatibilidad con bases de datos.

[!NOTA] No es posible reflejar las bases de datos master, msdb, tempdb o model.

La creación de reflejo de la base de datos mantiene dos copias de una sola base de datos que debe residir en diferentes instancias de SQL Server Database Engine (Motor de base de datos de SQL Server) (instancias de servidor). Generalmente, estas instancias de servidor residen en equipos de diferentes ubicaciones. Una instancia de servidor da servicio a la base de datos para los clientes (el servidor principal), mientras la otra actúa como un servidor en espera semiactiva o activa (el servidor reflejado), en función de la configuración y el estado de la sesión de creación de reflejo. Cuando una sesión de creación de reflejo de la base de datos está sincronizada, la creación de reflejo de la base de datos proporciona un servidor en espera activa que admite la conmutación por error rápida sin que se produzca ninguna pérdida de datos derivada de las transacciones confirmadas. Cuando la sesión no está sincronizada, el servidor reflejado suele estar disponible como servidor en espera semiactiva (con posible pérdida de datos).

Ventajas de la creación de reflejo de la base de datos

La creación de reflejo de la base de datos es una estrategia sencilla que ofrece las siguientes ventajas:

  • Aumenta la protección de los datos.
    La creación de reflejo de la base de datos proporciona una redundancia completa o casi completa de los datos, en función de si el modo de funcionamiento es el de alta seguridad o el de alto rendimiento. Para obtener más información, vea "Modos de funcionamiento", más adelante en este tema.
  • Incrementa la disponibilidad de una base de datos.
    Si se produce un desastre en el modo de alta seguridad con conmutación por error automática, la conmutación por error pone en conexión rápidamente la copia en espera de la base de datos, sin pérdida de datos. En los demás modos operativos, el administrador de bases de datos tiene la alternativa del servicio forzado (con una posible pérdida de datos) para la copia en espera de la base de datos. Para obtener más información, vea "Conmutación de funciones", más adelante en este tema.
  • Mejora la disponibilidad de la base de datos de producción durante las actualizaciones.
    Para minimizar el tiempo de inactividad de una base de datos reflejada, puede actualizar secuencialmente las instancias de SQL Server que participan en una sesión de reflejo de la base de datos, incurriendo sólo en el tiempo de inactividad de una única conmutación por error. Este formulario de actualización se conoce como actualización sucesiva. Para obtener más información, vea Cómo instalar un Service Pack en un sistema con un tiempo de inactividad mínimo para las bases de datos reflejadas.

Funcionamiento de la creación de reflejo de la base de datos

Los dos servidores, principal y reflejado, se comunican y colaboran como asociados en una sesión de creación de reflejo de la base de datos. Los dos asociados realizan funciones complementarias en la sesión: la función principal y la función de reflejo. En cada momento, un asociado realiza la función principal y el otro realiza la función de reflejo. Cada asociado se describe como poseedor de su función actual. El asociado que posee la función principal se denomina servidor principal y su copia de la base de datos es la base de datos principal actual. El asociado que posee la función de reflejo se denomina servidor reflejado y su copia de la base de datos es la base de datos reflejada actual. Cuando se implementa la creación de reflejo de la base de datos en un entorno de producción, la base de datos principal es la base de datos de producción.

La creación de reflejo de la base de datos implica rehacer cada operación de inserción, actualización y eliminación que ocurre desde la base de datos principal a la base de datos reflejada tan pronto como sea posible. Para rehacer estas operaciones se envía cada entrada del registro de transacciones activo al servidor reflejado que, en secuencia, aplica las entradas del registro a la base de datos reflejada lo más rápido posible. A diferencia de la réplica, que trabaja en el nivel lógico, la creación de reflejo de la base de datos trabaja en el registro físico.

Modos de funcionamiento

Una sesión de creación de reflejo de la base de datos se ejecuta en modo sincrónico o asincrónico. Con el funcionamiento asincrónico, las transacciones se confirman sin esperar a que el servidor reflejado escriba el registro en el disco, lo que maximiza el rendimiento. Con el funcionamiento sincrónico, una transacción confirmada se confirma en ambos asociados, pero a costa de aumentar la latencia de las transacciones.

Existen dos modos de funcionamiento de la creación de reflejo. Uno de ellos, el modo de alta seguridad, admite el funcionamiento sincrónico. En el modo de alta seguridad, cuando se inicia una sesión, el servidor reflejado sincroniza la base de datos reflejada con la base de datos principal lo más rápido posible. Una vez sincronizadas las bases de datos, una transacción confirmada se confirma en ambos asociados, pero a costa de aumentar la latencia de las transacciones.

El segundo modo de funcionamiento, el modo de alto rendimiento, se ejecuta de manera asincrónica. El servidor reflejado intenta hacer frente a las entradas de registro enviadas por el servidor principal. La base de datos reflejada podría ir un poco retrasada con respecto a la base de datos principal; sin embargo, el espacio entre las bases de datos suele ser pequeño. No obstante, la diferencia puede ser considerable si el servidor principal soporta una gran carga de trabajo o el sistema del servidor reflejado se encuentra sobrecargado.

En el modo de alto rendimiento, en cuanto el servidor principal envía una entrada de registro al servidor reflejado, el servidor principal envía una confirmación al cliente, sin esperar una confirmación del servidor reflejado. Esto significa que las transacciones se confirman sin esperar a que el servidor reflejado escriba el registro en el disco. Este funcionamiento asincrónico permite que el servidor principal se ejecute con la mínima latencia de transacciones, pero a riesgo de una pérdida potencial de datos.

Todas las sesiones de creación de reflejo de la base de datos sólo admiten un servidor principal y un servidor reflejado. En la siguiente ilustración se muestra esta configuración.

Asociados en una sesión de creación de reflejo de la base de datos

El modo de alta seguridad con conmutación por error automática requiere una tercera instancia de servidor denominada testigo. A diferencia de los dos asociados, el testigo no sirve a la base de datos. El testigo simplemente admite la conmutación por error automática al comprobar que el servidor principal se encuentre activo y en funcionamiento. El servidor reflejado inicia la conmutación por error automática sólo si éste y el testigo permanecen mutuamente conectados después de haberse desconectado del servidor principal.

En la siguiente ilustración se muestra una configuración que incluye un testigo.

Sesión de creación de reflejo que incluye un testigo

Para obtener más información, vea "Conmutación de funciones", más adelante en este tema.

Seguridad de las transacciones y modos de funcionamiento

Que el modo de funcionamiento sea asincrónico o sincrónico depende de la configuración de seguridad de las transacciones. Si utiliza exclusivamente SQL Server Management Studio para configurar la creación de reflejo de la base de datos, la configuración de seguridad de las transacciones se realiza automáticamente cuando selecciona el modo operativo.

Si utiliza Transact-SQL para configurar la creación de reflejo de la base de datos, necesita comprender cómo establecer la seguridad de las transacciones. El control de la seguridad de las transacciones está a cargo de la propiedad SAFETY de la instrucción ALTER DATABASE. En la base de datos que se va a reflejar, la opción SAFETY se establece en FULL o en OFF.

  • Si la opción SAFETY se establece en FULL, la operación de creación de reflejo de la base de datos es sincrónica, tras la fase inicial de sincronización. Si un testigo se establece en el modo de alta seguridad, la sesión admite la conmutación por error automática.
  • Si la opción SAFETY se establece en OFF, la operación de creación de reflejo de la base de datos es asincrónica. La sesión se ejecuta en modo de alto rendimiento y la opción WITNESS también debe establecerse en OFF.

Para obtener más información, vea Configuración de Transact-SQL y modos de funcionamiento de la creación de reflejo de la base de datos.

Conmutación de funciones

En el contexto de una sesión de creación de reflejo de la base de datos, las funciones principal y reflejo suelen ser intercambiables en un proceso conocido como conmutación de funciones. La conmutación de funciones implica la transferencia de la función principal al servidor reflejado. En la conmutación de funciones, el servidor reflejado actúa como el asociado de conmutación por error del servidor principal. Cuando se produce una conmutación de funciones, el servidor reflejado asume la función de servidor principal y pone en conexión su copia de la base de datos como la nueva base de datos principal. El servidor principal anterior, si está disponible, asume la función de reflejo y su base de datos se convierte en la nueva base de datos reflejada. Las funciones pueden conmutarse repetidamente.

Hay tres formas de intercambiar funciones:

  • Conmutación por error automática
    Esta función requiere el modo de alta seguridad y la presencia del servidor reflejado y de un testigo. La base de datos ya debe estar sincronizada y el testigo debe estar conectado al servidor reflejado.
    La función del testigo es comprobar si un determinado servidor asociado está activo y en funcionamiento. Si el servidor reflejado pierde su conexión con el servidor principal, pero el testigo aún está conectado al servidor principal, el servidor reflejado no inicia una conmutación por error. Para obtener más información, vea Testigo de creación de reflejo de la base de datos.
  • Conmutación por error manual
    Esta función requiere el modo de alta seguridad. Los asociados deben estar conectados entre sí y la base de datos ya debe estar sincronizada.
  • Servicio forzado (con posible pérdida de datos)
    En los modos de alto rendimiento y alta seguridad sin conmutación por error automática, se puede forzar el servicio si el servidor principal no ha funcionado y el servidor reflejado está disponible.
    ms189852.note(es-es,SQL.90).gifImportante:
    El modo de alto rendimiento se ha diseñado para que se ejecute sin un testigo. No obstante, si existe un testigo, el servicio forzado requiere que el testigo esté conectado al servidor reflejado.

En cualquier escenario de conmutación de funciones, una vez que la nueva base de datos principal se pone en conexión, las aplicaciones cliente se pueden recuperar rápidamente si vuelven a conectarse a la base de datos.

Compatibilidad con la creación de reflejo de la base de datos

Los asociados de creación de reflejo de la base de datos y los testigos se admiten en SQL Server 2005 Standard Edition SP1 y versiones posteriores, y en SQL Server 2005 Enterprise Edition SP1 y versiones posteriores. Pero los asociados deben usar la misma edición y la creación de reflejo de la base de datos asincrónica (el modo de alto rendimiento) sólo se admite en SQL Server 2005 Enterprise Edition SP1 y versiones posteriores. Los testigos también se admiten en SQL Server 2005 Workgroup Edition SP1 y versiones posteriores, y en SQL Server 2005 Express Edition SP1 y versiones posteriores.

Temas relacionados con la creación de reflejo de la base de datos

Vea también

Otros recursos

Conectar clientes a una base de datos reflejada
Creación de reflejo de la base de datos y otras características y componentes
sp_dbcmptlevel (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005