2009-08-11 10 views
0

Je suis dans un scénario où je veux travailler avec de nombreuses bases de données. Certains sont dans mon projet et certains sont externes. Mon application transfère des données de la base de données externe (une qui réside dans une machine distante, je connais l'adresse IP et les informations d'identification de l'utilisateur) à ma base de données temporaire. Je veux créer les tables de cette base de données dans ma base de données. Quelle est la meilleure méthode pour le faire? Je travaillerais avec ASP.NET 3.5. Des recommandations telles que WCF ou service Web?Meilleure approche pour le transfert de données de la base de données distante à la base de données locale

Répondre

2

Vous devez vous répondre à quelques questions:

  1. est le schéma de source et cible stable base de données ?
  2. Pouvez-vous vous permettre des temps d'arrêt pendant la synchronisation?
  3. Transférez-vous des données et de la structure ou seulement des données?
  4. À quelle fréquence avez-vous besoin d'une synchronisation? (une fois par jour ou toujours des données récentes)

La réponse dépend de ces questions mais une solution simple est d'utiliser SMO et le "Transfer" task.

 Server srv = default(Server); 
    srv = new Server(); 
    //Reference the AdventureWorks database 
    Database db = default(Database); 
    db = srv.Databases("AdventureWorks"); 
    //Create a new database that is to be destination database. 
    Database dbCopy = default(Database); 
    dbCopy = new Database(srv, "AdventureWorksCopy"); 
    dbCopy.Create(); 
    //Define a Transfer object and set the required options and properties. 
    Transfer xfr = default(Transfer); 
    xfr = new Transfer(db); 
    xfr.CopyAllTables = true; 
    xfr.Options.WithDependencies = true; 
    xfr.Options.ContinueScriptingOnError = true; 
    xfr.DestinationDatabase = "AdventureWorksCopy"; 
    xfr.DestinationServer = srv.Name; 
    xfr.DestinationLoginSecure = true; 
    xfr.CopySchema = true; 
    //Script the transfer. Alternatively perform immediate data transfer 
    // with TransferData method. 
    xfr.ScriptTransfer(); 
0

Je ne l'ai pas réellement utilisé, mais je pense que le Microsoft Sync Framework a été créé avec ce type de scénario en tête.

2

Je vais élaborer sur ce que Richard & Chris dit -

La réplication est un ensemble de technologies pour la copie et la diffusion de données et objets de base de données d'une base de données à une autre, puis synchroniser entre bases de données maintenir la cohérence. aide de la réplication, vous pouvez distribuer données à différents endroits et à utilisateurs distants ou mobiles sur les réseaux locaux et étendus , dial-up connexions, les connexions sans fil et Internet.

réplication transactionnelles est généralement utilisé dans les scénarios de serveur à serveur qui nécessitent un débit élevé, notamment: l'évolutivité et l'amélioration de la disponibilité ; stockage de données et rapports; intégrer les données de sites multiples; intégration de données hétérogènes ; et décharger le traitement par lots . La réplication de fusion est principalement conçu pour les applications mobiles ou serveur distribué applications qui ont des conflits de données possibles. Les scénarios courants incluent: échanger des données avec des utilisateurs mobiles; point de vente consommateur (POS) applications; et l'intégration des données à partir de plusieurs sites. Snapshot La réplication est utilisée pour fournir l'ensemble de données initial pour la réplication de fusion transactionnelle et ; il peut également être utilisé lorsque les actualisations complètes des données sont appropriées. Avec ces trois types de réplication , SQL Server fournit un système puissant et flexible pour la synchronisation des données dans votre entreprise .

En plus de la réplication, dans SQL Server 2008 , vous pouvez sychronize bases de données en utilisant Microsoft Sync Framework and Sync Services pour ADO.NET. Les services de synchronisation pour ADO.NET fournissent une API intuitive et flexible que vous pouvez utiliser pour créer des applications qui ciblent des scénarios hors connexion et de collaboration .

Questions connexes