Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Managed Instance
Les abonnements peuvent expirer ou être désactivés s'ils ne sont pas synchronisés durant une certaine période de rétention. L'action qui se produit dépend du type de réplication et de période de rétention qui est dépassée.
Pour définir des périodes de rétention, consultez Définir la période d’expiration des abonnements, Définir la période de rétention de distribution pour les publications transactionnelles (SQL Server Management Studio) et Configurer la publication et la distribution.
Réplication transactionnelle
La réplication transactionnelle utilise la période de conservation de distribution maximale (le paramètre @max_distretention de sp_adddistributiondb (Transact-SQL)) et la période de conservation de publication (le paramètre @retention de sp_addpublication (Transact-SQL)) :
Si un abonnement n’est pas synchronisé dans la période maximale de conservation de la distribution (par défaut de 72 heures) et qu’il y a des changements dans la base de données de distribution qui ne sont pas livrés à l’abonné, l’abonnement est marqué comme désactivé par le nettoyage de l’abonnement expiré qui s’exécute sur le distributeur. Vous devez réinitialiser l’abonnement.
Si un abonnement n’est pas synchronisé dans le délai de rétention des publications (valeur par défaut : 336 heures), l’abonnement expire et est supprimé par la tâche Nettoyage des abonnements expirés, qui s’exécute sur le serveur de publication. (Avant la correction dans KB4014798, la tâche s’appelait nettoyage de la distribution.) Vous devez recréer et synchroniser l’abonnement.
Si un abonnement push expire, il est complètement supprimé, mais les abonnements pull ne le sont pas. Vous devez nettoyer les abonnements par extraction de données au niveau de l'Abonné. Pour plus d’informations, voir Delete a Pull Subscription.
Réplication de fusion
La réplication de fusion utilise la période de conservation de publication (paramètres @retention et @retention_period_unit de sp_addmergepublication (Transact-SQL)). Lorsqu’un abonnement expire, vous devez le réinitialiser car le processus supprime les métadonnées de l’abonnement. Le nettoyage des abonnements expirés qui s'exécute sur le Publisher supprime les abonnements qui ne sont pas réinitialisés. Par défaut, ce travail s’exécute quotidiennement. Cela supprime tous les abonnements push qui ne se synchronisent pas pendant une durée égale au double de la période de rétention de publication. Par exemple :
Si une publication a une période de rétention de 14 jours, un abonnement peut expirer s’il ne se synchronise pas dans les 14 jours.
Si le Publisher exécute SQL Server 2005 (9.x) ou une version ultérieure et que l'agent de l'abonnement provient de SQL Server 2005 (9.x) ou d'une version ultérieure, un abonnement n'expire que s'il y a des modifications des données dans la partition de cet abonnement. Supposons par exemple qu'un Abonné ne reçoive de données clients que pour ses clients allemands. Si la période de rétention est fixée à 14 jours, l’abonnement expire au 14e jour seulement s’il y a des modifications des données clients allemandes au cours des 14 derniers jours.
De 14 à 27 jours après la dernière synchronisation, vous pouvez réinitialiser l’abonnement.
28 jours après la dernière synchronisation, la tâche Nettoyage des abonnements expirés supprime l’abonnement. Si un abonnement push expire, il est complètement supprimé, mais les abonnements pull ne le sont pas. Vous devez nettoyer les abonnements par extraction de données au niveau de l'Abonné. Pour plus d’informations, voir Delete a Pull Subscription.
Considérations pour fixer la période de conservation des publications issues de la fusion
Gardez à l’esprit les points suivants lorsque vous définissez la période de rétention des publications de fusion :
La période de conservation pour les publications issues de la fusion comprend une période de grâce de 24 heures pour accueillir les abonnés dans différents fuseaux horaires. Par exemple, si vous fixez une période de rétention d’un jour, la période réelle est de 48 heures.
Le nettoyage des métadonnées de réplication de fusion dépend de la période de conservation de la publication :
La réplication ne peut pas nettoyer les métadonnées dans les bases de données de publication et d’abonnement tant que la période de rétention n’est pas atteinte. Faites preuve de prudence lors de la spécification d’une valeur élevée pour la période de rétention, car cela peut nuire à la performance de la réplication. Utilisez un réglage plus bas si vous pouvez prévoir de manière fiable que tous les abonnés se synchroniseront régulièrement pendant cette période.
Vous pouvez spécifier que les abonnements n’expirent jamais (une valeur de 0 pour
@retention), mais n’utilisez pas cette valeur car les métadonnées ne peuvent pas être nettoyées.
Fixez la période de rétention de tout rééditeur à une valeur égale ou inférieure à celle fixée par le Publisher d’origine. Utilisez également les mêmes valeurs de rétention de publication pour tous les éditeurs et leurs partenaires de synchronisation alternatifs. Utiliser des valeurs différentes peut conduire à une non-convergence. Si vous devez modifier la valeur de rétention de la publication, réinitialisez l'Abonné pour éviter la non-convergence des données.
Si vous augmentez la période de rétention des publications après un nettoyage et qu'un abonnement tente de fusionner avec le Publisher (qui a déjà supprimé les métadonnées), l'abonnement n'expirera pas à cause de la valeur de conservation accrue. Cependant, le Publisher ne dispose pas de suffisamment de métadonnées pour télécharger les modifications de l'abonné, ce qui conduit à une non-convergence.