Partager via


Limites de la réplication

Lorsque vous utilisez la réplication de fusion avec les Abonnés Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), il existe plusieurs limites au niveau de la publication. Cette section décrit ces limites.

Restrictions des modifications de schéma sur l'Abonné

Vous pouvez apporter certaines modifications de schéma sur l'Abonné. Le tableau ci-dessous décrit les modifications de schéma possibles qui peuvent être ou non effectuées sur l'Abonné.

Action Autorisée sur une table répliquée

Supprimer une table

Non

Renommer une table

Non

Ajouter/supprimer/enlever une colonne

Non

Modifier le début ou l'incrément sur une colonne d'identité

Oui

Ajouter ou supprimer la valeur par défaut

Oui

Ajouter ou supprimer la clé primaire

Non

Ajouter ou supprimer la clé étrangère

Non

Ajouter ou supprimer l'index

Attention :
Il est recommandé de ne pas ajouter/supprimer des index des colonnes de réplication dans les tables utilisateur. L'ajout ou la suppression des index entraîne l'échec de la synchronisation, car les colonnes de réplication sont traitées comme des colonnes système.

Oui

Renommer l'index

Oui

Important :
Des modifications de schéma ne peuvent pas être apportées sur des tables système.

Configuration requise supplémentaire

Les règles suivantes s'appliquent aux Abonnés SQL Server Compact Edition :

  • Utilisation de la mémoire
    Au cours de la synchronisation, après que la réinitialisation a été demandée, la taille de la base de données SQL Server Compact Edition risque d'être multipliée par deux par rapport à la taille de la base de données actuelle. Elle sera toutefois réduite après la synchronisation (selon votre stratégie de réduction automatique).
  • Validation des filtres d'abonnement
    La validation des filtres permet au serveur de publication de vérifier la valeur du filtre de l'Abonné avant la synchronisation des données. Si la valeur du filtre a changé au niveau de l'Abonné, le serveur de publication requiert une réinitialisation au niveau de celui-ci. Lorsque vous synchronisez des données à l'aide de SQL Server 2005, SQL Server Compact Edition peut utiliser la validation des filtres.
    Remarque :
    La propriété HostName spécifie la valeur de filtre dynamique de l'abonnement. Si vous souhaitez modifier la valeur de filtre dynamique de l'Abonné en spécifiant une nouvelle propriété HostName, vous devez appeler la méthode avant de procéder à la synchronisation Reinitialize .
  • Respect de la casse
    Les bases de données SQL Server Compact Edition ne respectent pas la casse. Les objets et les données ne sont pas traités de la même façon dans une base de données SQL Server Compact Edition que dans une base de données SQL Server. Par exemple, les deux tables MYTABLE et mytable sont traitées comme des objets différents dans une base de données SQL Server qui respecte la casse. Des noms de table identiques génèrent un conflit de noms dans une base de données SQL Server Compact Edition. De même, les valeurs MYVALUE et myvalue provoqueraient une violation de clé primaire dans SQL Server Compact Edition, car elles seraient considérées comme une même valeur, alors qu'elles ne génèrent pas de violation dans une base de données SQL Server qui respecte la casse.
  • Nombre de colonnes dans une table
    SQL Server Compact Edition alloue sept colonnes système pour le suivi. Toutefois, ces tables système n'entrent pas en ligne de compte dans le nombre maximum de colonnes.
  • Contraintes NOT FOR REPLICATION
    SQL Server Compact Edition ne prend pas en charge l'option NOT FOR REPLICATION. Ne créez pas de contraintes à l'aide de cette option. Si, dans une base de données, des contraintes possèdent l'option NOT FOR REPLICATION, supprimez-les, puis recréez-les. Si l'option NOT FOR REPLICATION est spécifiée, la contrainte est créée sur l'Abonné SQL Server Compact Edition, mais ne comprend pas la syntaxe NOT FOR REPLICATION.
  • Délai de connexion
    Les abonnements SQL Server Compact Edition récupèrent des échecs de communication en redémarrant à partir du dernier bloc de données correctement transmis, sous réserve que la connexion soit restaurée dans la limite du délai d'attente configurable par l'utilisateur. Ainsi, la synchronisation est possible même si le transport sous-jacent n'est pas fiable ou est provisoirement non disponible.
  • Captures instantanées
    SQL Server Compact Edition prend en charge les options d'emplacement de capture instantanée par défaut et alternatif. Pour spécifier un emplacement de capture instantanée alternatif, vous pouvez définir cette option à l'aide de la procédure stockée sp_addmergepublication ou par le biais de SQL Server Management Studio afin de modifier les propriétés d'une publication existante.
    • Pour utiliser la procédure stockée sp_addmergepublication
      Attribuez à l'option @snapshot_in_defaultfolder la valeur FALSE et au paramètre l'@alt_snapshot_folderemplacement du dossier alternatif pour la capture instantanée.
    • Pour modifier les propriétés d'une publication existante
      Dans la section Capture instantanée de la boîte de dialogue Propriétés relative à la publication, désactivez la case à cocher Placer les fichiers dans le dossier par défaut, activez la case à cocher Placer les fichiers dans le dossier suivant, puis spécifiez le nouvel emplacement.
    Remarque :
    SQL Server Compact Edition ne prend pas en charge l'option de capture instantanée compressée.

Pour plus d'informations sur les captures instantanées, consultez Configuration du dossier de fichiers de captures instantanées.

Informations non propagées à un Abonné SQL Server Compact Edition

Vous pouvez inclure les éléments suivants dans une publication SQL Server, mais ils ne sont pas propagés à l'Abonné SQL Server Compact Edition :

  • Contraintes CHECK
  • Propriétés étendues
  • Procédures stockées
  • Vues
  • Fonctions définies par l'utilisateur
  • Déclencheurs

Dans la mesure où la réplication SQL Server Compact Edition ne peut pas propager ces éléments, vous devez implémenter une logique équivalente dans une application SQL Server Compact Edition. Ainsi, la base de données SQL Server Compact Edition demeure cohérente avec la base de données SQL Server. Par exemple, si la base de données SQL Server comprend une contrainte CHECK, l'application SQL Server Compact Edition doit implémenter la vérification correspondante dans le code d'application.

Création d'index dans une base de données SQL Server Compact Edition locale

Vous pouvez créer des index uniques dans une base de données SQL Server Compact Edition locale, même si cette base de données est un Abonné à une publication. Cela est particulièrement utile, mais la création d'index uniques peut entraîner des problèmes si le serveur de publication, qui ne comprend pas de contrainte unique sur une colonne, envoie des données non uniques à l'Abonné. Par exemple, vous pouvez disposer d'une table T avec des colonnes C1 et C2, la clé primaire existant sur la colonne C1.

C1

C2

A

1

B

2

C

3

Une synchronisation initiale a lieu sur la base de données SQL Server Compact Edition. La synchronisation une fois terminée, un index unique est ajouté à la colonne C2 de la base de données d'abonnement. Aucune modification n'est apportée à la base de données de publication.

Au cours de la synchronisation suivante, SQL Server insère les lignes suivantes :

D

3

E

3

Dans ce cas, la synchronisation échoue, car le serveur de publication a tenté d'insérer des valeurs non uniques pour la colonne C2. La synchronisation échouera, jusqu'à ce que la contrainte unique soit supprimée de la base de données d'abonnement.

Voir aussi

Aide et information

Assistance sur SQL Server Compact Edition