Répliquer des tables et des index partitionnés

Le partitionnement facilite la gestion des tables et des index de grande taille, car il permet de gérer et d'accéder rapidement et efficacement à des sous-ensembles de données, tout en conservant l'intégrité d'une collecte de données. Pour plus d'informations, consultez Tables et index partitionnés. La réplication prend en charge le partitionnement en fournissant un ensemble de propriétés qui indiquent comment les tables et les index partitionnés doivent être traités.

Propriétés d'article pour la réplication transactionnelle et de fusion

Le tableau suivant répertorie les objets utilisés pour partitionner des données.

Objet

Créé en utilisant

Table ou index partitionné

CREATE TABLE ou CREATE INDEX

Fonction de partition

CREATE PARTITION FUNCTION

Schéma de partition

CREATE PARTITION SCHEME

Le premier ensemble de propriétés en rapport avec le partitionnement correspond aux options de schéma d'article qui déterminent si le partitionnement d'objets doit être copié vers l'Abonné. Ces options de schéma peuvent être définies de plusieurs façons :

  • Sur la page Propriétés de l'article de l'Assistant Nouvelle publication ou la boîte de dialogue Propriétés de la publication. Pour copier les objets répertoriés dans le tableau précédent, spécifiez la valeur true pour les propriétés Copier les schémas de partition de table et Copier les schémas de partition d'index. Pour plus d'informations sur la façon d'accéder à la page Propriétés de l'article, consultez Afficher et modifier les propriétés d'une publication.

  • En utilisant le paramètre schema_option de l'une des procédures stockées suivantes :

    Pour copier les objets répertoriés dans le tableau précédent, spécifiez les valeurs d'options de schéma appropriées. Pour plus d'informations sur la spécification d'options de schéma, consultez Spécifier des options de schéma.

La réplication copie les objets vers l'Abonné pendant la synchronisation initiale. Si le schéma de partition utilise des groupes de fichiers autres que le groupe de fichiers PRIMARY, ces groupes de fichiers doivent exister sur l'Abonné avant la synchronisation initiale.

Après avoir initialisé l'Abonné, les modifications de données sont propagées à l'Abonné et appliquées aux partitions appropriées. Toutefois, les modifications apportées au schéma de partition ne sont pas prises en charge. La réplication transactionnelle et de fusion ne prend pas en charge les commandes suivantes : ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME ou l'instruction REBUILD WITH PARTITION d'ALTER INDEX. La réplication de fusion ne prend pas en charge la commande SWITCH PARTITION d'ALTER TABLE, contrairement à la réplication transactionnelle, comme décrit dans la section suivante.

Prise en charge de la réplication pour le basculement de partition

La possibilité de déplacer rapidement et efficacement des sous-ensembles de données entre des partitions constitue l'un des principaux avantages du partitionnement de table. Les données sont déplacées à l'aide de la commande SWITCH PARTITION. Par défaut, lorsqu'une table est activée pour la réplication, les opérations SWITCH PARTITION sont bloquées pour les raisons suivantes :

  • Si les données sont déplacées dans ou hors d'une table qui existe sur le serveur de publication mais pas sur l'Abonné, le serveur de publication et l'Abonné risquent de devenir incohérents entre eux. Ce problème se produit généralement lorsque les données sont déplacées dans ou hors d'une table intermédiaire.

  • Si l'Abonné et le serveur de publication ont des définitions différentes pour la table partitionnée, l'Agent de distribution échouera lorsqu'il tentera d'appliquer des modifications à l'Abonné.

Malgré ces problèmes potentiels, le basculement de partition peut être activé pour la réplication transactionnelle. Avant d'activer le basculement de partition, assurez-vous que toutes les tables impliquées dans cette opération existent sur le serveur de publication et sur l'Abonné, et vérifiez que la définition des tables et de la partition sont identiques.

Lorsque des partitions ont exactement le même schéma de partition sur les serveurs de publication et les abonnés, vous pouvez activer allow_partition_switch avec replication_partition_switch pour répliquer uniquement l'instruction de basculement de partition vers l'abonné. Vous pouvez également activer allow_partition_switch sans répliquer le DDL. Cela s'avère utile lorsque vous souhaitez supprimer des mois antérieurs de la partition tout en conservant la réplication de la partition pendant une autre année à des fins de sauvegarde sur l'abonné.

AttentionAttention

Vous ne devez pas activer le basculement de partition pour les publications d'égal à égal, en raison de la colonne masquée utilisée pour détecter et résoudre le conflit.

Activation du basculement de partition

Les propriétés suivantes pour les publications transactionnelles permettent aux utilisateurs de contrôler le comportement de l'insertion de partition dans un environnement répliqué :

  • @allow_partition_switch, lorsque la valeur spécifiée est true, SWITCH PARTITION peut être exécuté sur la base de données de publication.

  • @replicate_partition_switch détermine si l'instruction SWITCH PARTITION DDL doit être répliquée sur les Abonnés. Cette option est valide uniquement lorsque @allow_partition_switch a la valeur true.

Vous pouvez définir ces propriétés en utilisant sp_addpublication lors de la création de la publication, ou en utilisant sp_changepublication après la création de la publication. Comme indiqué précédemment, la réplication de fusion ne prend pas en charge le basculement de partition. Pour exécuter SWITCH PARTITION sur une table qui est activée pour la réplication de fusion, supprimez la table de la publication.

Voir aussi

Concepts

Publier des données et des objets de base de données