2010-11-09 20 views
0

Certaines des tables que j'essaie d'initialiser ont entre 2 et 16 millions d'enregistrements. J'ai commencé une synchronisation hier soir à 17h et attend toujours. Comment ce cadre est-il une option viable pour le monde réel? Quelqu'un ayant la même expérience?Toute personne ayant des problèmes avec Sync Framework v2.1 lors de l'initialisation de la base de données?

Ce sont les étapes que je ... pris

  1. POPULATE la base de données client avec toutes les données de la source à l'aide de SSIS.
  2. Provisionner le client db et la source db.2.
  3. Synchroniser le client avec "téléchargement uniquement" .3.
  4. Attendez l'éternité.
+0

Je cherche actuellement à embaucher quelqu'un pour écrire un article sur l'utilisation de ce genre de choses dans la production. S'il y a des preneurs, envoyez un courriel à [email protected] –

Répondre

0

permet de bien analyser ce que vous venez de dire:
Some of the tables that I am trying to intialize are anywhere from 2 to 16 million records.

Certains sens plusieurs qui signifie plus de 1 et des millions d'enregistrements. Vous ne nous avez donné aucune information sur le schéma, donc je vais supposer ici qu'ils sont tous des blobs de 500k chacun. Cela résoudra ce problème. Je ne vois pas comment synchroniser ce que je suppose être des centaines de millions d'enregistrements en 24 heures qui ont indubitablement des types de données disjoints est un gros problème.

+0

Je suis conscient de la signification de cette déclaration. Le problème est pourquoi n'existe-t-il pas une meilleure façon de créer une base de synchronisation (avec ses tables de suivi) pour que ses métadonnées soient mises à jour afin de savoir qu'elle dispose des dernières données possibles plus facilement? Peut-être qu'il me manque une procédure pour me montrer une meilleure façon de synchroniser pour l'initialisation (je vais placer les étapes que j'ai prises dans mon post original). – mitch

0

Oui, la structure de synchronisation est assez lente, surtout si vous n'avez pas groupé vos lignes. Il est préférable d'utiliser une sauvegarde de votre serveur pour initialiser la base de données, ou au cas où ils ne sont pas symétriques, faites la synchronisation sur une connexion réseau rapide (comme LAN au lieu d'Internet).

Ici, je suppose que le goulot d'étranglement est la bande passante (comme cela a été le cas pour moi la plupart du temps) - dans le cas où l'utilisation CPU/mémoire pose des problèmes, alors évidemment nous avons besoin d'autres alternatives.

Toutefois, le cadre est viable dans le monde réel, lorsque vous vous attendez à une synchronisation fréquente et donc la quantité de données modifiées n'est pas beaucoup. Particulièrement utile si vous voulez mettre une logique spécifique ou filtrer des données (par exemple, un commercial qui obtient des données de ventes uniquement liées à ses comptes/région au lieu de toutes les données).

+0

Je suis en train de faire l'initialisation maintenant pour créer une sauvegarde qui serait restaurée sur environ 100 clients. Ce que j'ai, c'est que les synchronisations sont groupées en fichiers par la source qui sont ensuite utilisées par le client pour mettre à jour le DB du client. Le problème est le moment de la création de cette initialisation. Mon souci est de savoir si nous devions modifier le schéma ou si nous avions besoin de recréer une sauvegarde de base, cela nécessiterait un temps de préparation important. Il doit y avoir une meilleure façon de créer et de remplir les tables de suivi. – mitch