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 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 suscripción expirada 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 expirará y el trabajo Limpieza de suscripciones expiradas que se ejecuta en el publicador quitará la suscripción. (Antes de la corrección en KB4014798, el trabajo se denomina limpieza de distribución). La suscripción debe volver a crearse y sincronizarse.
Si una suscripción push caduca, se elimina por completo, pero no ocurre así con las suscripciones pull. 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, debe reinicializarse, porque se quitan los metadatos de la suscripción. Las suscripciones que no se reinicializan se quitan con el trabajo Limpieza de suscripciones expiradas que se ejecuta en el publicador. De forma predeterminada, esta tarea se ejecuta diariamente; elimina todas las suscripciones push que no se han sincronizado durante el doble 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 expirar si no se ha sincronizado en 14 días.
Si el publicador 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, una suscripción expira ú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 expira el día 14 solamente 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.
A los 28 días de la última sincronización, la tarea Limpieza de suscripciones expiradas elimina la suscripción. Si una suscripción push expira, se elimina por completo, pero no ocurre así con las suscripciones pull. Debe limpiar las suscripciones de extracción en el suscriptor. Para más información, consulte Delete a Pull Subscription.
Consideraciones para establecer el período de retención de publicaciones de combinación
Tenga en cuenta las siguientes consideraciones al configurar el período de retención de las publicaciones de mezcla:
El período de retención de las publicaciones de combinación tiene un período de gracia de 24 horas para incluir a los suscriptores en diferentes zonas horarias. Si, por ejemplo, se establece un período de retención de un día, el período de retención real será 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 suscripciones y publicaciones hasta que se haya alcanzado el período de retención. Tenga cuidado al especificar un valor alto para el período de retención, ya que puede afectar negativamente al 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 expiren nunca (un valor de 0 para
@retention), pero no se recomienda usar 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, tras una limpieza, se aumenta el período de retención de la publicación y una suscripción intenta combinarse con el Publicador (que ya ha eliminado los metadatos), la suscripción no expirará 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.