Procédure : réinitialiser un abonnement (programmation Transact-SQL de la réplication)

Des abonnements individuels peuvent être marqués pour réinitialisation afin qu'une nouvelle capture instantanée soit appliquée lors de la synchronisation suivante. Les abonnements peuvent être réinitialisés par programme en utilisant des procédures stockées de réplication. La procédure stockée utilisée dépend du type d'abonnement (par extraction ou par émission de données) et du type de publication à laquelle l'abonnement appartient.

Pour réinitialiser un abonnement par extraction à une publication transactionnelle

  1. Dans la base de données d'abonnement de l'Abonné, exécutez sp_reinitpullsubscription (Transact-SQL). Spécifiez **@publisher**, @publisherdb et @publisher_. L'abonnement est alors marqué pour réinitialisation lors de la prochaine exécution de l'Agent de distribution.

  2. (Facultatif) Démarrez l'Agent de distribution sur l'Abonné pour synchroniser l'abonnement. Pour plus d'informations, consultez Procédure : synchroniser un abonnement par extraction de données (pull) (Programmation de la réplication).

Pour réinitialiser un abonnement par émission de données à une publication transactionnelle

  1. Sur le serveur de publication, exécutez sp_reinitsubscription (Transact-SQL). Spécifiez **@publication**, **@subscriber** et **@destination_db**. L'abonnement est alors marqué pour réinitialisation lors de la prochaine exécution de l'Agent de distribution.

  2. (Facultatif) Démarrez l'Agent de distribution sur le serveur de distribution pour synchroniser l'abonnement. Pour plus d'informations, consultez Procédure : synchroniser un abonnement par envoi de données (push) (Programmation de la réplication).

Pour réinitialiser un abonnement par extraction à une publication de fusion

  1. Dans la base de données d'abonnement de l'Abonné, exécutez sp_reinitmergepullsubscription (Transact-SQL). Spécifiez **@publisher**, @publisherdb et @publisher_. Pour télécharger les modifications de l'Abonné avant la réinitialisation, affectez la valeur true à **@upload_first**. L'abonnement est alors marqué pour réinitialisation lors de la prochaine exécution de l'Agent de fusion.

    Important

    Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente au niveau de l'Abonné ne peuvent pas être téléchargées sur le serveur de publication lors de la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.

  2. (Facultatif) Démarrez l'Agent de fusion sur l'Abonné pour synchroniser l'abonnement. Pour plus d'informations, consultez Procédure : synchroniser un abonnement par extraction de données (pull) (Programmation de la réplication).

Pour réinitialiser un abonnement par émission de données à une publication de fusion

  1. Sur le serveur de publication, exécutez sp_reinitmergesubscription (Transact-SQL). Spécifiez **@publication**, **@subscriber** et **@subscriber_db**. Pour télécharger les modifications de l'Abonné avant la réinitialisation, affectez la valeur true à **@upload_first**. L'abonnement est alors marqué pour réinitialisation lors de la prochaine exécution de l'Agent de distribution.

    Important

    Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente au niveau de l'Abonné ne peuvent pas être téléchargées sur le serveur de publication lors de la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.

  2. (Facultatif) Démarrez l'Agent de fusion sur le serveur de distribution pour synchroniser l'abonnement. Pour plus d'informations, consultez Procédure : synchroniser un abonnement par envoi de données (push) (Programmation de la réplication).

Pour définir la stratégie de réinitialisation lors de la création d'une publication de fusion

  • Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergepublication, en spécifiant l'une des valeurs suivantes pour **@automatic_reinitialization_policy** :

    • 1 - les modifications sont téléchargées depuis l'Abonné avant réinitialisation automatique d'un abonnement suite à la modification de la publication.

    • 0 - les modifications au niveau de l'Abonné sont ignorées lorsqu'un abonnement est automatiquement réinitialisé suite à la modification de la publication.

    Important

    Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente au niveau de l'Abonné ne peuvent pas être téléchargées sur le serveur de publication lors de la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.

    Pour plus d'informations, consultez Procédure : créer une publication (programmation Transact-SQL de la réplication).

Pour modifier la stratégie de réinitialisation pour une publication de fusion existante

  • Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergepublication, en spécifiant automatic_reinitialization_policy pour **@property** et l'une des valeurs suivantes pour **@value** :

    • 1 - les modifications sont téléchargées depuis l'Abonné avant réinitialisation automatique d'un abonnement suite à la modification de la publication.

    • 0 - les modifications au niveau de l'Abonné sont ignorées lorsqu'un abonnement est automatiquement réinitialisé suite à la modification de la publication.

    Important

    Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente au niveau de l'Abonné ne peuvent pas être téléchargées sur le serveur de publication lors de la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.

    Pour plus d'informations, consultez Procédure : afficher et modifier les propriétés de publications (programmation Transact-SQL de la réplication).