Exporter (0) Imprimer
Développer tout

Meilleures pratiques de l'Aperçu de synchronisation des données SQL

Mis à jour: février 2014

 

 

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 synchronisation 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 (https://manage.windowsazure.com), si vous sélectionnez Création personnalisée, définissez la taille maximale afin qu'elle soit toujours plus grande que 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 l'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 être dans un groupe de synchronisation. 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 le déploiement de base automatique de bases 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 vos besoins métiers et créez votre Groupe de synchronisation 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 Comprendre et éviter les 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 Une base de données a un état « Obsolète » pour apprendre à récupérer 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 :

Consultez la rubrique Un groupe de synchronisation a un état « Obsolète » pour apprendre à récupérer 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é.

Pour obtenir des meilleures pratiques supplémentaires, consultez Meilleures pratiques pour les mises à jour de groupes de synchronisation.

Le service Synchronisation des données SQL (Aperçu) est une fonctionnalité de la Base de données SQL. Dans le portail de gestion Windows 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 Windows Azure. Les détails de chaque étape sont accessibles via les liens suivants.

  1. Connectez-vous au portail de gestion de la Base de données SQL Windows Azure
    L'agent Synchronisation des données SQL (Aperçu) se présente sous la forme d'un onglet, dans Base de données SQL, uniquement une fois que vous avez créé un groupe de synchronisation.

  2. Installer un Agent client pour l'Aperçu de synchronisation des données SQL

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

  4. Créer votre groupe de synchronisation (SDS)

  5. Définir vos données de synchronisation (SDS)

  6. Configurer votre groupe de synchronisation (SDS)

Modifier un groupe de synchronisation

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

Voir aussi

Afficher:
© 2014 Microsoft