Initialiser manuellement un abonnement

S’applique à :SQL ServerAzure SQL Managed Instance

Cette rubrique explique comment initialiser un abonnement manuellement dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. L'instantané initial est normalement utilisé pour initialiser un abonnement, mais les abonnements aux publications peuvent être initialisés sans utiliser d'instantané, à condition que le schéma et les données initiales soient déjà présents sur l'Abonné.

Avant de commencer

Limitations et restrictions

  • S'il existe une activité sur une base de données publiée à l'aide de la réplication transactionnelle entre le moment où les données et le schéma sont copiés vers l'Abonné et le moment auquel l'abonnement est initialisé manuellement, les modifications résultant de cette activité peuvent ne pas être répliquées vers l'Abonné.

Utilisation de SQL Server Management Studio

Initialisez manuellement un abonnement à une publication en copiant le schéma (et généralement les données) dans la base de données d'abonnement. Le schéma et les données doivent correspondre à la base de données de publication. Précisez ensuite que l'abonnement ne nécessite pas de schéma et de données dans la page Initialiser les abonnements de l'Assistant Nouvel abonnement. Pour plus d'informations sur l'accès à cet Assistant, consultez Initialiser un abonnement transactionnel sans instantané et Créer un abonnement par extraction de données (pull).

Lors de la première synchronisation de l'abonnement, les objets et les métadonnées dont la réplication a besoin sont copiés dans la base de données d'abonnement.

Pour initialiser manuellement un abonnement à une publication

  1. Vérifiez que le schéma et les données sont copiés dans la base de données d'abonnement.

  2. Désactivez la case à cocher Initialiser dans la page Initialiser les abonnements de l'Assistant Nouvel abonnement. Procédez de même pour chaque abonnement nécessitant uniquement la copie des objets et des métadonnées de réplication.

Utilisation de Transact-SQL

Les abonnements peuvent être initialisés manuellement à l'aide des procédures stockées de réplication.

Pour initialiser manuellement un abonnement par extraction à une publication transactionnelle

  1. Assurez-vous que le schéma et les données existent dans la base de données d'abonnement. Pour plus d’informations, consultez Initialiser un abonnement transactionnel sans instantané.

  2. Au niveau du serveur de publication sur la base de données de publication, exécutez sp_addsubscription. Spécifiez @publication, @subscriber, le nom de la base de données sur l'Abonné contenant les données publiées pour @destination_db, la valeur pull pour @subscription_typeet la valeur replication support only pour @sync_type. Pour plus d’informations, consultez Créer un abonnement par extraction de données (pull).

  3. Sur l'Abonné, exécutez sp_addpullsubscription. Pour les abonnements avec mise à jour, consultez Créer un abonnement pouvant être mis à jour pour une publication transactionnelle.

  4. Sur l'Abonné, exécutez sp_addpullsubscription_agent. Pour plus d’informations, consultez Créer un abonnement par extraction de données (pull).

  5. Démarrez l'Agent de distribution pour transférer des objets de réplication et télécharger les modifications les plus récentes à partir du serveur de publication. Pour plus d’informations, consultez Synchroniser un abonnement par extraction (pull).

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

  1. Assurez-vous que le schéma et les données existent dans la base de données d'abonnement. Pour plus d’informations, consultez Initialiser un abonnement transactionnel sans instantané.

  2. Au niveau du serveur de publication sur la base de données de publication, exécutez sp_addsubscription. Spécifiez le nom de la base de données sur l'Abonné contenant les données publiées pour @destination_db, la valeur push pour @subscription_typeet la valeur replication support only pour @sync_type. Pour les abonnements avec mise à jour, consultez Créer un abonnement pouvant être mis à jour pour une publication transactionnelle.

  3. Au niveau du serveur de publication sur la base de données de publication, exécutez sp_addpushsubscription_agent. Pour plus d’informations, consultez Créer un abonnement par émission (push).

  4. Démarrez l'Agent de distribution pour transférer des objets de réplication et télécharger les modifications les plus récentes à partir du serveur de publication. Pour plus d’informations, consultez Synchroniser un abonnement par émission (push).

Pour initialiser manuellement un abonnement par extraction à une publication de fusion

  1. Assurez-vous que le schéma et les données existent dans la base de données d'abonnement. Pour cela, vous pouvez restaurer une sauvegarde de la base de données de publication sur l'Abonné.

  2. Sur le serveur de publication, exécutez sp_addmergesubscription. Spécifiez @publication, @subscriber, @subscriber_dbet la valeur pull pour @subscription_type. L'abonnement par extraction est inscrit.

  3. Exécutez sp_addmergepullsubscriptionsur l'Abonné, sur la base de données contenant les données publiées. Spécifiez la valeur none pour @sync_type.

  4. Sur l'Abonné, exécutez sp_addmergepullsubscription_agent. Pour plus d’informations, consultez Créer un abonnement par extraction de données (pull).

  5. Démarrez l'Agent de fusion pour transférer des objets de réplication et télécharger les modifications les plus récentes à partir du serveur de publication. Pour plus d’informations, consultez Synchroniser un abonnement par extraction (pull).

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

  1. Assurez-vous que le schéma et les données existent dans la base de données d'abonnement. Pour cela, vous pouvez restaurer une sauvegarde de la base de données de publication sur l'Abonné.

  2. Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergesubscription. Spécifiez le nom de la base de données sur l'Abonné contenant les données publiées pour @subscriber_db, la valeur push pour @subscription_typeet la valeur none pour @sync_type.

  3. Sur la base de données de publication du serveur de publication, exécutez sp_addmergepushsubscription_agent. Pour plus d’informations, consultez Créer un abonnement par émission (push).

  4. Démarrez l'Agent de fusion pour transférer des objets de réplication et télécharger les modifications les plus récentes à partir du serveur de publication. Pour plus d’informations, consultez Synchroniser un abonnement par émission (push).

Voir aussi

Initialiser un abonnement transactionnel sans instantané
Sauvegarder et restaurer des bases de données répliquées
Bonnes pratiques en matière de sécurité de la réplication