web-dev-qa-db-fra.com

Pourquoi dois-je obtenir "l'instantané initial pour la publication n'est pas encore disponible".

Nous utilisons des réplications transactionnelles avec des abonnements à la mise à jour. 1 éditeur, 1 abonné.

La réplication SQL a commencé à rencontrer une erreur de contrainte sur 3/6 à 10h, car les personnes à deux bureaux différents ont entré des données qui ont violé une contrainte unique. Totalement attendu.

Cependant, à 12h08 sur 3/6, la réplication SQL a cessé de signaler cette erreur et a plutôt dit:

"L'instantané initial pour la publication" TheDb "n'est pas encore disponible."

Pourquoi cela arrêterait-il de réessayer la réplication et commencerait à lancer cette erreur? Maintenant, nous devons régénérer l'instantané.

  • Aucune sauvegarde ou restauration DB n'a été effectuée à ce moment-là
  • L'instantané a été appliqué avec succès à l'abonné il y a des mois lors de la réplication initialement mise en place.
  • Il y a un message dans le journal de 12h07 sur 3/6 en disant

[000] Demande d'exécution de Job Cotopsvr\thedb-thedb-Cotcpsvr\db-3 (à partir de l'utilisateur CTOB\Administrator) a refusé car le travail est déjà en cours d'une demande de l'utilisateur SA

  • Personne n'a initié manuellement aucun emploi ou rien n'a fait quoi que ce soit à 12h06.

Des idées? Je sais comment résoudre ce problème ... Je veux empêcher cela de se reproduire.

7
Jeff

Je soupçonnerais que votre abonnement était bloqué avec cette erreur et ne répliquant pas de nouvelles transactions. À quel point l'abonnement est tombé derrière la période de conservation des transactions définie pour cette publication. L'abonnement reconnaîtra alors que les transactions répliquées dont il a besoin n'est plus disponible car elles ont été purgées à partir de la base de données de distribution.

Lorsque cela se produit, il indiquera que l'abonnement doit être réinitialisé avec un instantané.

1
Ian Chamberland