Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
Las suscripciones se pueden desactivar o pueden expirar si no se sincronizan en un período de retenciónespecificado. 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, vea Establecer el período de expiración para las suscripciones, Establecer el período de retención de distribución para las publicaciones transaccionales (SQL Server Management Studio) y Configurar la publicación y la distribución.
Replicación transaccional
La replicación transaccional usa 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 está sincronizada dentro del periodo máximo de retención de la distribución (por defecto de 72 horas) y hay cambios en la base de datos de distribución que no se entregan al Suscriptor, la suscripción se marca como desactivada por el trabajo de limpieza de Suscripciones Caducadas que se ejecuta en el Distribuidor. Debes reiniciar la suscripción.
Si una suscripción no se sincroniza dentro del periodo de retención de publicaciones (por defecto de 336 horas), la suscripción expira y se cancela mediante el trabajo de limpieza de suscripción expirada que se ejecuta en el Publisher. (Antes de la corrección en KB4014798, el trabajo se llamaba Limpieza de distribución.) Debes recrear y sincronizar la suscripción.
Si una suscripción push caduca, se elimina por completo, pero las suscripciones pull no se eliminan por completo. Debe limpiar las suscripciones de extracción en el suscriptor. Para más información, consulte Delete a Pull Subscription.
Replicación de mezcla
La replicación de mezcla usa el período de retención de la publicación (los parámetros @retention y @retention_period_unit de sp_addmergepublication (Transact-SQL)). Cuando una suscripción expira, debes reinicializarla porque el proceso elimina los metadatos de la suscripción. El trabajo de limpieza de la suscripción caducada que se ejecuta en el Publisher elimina las suscripciones que no se reinician. Por defecto, este trabajo se ejecuta a diario. Elimina todas las suscripciones push que no se sincronizan durante un período equivalente al doble del período de retención de la publicación. Por ejemplo:
Si una publicación tiene un periodo de retención de 14 días, la suscripción puede expirar si no se sincroniza en 14 días.
Si el Publisher está ejecutando SQL Server 2005 (9.x) o una versión posterior y el agente de la suscripción es de SQL Server 2005 (9.x) o una versión posterior, la suscripción solo expira si hay 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 periodo de retención se establece en 14 días, la suscripción expira el día 14 solo si hay cambios en los datos de clientes alemanes en los últimos 14 días.
Desde 14 hasta 27 días después de la última sincronización, puedes reiniciar la suscripción.
A los 28 días de la última sincronización, el trabajo de limpieza de la suscripción caducada cancela la suscripción. Si una suscripción de tipo push expira, se elimina por completo, pero las suscripciones de tipo pull no se eliminan. Debe limpiar las suscripciones de extracción en el suscriptor. Para más información, consulte Delete a Pull Subscription.
Consideraciones para establecer el periodo de retención de publicaciones en la fusión
Tenga en cuenta las siguientes consideraciones al configurar el período de retención de las publicaciones de mezcla:
El periodo de retención para las publicaciones fusionadas incluye un periodo de gracia de 24 horas para acomodar a los suscriptores en diferentes zonas horarias. Por ejemplo, si estableces un periodo de retención de un día, el periodo real de retención es de 48 horas.
La limpieza de los metadatos de replicación de fusiones depende del periodo de retención de publicaciones:
La replicación no puede limpiar los metadatos de las bases de datos de publicación y suscripción hasta que se alcance el período de retención. Ten precaución al especificar un valor alto para el periodo de retención, ya que puede afectar negativamente al rendimiento de la replicación. Usa una configuración más baja si puedes predecir con fiabilidad que todos los suscriptores se sincronizarán regularmente dentro de ese periodo.
Puedes especificar que las suscripciones nunca expiran (un valor de 0 para
@retention), pero no uses este valor porque los metadatos no pueden limpiarse.
Establece el periodo de retención de cualquier reeditor a un valor igual o menor que el periodo de retención establecido en el Publisher original. Además, utiliza los mismos valores de retención de publicaciones para todos los editores y sus socios alternativos de sincronización. Usar valores diferentes podría 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 aumentas el periodo de retención de publicaciones tras una limpieza y una suscripción intenta fusionarse con el Publisher (que ya eliminó los metadatos), la suscripción no expirará debido al aumento del valor de retención. Sin embargo, el Publicador no tiene suficientes metadatos para descargar los cambios al Suscriptor, lo que provoca la no convergencia.