Лучший подход для передачи данных из удаленной базы данных в локальную базу данных - PullRequest
0 голосов
/ 11 августа 2009

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

Ответы [ 4 ]

2 голосов
/ 11 августа 2009

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

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

Ответ зависит от этих вопросов, но одно простое решение - использовать SMO и задачу «Передача» .

      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(); 
2 голосов
/ 11 августа 2009

Я подробно остановлюсь на том, что сказали Ричард и Крис -

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

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

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

0 голосов
/ 11 августа 2009

Похоже, вам нужно прочитать о базе данных репликация .

0 голосов
/ 11 августа 2009

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

...