Y a-t-il un moyen de forcer SQL Server de ne pas marquer les abonnements comme inactifs, jamais?
Cela se produit sporadiquement lorsqu'il existe des problèmes de connexion et je ne veux pas avoir à réinitialiser l'abonnement à chaque fois.
Note, je ne parle pas des abonnements marqués comme expirés ... tout comme inactif.
Nous avons une rétention réglée sur 0 (infini). Je préférerais avoir une grande base de données de distribution que de réinitialiser une base de données de 15 Go à un abonné sur le WAN. Quoi qu'il en soit, le vrai problème est qu'ils sont marqués comme inactifs en seulement quelques heures parfois ... ou parfois quelques jours ... il semble sporadique. Y a-t-il un moyen de dire pourquoi SQL a décidé de sa sagesse de les marquer inactif?
Afin de trouver la cause de la désactivation, nous devons vérifier la période de conservation des transactions dans les propriétés de la distribution. S'il est défini sur un nombre inférieur de 3 heures, cela indique que si l'abonné ne se synchronise pas en 3 heures, l'agent de nettoyage de distribution tronquera les tableaux de commande de la distribution et donc l'abonné sera marqué comme désactivé.
Étant donné que les commandes sont supprimées du distributeur, il n'y a pas d'autre option mais de réinitialiser l'abonné.
De plus, pour trouver la cause du distributeur ne pouvant pas être synchronisé, nous pouvons vérifier l'historique de distribution dans les tables ci-dessous sur la base de données de distribution,
msdistribution_agents
msdistribution_history
De plus, à partir de expiration et désactivation de souscription dans la documentation du produit:
Il est possible de préciser que les abonnements n'expirent jamais (une valeur de 0 pour @Revention), mais il est fortement recommandé de ne pas utiliser cette valeur, car les métadonnées ne peuvent pas être nettoyées.
Veuillez également lire ce fil de forum MSDN sur les solutions possibles: marquez automatiquement les abonnements inactifs pour la réinitialisation