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
Après la création d'une publication, il est possible d'ajouter et de supprimer des articles. Vous pouvez ajouter des articles à tout moment ; en revanche, les actions visant à supprimer les articles dépendent du type de réplication et du moment de la suppression de l'article.
ajout d'articles
L'ajout d'un article se déroule comme suit : ajout de l'article à la publication, création d'un nouvel instantané de la publication, synchronisation de l'abonnement pour appliquer le schéma et les données du nouvel article.
Remarque
Si vous ajoutez un article à une publication de fusion et qu'un article existant dépend du nouvel article, vous devez spécifier un ordre de traitement pour les deux articles à l'aide du paramètre @processing_order de sp_addmergearticle et sp_changemergearticle. Examinez le scénario suivant : vous publiez une table, mais vous ne publiez pas de fonction référencée par la table. Si vous ne publiez pas la fonction, la table ne peut pas être créée au niveau de l'abonné. Lorsque vous ajoutez la fonction à la publication : spécifiez la valeur 1 pour le paramètre @processing_order de sp_addmergearticle, spécifiez la valeur 2 pour le paramètre @processing_order de sp_changemergearticle, et spécifiez le nom de la table pour le paramètre @article. Cet ordre de traitement permet de créer la fonction au niveau de l'Abonné avant la table qui en dépend. Vous pouvez utiliser différents nombres pour chaque article tant que le nombre de la fonction est inférieur au nombre de la table.
Ajoutez un ou plusieurs articles à l'aide de l'une des méthodes suivantes :
Après l'ajout d'un article à une publication, vous devez créer un nouvel instantané de celle-ci (et de toutes les partitions s'il s'agit d'une publication de fusion avec des filtres paramétrés). L'Agent de distribution ou de fusion copie ensuite le schéma et les données du nouvel article vers l'Abonné (il ne réinitialise pas l'ensemble de la publication).
Pour créer un nouvel instantané, consultez Create and Apply the Initial Snapshot.
Pour créer un instantané d’une publication de fusion avec des filtres paramétrés, consultez Créer un instantané pour une publication de fusion avec des filtres paramétrés.
Après la création de l'instantané, synchronisez l'abonnement pour copier le schéma et les données du nouvel article.
Pour synchroniser un abonnement par émission de données (push), consultez Synchronize a Push Subscription.
Pour synchroniser un abonnement par extraction de données (pull), consultez Synchronize a Pull Subscription.
Suppression des articles
Les articles peuvent être supprimés d'une publication à tout moment mais vous devez prendre en compte les comportements suivants :
La suppression d'un article d'une publication ne supprime pas l'objet de la base de données de publication ou l'objet correspondant de la base de données d'abonnement. Utilisez DROP <objet> pour supprimer ces objets, le cas échéant. Lorsque vous supprimez un article lié à d’autres articles publiés par des contraintes de clé étrangère, nous vous recommandons de supprimer manuellement la table au niveau de l’Abonné ou à l’aide de l’exécution de scripts à la demande : spécifiez un script qui inclut les instructions DROP <Object> appropriées. Pour plus d’informations, consultez Exécuter des scripts pendant la synchronisation (programmation Transact-SQL de la réplication).
Pour les publications de fusion présentant un niveau de compatibilité égal ou supérieur à 90RTM, les articles peuvent être supprimés à tout moment mais un nouvel instantané s'impose. Voici quelques ajustements supplémentaires :
Si un article est un article parent dans un filtre de jointure ou une relation d’enregistrements logiques, ces relations doivent d’abord être supprimées, ce qui nécessite une réinitialisation.
Si un article possède le dernier filtre paramétré d'une publication, les abonnements doivent être réinitialisés.
Pour les publications de fusion présentant un niveau de compatibilité inférieur à 90RTM, il est possible de supprimer les articles sans considérations particulières avant la synchronisation initiale des abonnements. Si un article est supprimé après la synchronisation d'un ou plusieurs abonnements, les abonnements doivent être supprimés, recréés et synchronisés.
Pour les publications d’instantané ou transactionnelles, les articles peuvent être supprimés sans précaution particulière avant la création d’abonnements. Si un article est supprimé après la création d'un ou plusieurs abonnements, les abonnements doivent être supprimés, recréés et synchronisés. Pour plus d’informations sur la suppression des abonnements, consultez S’abonner à des publications et sp_dropsubscription (Transact-SQL). sp_dropsubscription permet de supprimer un seul article de l'abonnement au lieu de l'abonnement entier.
La suppression d'un article d'une publication consiste à supprimer l'article et à créer un nouvel instantané de la publication. Dans la mesure où la suppression d'un article invalide l'instantané actuel, un nouvel instantané doit être créé.
- Pour supprimer un article d’une publication, consultez Ajouter et supprimer des articles dans une publication (SQL Server Management Studio) ou Supprimer un article.
Après la suppression d'un article d'une publication, vous devez créer un nouvel instantané de celle-ci (et de toutes les partitions s'il s'agit d'une publication de fusion avec des filtres paramétrés).
Pour créer un nouvel instantané, consultez Create and Apply the Initial Snapshot.
Pour créer un instantané d’une publication de fusion avec des filtres paramétrés, consultez Créer un instantané pour une publication de fusion avec des filtres paramétrés.
Comme indiqué ci-dessus, la suppression d'un article exige parfois la suppression, la recréation et la synchronisation des abonnements. Pour plus d’informations, consultez S’abonner à des publications.etSynchronisez les données.
Remarque
SQL Server 2014 (12.x) Service Pack 2 ou ultérieur et SQL Server 2016 (13.x) Service Pack 1 ou version ultérieure prennent en charge la suppression d’une table à l’aide DROP TABLE de la commande DDL pour les articles participant à la réplication transactionnelle. Si un DDL DROP TABLE est pris en charge par la ou les publications, l’opération DROP TABLE supprimera la table de ces publications et de la base de données. L’Agent de lecture du journal publiera une commande de nettoyage pour la base de données de distribution de la table supprimée et effectuera le nettoyage des métadonnées du serveur de publication. Si l’Agent de lecture du journal n’a pas traité tous les enregistrements de journal qui font référence à la table supprimée, il ignore alors les nouvelles commandes qui sont associés à la table supprimée. Les enregistrements déjà traités seront remis à la base de données de distribution. Ils peuvent être appliqués sur la base de données de l’abonné si l’Agent de distribution les traite avant que l’agent de lecture du journal ne nettoie les articles obsolètes (supprimées) . Le paramètre par défaut pour toutes les publications de réplication transactionnelle consiste à ne pas prendre en charge DROP TABLE DDL. Pour plus d’informations sur cette amélioration, consultez l’article 3170123 de la Base de connaissances.