Desactivación y caducidad de las suscripciones

Las suscripciones se pueden desactivar o pueden caducar si no se sincronizan en un período de retención especificado. La acción que se produce depende del tipo de replicación y del período de retención que se supere.

Para establecer períodos de retención

Replicación transaccional

La replicación transaccional utiliza el período máximo de retención de distribución (el parámetro @max_distretention de sp_adddistributiondb (Transact-SQL)) y el período de retención de la publicación (el parámetro @retention de sp_addpublication (Transact-SQL)):

  • Si una suscripción no se sincroniza dentro del período máximo de retención de distribución (el valor predeterminado es de 72 horas) y existen cambios en la base de datos de distribución que no se han entregado al suscriptor, el trabajo Limpieza de la distribución que se ejecuta en el distribuidor marcará la suscripción como desactivada. Debe reinicializarse la suscripción.

  • Si una suscripción no se sincroniza dentro del período de retención de la publicación (el valor predeterminado es de 336 horas), la suscripción caducará y el trabajo Limpieza de suscripciones caducadas que se ejecuta en el publicador quitará la suscripción. La suscripción se debe volver a crear y sincronizar.

    Si una suscripción de inserción caduca, se quita completamente, pero esto no sucede con las suscripciones de extracción. Debe limpiar las suscripciones de extracción en el suscriptor. Para obtener más información, vea Cómo eliminar una suscripción de extracción (programación de la replicación con Transact-SQL).

Replicación de mezcla

La replicación de mezcla utiliza el período de retención de la publicación (los parámetros de @retention y @retention_period_unit de sp_addmergepublication (Transact-SQL)). Cuando una suscripción caduca, debe reinicializarse, porque se quitan los metadatos de la suscripción. Los suscripciones que no se reinicializan se quitan con el trabajo Limpieza de suscripciones caducadas que se ejecuta en el publicador. De forma predeterminada, este trabajo se ejecuta diariamente; quita todas las suscripciones de inserción que no se han sincronizado una vez transcurrido el doble de tiempo del período de retención de la publicación. Por ejemplo:

  • Su una publicación tiene un período de retención de 14 días, una suscripción puede caducar si no se ha sincronizado en 14 días.

    Si el publicador está ejecutando SQL Server 2005 o una versión posterior y el agente de la suscripción es de SQL Server 2005 o una versión posterior, una suscripción caduca únicamente si se han producido cambios en los datos de la partición de esa suscripción. Por ejemplo, suponga que un suscriptor recibe datos exclusivamente de los clientes de Alemania. Si el período de retención está establecido en 14 días, la suscripción caduca el día 14 sólo si se han producido cambios en los datos de los clientes alemanes en los últimos 14 días.

  • Desde los días 14 a 27 después de la última sincronización, la suscripción se puede reinicializar.

  • Transcurridos 28 días desde la última sincronización, el trabajo Limpieza de suscripciones caducadas quita la suscripción. Si una suscripción de inserción caduca, se quita completamente, pero esto no sucede con las suscripciones de extracción. Debe limpiar las suscripciones de extracción en el suscriptor. Para obtener más información, vea Cómo eliminar una suscripción de extracción (programación de la replicación con Transact-SQL).

Consideraciones para establecer el período de retención de publicaciones de mezcla

Tenga en cuenta las siguientes consideraciones al establecer el período de retención de publicaciones de mezcla:

  • El período de retención de las publicaciones de mezcla tiene un período de gracia de 24 horas para incluir a los suscriptores en diferentes zonas horarias. Por ejemplo, si se establece un período de retención de un día, el período de retención real es de 48 horas.

  • La limpieza de los metadatos de la replicación de mezcla depende del período de retención de la publicación:

    • La replicación no puede limpiar metadatos en las bases de datos de publicaciones y suscripciones hasta que se alcanza el período de retención. Tenga cuidado al especificar un valor alto en el período de retención, porque puede tener un impacto negativo en el rendimiento de la replicación. Se recomienda utilizar un valor bajo si puede prever con exactitud que todos los suscriptores se sincronizarán con regularidad dentro del período establecido.

    • Es posible especificar que las suscripciones no caduquen nunca (el valor 0 para @retention), pero se recomienda que no utilice este valor, porque los metadatos no se podrán limpiar.

  • El período de retención de cualquier republicador debe establecerse en un valor igual o menor que el período de retención establecido en el publicador original. También debe utilizar los mismos valores de retención de la publicación para todos los publicadores y sus asociados de sincronización alternativos. El uso de valores distintos puede conducir a la no convergencia. Si necesita cambiar el valor de retención de la publicación, vuelva a inicializar el suscriptor a fin de evitar la no convergencia de los datos.

  • Si después de realizar una limpieza se aumenta el período de retención y se intenta mezclar una suscripción con el publicador (que ya ha eliminado los metadatos), la suscripción no caducará debido al aumento del valor de retención. No obstante, el publicador no tendrá suficientes metadatos para descargar los cambios en el suscriptor, lo que daría lugar a la falta de convergencia.