2009-08-11 3 views
0

Я в сценарии, где я хочу работать со многими базами данных. Некоторые из них в моем проекте, а некоторые - внешние. Мое приложение будет передавать данные из внешней базы данных (которая находится на удаленной машине. Я знаю учетные данные ip и пользователя) в моей базе данных temp. Я хочу создать таблицы в этой базе данных в моей базе данных. Каков наилучший способ сделать это? Я бы работал с ASP.NET 3.5. Любые рекомендации, такие как WCF или веб-сервис?Лучший подход для передачи данных из удаленной базы данных в локальную базу данных

ответ

2

Вы должны ответить себе на несколько вопросов:

  1. ли схема исходной и целевой базы данных стабильной?
  2. Можете ли вы позволить себе время простоя во время синхронизации?
  3. Вы передаете данные и структуру или только данные?
  4. Как часто вам нужна синхронизация? (один раз в день или всегда последние данные)

Ответ зависит от этих вопросов, но одно простое решение - использовать SMO и "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

Я на самом деле не использовал его, но я думаю, что Microsoft Sync Framework был создан с учетом этого типа сценария.

2

я уточнить, что Ричард & Крис сказал -

Репликация представляет собой набор технологий для копирования и распространения данных и объектов базы данных из одной базы данных в другой, а затем синхронизировать между баз данных поддерживать согласованность. Используя репликацию, можно распространять данные в разных местах и ​​в удаленных или мобильных пользователей через локальный и глобальных сетей, коммутируемого соединения, беспроводные соединения и Интернет.

репликации транзакций, как правило, используется в сервер-сервер сценариев , которые требуют высокой пропускной способностью, в том числе : улучшение масштабируемости и доступности ; хранение данных и отчетность; интеграция данных из нескольких сайтов; интегрирование гетерогенных данных ; и разгрузка пакетная обработка. Репликация слиянием - , предназначенный в первую очередь для мобильных приложений или распределенного сервера приложений, имеющих возможные данные. конфликтов. Общие сценарии включают: обмен данными с мобильными пользователями; потребительская точка продажи (POS) заявки; и интеграция данных с нескольких сайтов. Снимок репликация используется для предоставления начального набора данных для транзакционных и репликации слиянием; его также можно использовать , когда полное обновление данных - . С помощью этих трех типов репликации SQL Server предоставляет мощную и гибкую систему для синхронизации данных по вашему предприятиям.

В дополнение к репликации в SQL Server 2008 , вы можете sychronize базы данных с помощью Microsoft Sync Framework and Sync Services для ADO.NET. Службы синхронизации для ADO.NET предоставляет интуитивно понятный и гибкий API , который можно использовать для создания приложений , предназначенных для автономных и совместной работы сценариев.

Смежные вопросы