2009-08-11 5 views
0

Ich bin in einem Szenario, in dem ich mit vielen Datenbanken arbeiten möchte. Einige sind in meinem Projekt und einige sind extern. Meine Anwendung würde Daten aus der externen Datenbank (eine, die sich auf einem Remote-Computer befinden. Ich kenne die IP-und Benutzeranmeldeinformationen) in meine temporäre Datenbank übertragen. Ich möchte die Tabellen in dieser Datenbank in meiner Datenbank erstellen. Was ist die beste Methode, dies zu tun? Ich würde mit ASP.NET 3.5 arbeiten. Irgendwelche Empfehlungen wie WCF oder Webservice?Der beste Ansatz für die Datenübertragung von Remote-Datenbank zu lokaler Datenbank

Antwort

2

Sie haben sich einige Fragen zu beantworten:

  1. das Schema der Quelle und Datenbank stabil Ziel?
  2. Können Sie sich Ausfallzeiten während der Synchronisierung leisten?
  3. Übertragen Sie Daten und Struktur oder nur Daten?
  4. Wie oft brauchen Sie die Synchronisation? (Einmal täglich oder immer aktuelle Daten)

Die Antwort auf diese Fragen hängt aber eine einfache Lösung ist SMO zu verwenden und die "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

Ich habe eigentlich nicht verwendet, aber ich denke, das Microsoft Sync Framework wurde mit dieser Art von Szenario im Verstand.

2

ich auf welcher erarbeiten würde Richard & Chris sagte -

Replikation eine Reihe von Technologien für das Kopieren und Verteilen von Daten und Datenbank-Objekten aus einer Datenbank in einer anderen und dann die Synchronisierung zwischen Datenbanken Konsistenz bewahren. Mithilfe der Replikation können Sie Daten an verschiedene Standorte und remote oder mobile Benutzer über lokale und Wide Area Networks, DFÜ- Verbindungen, drahtlose Verbindungen und das Internet verteilen.

Transactional Replikation ist typischerweise verwendet in Server-zu-Server-Szenarien , die einen hohen Durchsatz erfordern, einschließlich: Verbesserung der Skalierbarkeit und Verfügbarkeit; Data Warehousing und Berichterstattung; Integration von Daten aus mehreren Standorten; Integrieren von heterogenen Daten; und Entladen Stapelverarbeitung. Merge Replikation ist in erster Linie für mobile Anwendungen oder verteilten Server Anwendungen, die mögliche Daten Konflikte haben. Häufige Szenarien sind: Austausch von Daten mit mobilen Benutzern; Verbraucher Point of Sale (POS) Anwendungen; und Integration von Daten von mehreren Standorten. Snapshot Replikation wird verwendet, um den ersten Datensatz für transaktionale und Mergereplikation bereitzustellen; Es kann auch verwendet werden, wenn vollständige Aktualisierungen der Daten angemessen sind. Mit diesen drei Arten von Replikation stellt SQL Server ein leistungsfähiges und flexibles System für Synchronisierung von Daten in Ihrem Unternehmen.

Neben Replikation in SQL Server 2008 können Sie Datenbanken sychronize von Microsoft Sync Framework and Sync Services für ADO.NET verwenden. Sync Services für ADO.NET bietet eine intuitive und flexible API , die Sie Anwendungen erstellen können, die Szenarien offline und Zusammenarbeit abzielen.

Verwandte Themen