Réplication de tables et d'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 Procédure : Affichage et modification des propriétés de l'article et de la publication (SQL Server Management Studio).
En utilisant le paramètre schema_option de l'une des procédures stockées suivantes :
sp_addarticle ou sp_changearticle pour la réplication transactionnelle
sp_addmergearticle ou sp_changemergearticle pour la réplication de fusion
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 Procédure : spécifier des options de schéma (programmation Transact-SQL de la réplication).
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. Pour plus d'informations, consultez Transfert efficace de données à l'aide du commutateur de partitionnement. 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é. Cela est également un problème pour les Abonnés SQL Server 2000, car SQL Server 2000 ne prend pas en charge les tables partitionnées.
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.
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.