Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Meilleures pratiques de synchronisation de données SQL

Meilleures pratiques de synchronisation de données SQL

Mis à jour: mai 2015

 

Icône de SQL Azure Data Sync

Bienvenue dans Synchronisation des données SQL (Aperçu). Cette rubrique est la cinquième et dernière d'une série que nous vous conseillons de lire entièrement avant de concevoir et d'implémenter un plan de synchronisation des données. Les cinq rubriques préliminaires sont les suivantes :

Le plug-in Synchronisation des données SQL Microsoft Azure a été désactivé sur le portail Microsoft Azure Silverlight. À partir de maintenant, utilisez le portail de gestion Microsoft Azure pour la synchronisation des données SQL Azure.

Vous accédez à la synchronisation des données SQL (aperçu) via l'onglet SYNC sous Base de données SQL, dans le portail de gestion Microsoft Azure. L'onglet SYNC n'est disponible que si vous disposez d'un ou plusieurs groupes de synchronisation. Consultez la rubrique Procédure : créer un groupe de synchronisation (SDS) pour obtenir de l'aide sur la création et la modification d'un groupe de synchronisation à partir de ce portail.

Consultez la section Navigation ci-dessous pour obtenir des liens vers les rubriques que vous devez lire avant de commencer, ainsi que des conseils pour la création et la modification des groupes de synchronisation.

  • Installez l'agent client en utilisant le compte doté des privilèges minimum avec accès au service réseau.

  • Il est préférable que l'agent client soit installé sur un ordinateur distinct de l'ordinateur SQL Server sur site.

  • N'inscrivez pas une base de données sur site auprès de plusieurs agents.

    • Et ce, même si vous synchronisez différentes tables de plusieurs groupes de synchronisation.

    • L'inscription d'une base de données sur site auprès de plusieurs agent client pose des défis en termes de suppression de l'un des groupes de synchronisation.

  • Pour la configuration de la synchronisation :
    Create/Alter Table, Alter Database, Create Procedure, Select/Alter Schema, Create User Defined Type.

  • Pour la synchronisation continue :
    Select/ Insert/ Update/ Delete sur les tables sélectionnées pour la synchronisation et sur les métadonnées de synchronisation et les tables de suivi, Execute sur les procédures stockées créées par notre service, Execute sur les types de tables définis par l'utilisateur.

  • Pour l'annulation du déploiement :
    Alter sur les tables qui font partie de la synchronisation, Select/Delete sur les tables de métadonnées de synchronisation, Control sur les tables de suivi de synchronisation, les procédures stockées et les types définis par l'utilisateur.

Que faire avec cette information s'il n'existe qu'une seule information d'identification pour une base de données dans le groupe de synchronisation ?

  • Modifiez les informations d'identification des différentes phases (par ex., cred1 pour la configuration et cred2 pour la synchronisation continue).

  • Modifiez l'autorisation sur les informations d'identification (par ex., modifier l'autorisation après avoir configuré la synchronisation).

Scénario entreprise vers cloud

Conservez votre base de données concentrateur à proximité de la plus grande concentration du trafic des base de données du groupe de synchronisation pour réduire la latence.

Scénario cloud vers cloud

Lorsque toutes les bases de données d'un groupe de concentration sont situées dans un centre de données, le concentrateur doit se situer dans le même centre de données. Cela permet de réduire la latence et le coût du transfert des données entre les centres de données.

Lorsque les bases de données d'un groupe de concentration sont situées dans plusieurs centres de données, le concentrateur doit se situer dans le même centre de données que celui où se situent la plupart des bases de données et la plus grande partie du trafic.

Scénarios mixtes :

Appliquez les principes ci-dessus aux configurations de groupes de synchronisation plus complexes.

  • instance de base de données SQL Taille

    Lorsque vous créez une instance de base de données SQL, si vous sélectionnez Création personnalisée, définissez la taille maximale afin qu'elle soit toujours supérieure à celle de la base de données que vous déployez. Si vous ne définissez pas la taille maximale, supérieure à la taille de la base de données déployée, la synchronisation échoue. Bien qu'il n'y ait pas de croissance automatique, effectuez un ALTER DATABASE de façon à augmenter la taille de la base de données après sa création. Cela doit évidemment rester dans les limites de taille de la instance de base de données SQL.


    ImportantImportant
    Synchronisation des données SQL (Aperçu) stocke des métadonnées supplémentaires avec votre base de données. Tenez compte de ce point lorsque vous calculez l'espace nécessaire.
    La surcharge ajoutée est régie par la largeur de vos tables (les tables étroites nécessitent davantage de surcharge) et la quantité de trafic.

  • Limites prises en charge sur les dimensions de base de données

     

    Dimension Limite

    Noms de base de données, table, schéma et colonne

    50 caractères par nom

    Tables dans un groupe de synchronisation

    100

    Colonnes dans une table dans un groupe de synchronisation

    1000

  • Sélection de tables

    Toutes les tables d'une base de données ne doivent pas faire partie d'un sync group. La sélection des tables à inclure dans un groupe de synchronisation et à exclure (ou inclure dans un autre groupe de synchronisation) peut avoir un impact sur l'efficacité et les coûts. N'incluez dans un groupe de synchronisation que les tables qui sont nécessaires à l'entreprise et les tables dont elles dépendent.

  • Clés primaires

    Chaque table dans un groupe de synchronisation doit avoir une clé primaire. Le service Synchronisation des données SQL (Aperçu) ne peut pas synchroniser une table qui n'a pas de clé primaire.

Avant le déploiement dans un environnement de production, testez les performances de synchronisation continue et initiale de votre scénario.

Synchronisation des données SQL (Aperçu) Aperçu permet la mise en service automatique simple d'une base de données.

Cette section présente les limitations du déploiement de Synchronisation des données SQL (Aperçu).

Les limitations suivantes concernent le déploiement automatique de Synchronisation des données SQL (Aperçu).

  • Seules les colonnes sélectionnées sont créées dans la table de destination.
    Par conséquent, si certaines colonnes ne font pas partie du groupe de synchronisation, elles ne sont pas déployées dans les tables de destination.

  • Les index sont créés uniquement pour les colonnes sélectionnées.
    Si l'index de la table source comporte des colonnes qui ne font pas partie du groupe de synchronisation, il n'est pas déployé dans les tables de destination.

  • Les index sur les colonnes de type XML ne sont pas déployés.

  • Les contraintes CHECK ne sont pas déployées.

  • Les déclencheurs existants sur les tables sources ne sont pas déployés.

  • Les vues et les procédures stockées ne sont pas créées dans la base de données de destination.

  • N'utilisez la fonctionnalité de déploiement automatique que pour tester le service.

  • Pour la production, vous devez configurer le schéma de base de données.

Cette section présente la synchronisation initiale d'un groupe de synchronisation et ce que vous pouvez faire pour éviter une synchronisation initiale prenant plus de temps que nécessaire à s'effectuer et coûtant plus cher que ce qu'elle devrait.

Lorsque vous créez un groupe de synchronisation, commencez avec des données dans une seule base de données. Si vous avez des données dans plusieurs bases de données, Synchronisation des données SQL (Aperçu) traite chaque ligne comme un conflit qui doit être résolu. Cela provoque une synchronisation initiale très lente, prenant plusieurs jours à plusieurs mois, selon la taille de base de données.

De plus, si les bases de données se trouvent dans différents centres de données, le coût de votre synchronisation initiale sera plus élevé que nécessaire, car chaque ligne doit être déplacée entre les différents centres de données.

Si possible, commencez avec des données dans une seule des bases de données du groupe de synchronisation.

  • Coûts

    Bien que le service Synchronisation des données SQL (Aperçu) soit actuellement proposé gratuitement, des frais base de données SQL s'appliquent aux données déplacées vers et depuis les centres de données base de données SQL. Par conséquent, vous devez synchroniser des tables qui sont stables ou possèdent des données qui ne doivent pas être fréquemment actualisées selon une planification quotidienne ou hebdomadaire. Les tables qui contiennent des données sensibles ou des données plus volatiles sont mieux synchronisées selon une planification plus fréquente. Analysez les besoins de votre entreprise et créez votre Sync Group et vos planifications de façon appropriée.

    À mesure que les données sont déplacées vers et hors d'un centre de données, des frais d'entrée et de sortie peuvent s'appliquer.

  • Fréquence

    Si vous essayez de synchroniser un groupe de synchronisation qui n'a pas terminé une synchronisation, la tentative ne démarre même pas. Il n'y a aucune indication visible que la synchronisation n'a pas eu lieu. Par conséquent, il est conseillé de planifier les synchronisations de façon à ce que chaque synchronisation ait le temps de s'achever avant une nouvelle tentative.

    Par exemple :

    Si vous planifiez la synchronisation de votre groupe de synchronisation toutes les cinq minutes, T0, T0+5, T0+10..., mais que six minutes sont nécessaires pour terminer une synchronisation, vos synchronisations s'exécutent à T0, T0+10, T0+20 et ainsi de suite. T0+5 et T0+15 échouent, car les synchronisations T0 et T0+10 ne se sont pas achevées en temps voulu.

Une boucle de synchronisation se produit en présence de références circulaires dans un groupe de synchronisation. Dans ce cas, chaque modification apportée à une base de données est répliquée indéfiniment dans toutes les bases de données du groupe de synchronisation de manière circulaire. Vous devez éviter les boucles de synchronisation, car elles dégradent les performances et peuvent accroître sensiblement les coûts.

Pour obtenir des informations plus détaillées sur les boucles de synchronisation, ainsi que des exemples de conception à l'origine de ces boucles et la marche à suivre pour modifier la conception afin de les éviter, consultez la rubrique Compréhension et prévention des boucles de synchronisation.

Un groupe de synchronisation ou une base de données comprise dans un groupe de synchronisation peut devenir obsolète. Lorsqu'un groupe de synchronisation se retrouve à l'état « Obsolète », il cesse de fonctionner. Lorsque l'état d'une base de données est « Obsolète », des données peuvent être perdues. Il convient d'éviter ces situations plutôt que d'avoir à les corriger.

L'état d'une base de données est Obsolète lorsqu'elle est restée hors connexion pendant au moins 45 jours. Pour éviter cet état Obsolète, veillez à ce qu'aucune de vos bases de données ne reste hors connexion pendant au moins 45 jours. Consultez la rubrique A database has an "Out-of-Date" status pour savoir comment récupérer à partir d'une base de données dont l'état est Obsolète.

Un groupe de synchronisation passe à l'état Obsolète lorsqu'une modification apportée au sein du groupe de synchronisation ne peut pas être propagée au reste du groupe de synchronisation pendant au moins 45 jours. Vous pouvez éviter qu'un groupe de synchronisation ne passe à l'état Obsolète en consultant régulièrement l'historique du groupe de synchronisation et en veillant à résoudre tous les conflits et à propager les modifications dans les bases de données du groupe de synchronisation.

L'application d'une modification par un groupe de synchronisation peut échouer pour les raisons suivantes :

Pour éviter que des groupes de synchronisation ne passent à l'état Obsolète, procédez comme suit :

  • Mettez à jour le schéma de manière à autoriser les valeurs contenues dans les lignes en échec. Consultez la rubrique Q: I just changed my schema. How do I get the change into my sync group?.

  • Mettez à jour les valeurs de clé étrangère de manière à inclure les valeurs contenues dans les lignes en échec.

  • Mettez à jour les valeurs des données dans la ligne en échec de manière à ce qu'elles soient compatibles avec le schéma ou les clés étrangères dans la base de données cible.

Consultez la rubrique A sync group has an "Out-of-Date" status pour savoir comment récupérer à partir d'un groupe de synchronisation dont l'état est Obsolète.

Dans certaines circonstances, l'annulation de l'inscription d'une base de données auprès d'un agent client peut entraîner l'échec des synchronisations.

Scénario :

  1. Le groupe de synchronisation A a été créé avec une instance de base de données SQL et une base de données SQL Server locale qui est associée à l'agent local 1.

  2. Cette base de données locale est inscrite auprès de l'agent local 2 (qui n'est associé à aucun groupe de synchronisation).

  3. L'annulation de l'inscription de la base de données locale auprès de l'agent local 2 supprime les tables de suivi/de métadonnées du groupe de synchronisation A pour la base de données locale.

  4. À présent, les opérations du groupe de synchronisation A échouent avec une erreur indiquant qu'il est
    impossible de terminer l'opération en cours, car la base de données n'est pas déployée pour la synchronisation ou vous ne disposez pas des autorisations requises sur les tables de configuration de la synchronisation.

Solution :

  • Évitez que cette situation se produise en n'inscrivant jamais une base de données auprès de plusieurs agents.

  • Pour résoudre ce problème :

    1. Retirez la base de données de chaque groupe de synchronisation auquel elle appartient.

    2. Ajoutez de nouveau la base de données à chaque groupe de synchronisation dont vous devez de la retirer.

    3. Déployez chaque groupe de synchronisation concerné (afin de déployer la base de données).

Des échecs de propagations des modifications se produisent pour différentes raisons. Causes probables :

  • Incompatibilité de schéma/type de données.

  • Tentative d'insertion de valeurs NULL dans des colonnes n'acceptant pas les valeurs NULL.

  • Violation de contraintes de clé étrangère.

  • Le groupe de synchronisation affiche un état d'avertissement.

  • Les détails sont disponibles dans la visionneuse du journal de l'interface utilisateur du portail.

  • Si le problème n'est pas résolu pour 45 jours, la base de données devient obsolète.


    noteRemarque
    Ces modifications ne seront jamais propagées. La seule façon pour récupérer consiste à recréer votre groupe de synchronisation.

Vérifiez régulièrement l'intégrité de votre groupe de synchronisation et de votre base de données via l'interface utilisateur du journal et du portail.

Ne tentez pas de supprimer une base de données d'un groupe de synchronisation et de modifier le groupe de synchronisation sans avoir déployé l'une des modifications.

Supprimez d'abord une base de données d'un groupe de synchronisation. Ensuite déployez la modification et patientez jusqu'à la fin de l'annulation du déploiement. Vous pouvez ensuite modifier le groupe de synchronisation et déployer les modifications.

Si vous tentez de supprimer une base de données et de modifier un groupe de synchronisation sans avoir déployé l'une des modifications, l'une des opérations échoue et l'interface utilisateur peut entrer dans un état incohérent. Cependant, si cela se produit, vous pouvez actualiser l'interface utilisateur pour restaurer l'état approprié.

Le service Synchronisation des données SQL (Aperçu) est une fonctionnalité de la base de données SQL. Dans le portail de gestion Azure, vous pouvez effectuer toutes les tâches nécessaires pour créer, déployer et modifier un groupe de synchronisation.

 

Créer un groupe de synchronisation

Six étapes sont requises pour créer un groupe de synchronisation dans le portail de gestion Azure. Les détails de chaque étape sont accessibles via les liens suivants.

  1. Connectez-vous au portail de gestion de base de données SQL Azure
    Synchronisation des données SQL (Aperçu) apparaît sous forme d'onglet, sous la base de données SQL, une fois que vous avez créé un groupe de synchronisation.

  2. Installation d'un agent client de synchronisation des données SQL

  3. Inscription d'une base de données SQL Server auprès d'un agent client

  4. Création de votre groupe de synchronisation

  5. Définition de votre synchronisation de données

  6. Configuration de votre groupe de synchronisation (SDS)

Modifier un groupe de synchronisation

Vous pouvez modifier le schéma d'un groupe de synchronisation en ajoutant/supprimant des tables ou des colonnes dans le groupe ou en modifiant la largeur ou le type de données d'une colonne. Les détails sont accessibles via les liens.

Voir aussi

Afficher:
© 2015 Microsoft