Compartir a través de


Réplica y creación de reflejo de la base de datos

Actualizado: 17 de julio de 2006

La creación de reflejo de la base de datos se puede usar conjuntamente con la réplica para proporcionar disponibilidad para la base de datos de publicaciones. La creación de reflejo de la base de datos incluye la creación de dos copias de una sola base de datos que suelen residir en diferentes equipos. En cada momento, sólo una copia de la base de datos está disponible para los clientes. Esta copia se conoce como la base de datos principal. Las actualizaciones realizadas por los clientes en la base de datos principal se aplican a la otra copia de la base de datos, conocida como la base de datos reflejada. La creación de reflejo incluye la aplicación a la base de datos reflejada del registro de transacciones con todas las inserciones, actualizaciones o eliminaciones efectuadas en la base de datos principal.

La conmutación por error de la réplica a una entidad reflejada sólo se admite para las bases de datos de publicaciones; no se admite para la base de datos de distribución ni para las bases de datos de suscripciones. Para obtener información sobre la recuperación de una base de datos de distribución o una base de datos de suscripciones sin necesidad de volver configurar la réplica, vea Realizar copias de seguridad de bases de datos de réplica y restaurarlas.

[!NOTA] Después de una conmutación por error, la entidad reflejada se convierte en la entidad de seguridad. En este tema, los términos "entidad de seguridad" y "reflejada" siempre hacen referencia a las entidades de seguridad y reflejada originales.

Requisitos y consideraciones para el uso de la réplica con la creación de reflejo de la base de datos

Se deben tener en cuenta los siguientes requisitos y consideraciones al utilizar la réplica con la creación de reflejo de la base de datos:

  • Las entidades de seguridad y reflejada deben compartir un distribuidor. Se recomienda que éste sea un distribuidor remoto, ya que proporciona mayor tolerancia a errores si se produce una conmutación por error imprevista en el publicador.
  • El publicador y el distribuidor deben ser de Microsoft SQL Server 2005. Los suscriptores pueden ser de SQL Server 2005 o pertenecer a una versión anterior, aunque las suscripciones de extracción de la réplica de mezcla pertenecientes a una versión anterior no admiten la conmutación por error. En este caso, el agente se ejecuta en el suscriptor y las versiones anteriores del agente no están habilitadas para el reflejo. La réplica en estos suscriptores se reanuda si se produce la conmutación por recuperación de la base de datos reflejada a la de seguridad.
  • La réplica admite la creación de reflejo de la base de datos de publicaciones en la réplica de mezcla y en la réplica transaccional con suscriptores de sólo lectura o suscriptores de actualización en cola. No se admiten suscriptores de actualización inmediata, publicadores de Oracle, publicadores en una topología punto a punto ni republicación.
  • Los metadatos y los objetos que existen fuera de la base de datos, incluidos inicios de sesión, trabajos, servidores vinculados, etc., no se copian en la entidad reflejada. Si se requieren los metadatos y los objetos en la entidad reflejada, se deben copiar manualmente. Para obtener más información, vea Administrar inicios de sesión y trabajos tras la conmutación de funciones.

Configurar la réplica con la creación de reflejo de la base de datos

La configuración de la réplica y la creación de reflejo de la base de datos implica cinco pasos. Cada paso se describe en detalle en la siguiente sección.

  1. Configurar el publicador
  2. Configurar la creación de reflejo de la base de datos
  3. Configurar la entidad reflejada de manera que utilice el mismo distribuidor que la entidad de seguridad
  4. Configurar los agentes de réplica para la conmutación por error
  5. Agregar las entidades de seguridad y reflejada al Monitor de réplica

El orden de los pasos 1 y 2 se puede invertir.

Para configurar la creación de reflejo de la base de datos para una base de datos de publicaciones

  1. Configure el publicador:

    1. Se recomienda el uso de un distribuidor remoto. Para obtener más información acerca de cómo configurar la distribución, vea Configurar la distribución.

    2. Se puede habilitar una base de datos para publicaciones transaccionales y de instantáneas y/o para publicaciones de mezcla. Para las bases de datos reflejadas que incluirán más de un tipo de publicación, se debe habilitar la base de datos para ambos tipos en el mismo nodo usando sp_replicationdboption. Por ejemplo, puede ejecutar el siguiente procedimiento almacenado en la entidad de seguridad:

      exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='publish', @value=true
      exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='mergepublish', @value=true
      

      Para obtener más información acerca de cómo crear publicaciones, vea Publicar datos y objetos de base de datos.

  2. Configurar la creación de reflejo de la base de datos. Para obtener más información, vea Cómo configurar una sesión de creación de reflejo de la base de datos (SQL Server Management Studio) y Configurar la creación de reflejo de la base de datos.

  3. Configurar la distribución para la entidad reflejada. Indique el nombre de la entidad reflejada como el publicador y especifique el mismo distribuidor y la misma carpeta de instantáneas que se utilizan en la entidad de seguridad. Por ejemplo, si está configurando la réplica con procedimientos almacenados, ejecute sp_adddistpublisher en el distribuidor y, a continuación, ejecute sp_adddistributor en la entidad reflejada. Para sp_adddistpublisher:

    • Establezca el valor del parámetro @publisher en el nombre de red de la entidad reflejada.
    • Establezca el valor del parámetro @working_directory en la carpeta de instantáneas que se utiliza en la entidad de seguridad.
  4. Especifique el nombre de la entidad reflejada para el parámetro de agente –PublisherFailoverPartner. Este parámetro es necesario para que los siguientes agentes identifiquen la entidad reflejada después de una conmutación por error:

    • Agente de instantáneas (para todas las publicaciones)
    • Agente de registro del LOG (para todas las publicaciones transaccionales)
    • Agente de lectura de cola (para las publicaciones transaccionales que admiten suscripciones de actualización en cola)
    • Agente de mezcla (para suscripciones de mezcla)
    • Escucha de réplica de SQL Server (replisapi.dll: para suscripciones de mezcla sincronizadas usando la sincronización Web)
    • Control ActiveX de mezcla de SQL (para suscripciones de mezcla sincronizadas con el control)

    El Agente de distribución y el Control ActiveX de distribución de SQL no tienen este parámetro porque no se conectan al publicador.

    Los cambios en los parámetros del agente tendrán efecto la próxima vez que se inicie el agente. Si el agente se ejecuta sin interrupción, debe detener y reiniciar el agente. Los parámetros se pueden especificar en perfiles de agente y desde el símbolo del sistema. Para obtener más información, vea:

    Se recomienda agregar el parámetro –PublisherFailoverPartner a un perfil de agente y, a continuación, especificar el nombre de la entidad reflejada en el perfil. Por ejemplo, si configura la réplica con procedimientos almacenados:

    -- Execute sp_help_agent_profile in the context of the distribution database to get the list of profiles.
    -- Select the profile id of the profile that needs to be updated from the result set.
    -- In the agent_type column returned by sp_help_agent_profile: 
    -- 1 = Snapshot Agent; 2 = Log Reader Agent; 3 = Distribution Agent; 4 = Merge Agent; 9 = Queue Reader Agent.
    
    exec sp_help_agent_profile
    
    -- Setting the -PublisherFailoverPartner parameter in the default Snapshot Agent profile (profile 1).
    -- Execute sp_add_agent_parameter in the context of the distribution database.
    exec sp_add_agent_parameter @profile_id = 1, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'<Failover Partner Name>'
    
    -- Setting the -PublisherFailoverPartner parameter in the default Merge Agent profile (profile 6).
    -- Execute sp_add_agent_parameter in the context of the distribution database.
    exec sp_add_agent_parameter @profile_id = 6, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'<Failover Partner Name>'
    
  5. Agregue las entidades de seguridad y reflejada al Monitor de réplica. Para obtener más información, vea Cómo agregar y quitar publicadores del Monitor de réplica (Monitor de réplica).

Mantener una base de datos de publicaciones reflejada

El mantenimiento de una base de datos de publicaciones reflejada se realiza básicamente de la misma forma que para una base de datos no reflejada, con las siguientes salvedades:

  • La administración y la supervisión deben tener lugar en el servidor activo. En SQL Server Management Studio, las publicaciones aparecen debajo de la carpeta Publicaciones locales sólo para el servidor activo. Por ejemplo, si produce la conmutación por error a la entidad reflejada, las publicaciones se muestran en la entidad reflejada y dejan de aparecer en la entidad de seguridad. Si se produce la conmutación por error de la base de datos a la entidad reflejada, puede que sea necesario actualizar manualmente Management Studio y el Monitor de réplica para que se refleje el cambio.

  • El Monitor de réplica muestra los nodos del publicador en el árbol de objetos de la entidad de seguridad y reflejada. Si la entidad de seguridad es el servidor activo, la información de publicación sólo se mostrará debajo del nodo de la entidad de seguridad en el Monitor de réplica.
    Si la entidad reflejada es el servidor activo:

    • Si se produce un error en un agente, sólo se indicará en el nodo de la entidad de seguridad, no en el nodo de la entidad reflejada.
    • Si la entidad de seguridad no está disponible, los nodos de la entidad de seguridad y reflejada muestran listas de publicaciones idénticas. La supervisión debe realizarse en las publicaciones debajo del nodo de la entidad reflejada.
  • Si se utilizan procedimientos almacenados u objetos de administración de réplica (RMO) para administrar la réplica en la entidad reflejada, en los casos en que se especifica el nombre del publicador, se debe especificar el nombre de la instancia en la que la base de datos se habilitó para la réplica. Para determinar el nombre correcto, use la función publishingservername.
    Cuando se crea el reflejo de una base de datos de publicaciones, los metadatos de la réplica que se encuentran almacenados en la base de datos reflejada son idénticos a los que se encuentran almacenados en la base de datos principal. En consecuencia, para las bases de datos de publicaciones habilitadas para réplica en la entidad de seguridad, el nombre de la instancia del publicador que está almacenado en las tablas del sistema en la entidad reflejada es el nombre de la entidad de seguridad, en lugar del nombre de la entidad reflejada. Esto afecta a la configuración y al mantenimiento de la réplica si se produce la conmutación por error de la base de datos de publicaciones a la entidad reflejada. Por ejemplo, si se configura la réplica con procedimientos almacenados en la entidad reflejada después de una conmutación por error y se desea agregar una suscripción de extracción a una base de datos de publicaciones que estaba habilitada en la entidad de seguridad, se debe especificar el nombre de la entidad de seguridad, en lugar del nombre de la entidad reflejada, para el parámetro @publisher de sp_addpullsubscription o de sp_addmergepullsubscription.
    Si se habilita una base de datos de publicaciones en la entidad reflejada después de una conmutación por error a dicha entidad, el nombre de la instancia del publicador que está almacenado en las tablas del sistema es el nombre de la entidad reflejada. En este caso, se debe utilizar el nombre de la entidad reflejada para el parámetro @publisher.

    [!NOTA] En algunos casos, por ejemplo sp_addpublication, el parámetro @publisher sólo se admite para publicadores que no sean de SQL Server. En estos casos, no es relevante para la creación de reflejo de la base de datos de SQL Server.

  • Para sincronizar una suscripción en Management Studio tras una conmutación por error: sincronice las suscripciones de extracción del suscriptor y sincronice las suscripciones de inserción del publicador activo.

Comportamiento de la réplica si se quita la creación de reflejo

Tenga en cuenta las siguientes consideraciones si se quita la creación de reflejo de la base de datos de una base de datos publicada:

  • Si la base de datos de publicaciones de la entidad de seguridad ya no está reflejada, la réplica continúa funcionando sin variaciones con la entidad de seguridad original.
  • Si se produce la conmutación por error de la base de datos de publicaciones de la entidad de seguridad a la entidad reflejada y, por consiguiente, se deshabilita o quita la relación de creación de reflejo, los agentes de réplica no funcionarán con la entidad reflejada. Si la entidad de seguridad se pierde de forma permanente, deshabilite y, a continuación, vuelva a configurar la réplica con la entidad reflejada especificada como publicador.
  • Si se quita por completo la creación de reflejo de la base de datos, la base de datos reflejada se encontrará en un estado de recuperación y deberá restaurarse para ser funcional. El comportamiento de la base de datos recuperada con respecto a la réplica depende de si se ha especificado la opción KEEP_REPLICATION. Esta opción obliga a la operación de restauración a conservar la configuración de la réplica cuando restaure una base de datos publicada en un servidor distinto del servidor en el que se creó la copia de seguridad. Utilice la opción KEEP_REPLICATION sólo cuando la otra base de datos de publicaciones no esté disponible. Esta opción no es compatible si la otra base de datos de publicaciones sigue intacta y continúa con la réplica. Para obtener más información acerca de KEEP_REPLICATION, vea RESTORE (Transact-SQL).

Comportamiento del Agente de registro del LOG

En la siguiente tabla se describe el comportamiento del Agente de registro del LOG en los distintos modos de funcionamiento de la creación de reflejo de la base de datos. Para obtener más información acerca de los modos de funcionamiento, vea Configuración de Transact-SQL y modos de funcionamiento de la creación de reflejo de la base de datos.

Modo de funcionamiento Comportamiento del Agente de registro del LOG si la entidad reflejada no está disponible

Modo de seguridad alta con conmutación por error automática

Si la entidad reflejada no está disponible, el Agente de registro del LOG propaga los comandos a la base de datos de distribución. La entidad de seguridad no puede realizar la conmutación por error a la entidad reflejada hasta que la entidad reflejada vuelva a estar conectada e incluya todas las transacciones de la entidad de seguridad.

Modo de alto rendimiento

Si la entidad reflejada no está disponible, la base de datos principal se ejecuta de forma expuesta (es decir, sin reflejo). Sin embargo, el Agente de registro del LOG sólo replica las transacciones reforzadas en la entidad reflejada. Si se fuerza el servicio y el servidor reflejado asume la función de la entidad de seguridad, el Agente de registro del LOG trabajará con la entidad reflejada y comenzará a recoger las transacciones nuevas. Para obtener más información, vea Servicio forzado (con posible pérdida de datos).

Tenga en cuenta que aumentará la latencia de réplica si la entidad reflejada se retrasa con respecto a la entidad de seguridad.

Modo de seguridad alta sin conmutación por error automática

Se garantiza que todas las transacciones confirmadas se refuerzan en disco en la entidad reflejada. El Agente de registro del LOG sólo replica las transacciones reforzadas en la entidad reflejada. Si la entidad reflejada no está disponible, la entidad de seguridad no permite que continúe la actividad en la base de datos; por lo tanto, el Agente de registro del LOG no contará con transacciones para replicar.

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido modificado:
  • Se agregó una aclaración sobre el orden de ejecución de sp_adddistpublisher y sp_adddistributor cuando se configura la distribución para la entidad reflejada.

Vea también

Conceptos

Réplica y trasvase de registros

Otros recursos

Creación de reflejo de la base de datos
Implementar la réplica

Ayuda e información

Obtener ayuda sobre SQL Server 2005