从远程数据库到本地数据库的数据传输的最佳方法

时间:2009-08-11 10:34:52

标签: asp.net .net-3.5 data-transfer

我处在一个我想要使用许多数据库的场景中。有些是在我的项目中,有些是外部的。我的应用程序将数据从外部数据库(一个驻留在远程机器中的数据。我知道ip和用户凭据)传输到我的临时数据库。我想在该数据库中创建表到我的数据库。这样做的最佳方法是什么?我会使用ASP.NET 3.5。任何建议,如WCF或Web服务?

4 个答案:

答案 0 :(得分:2)

我将详细说明Richard&克里斯说 -

  

复制是一组技术   用于复制和分发数据和   数据库对象从一个数据库到   另一个然后同步   数据库保持一致性。   使用复制,您可以分发   数据到不同的位置和   本地和远程的远程或移动用户   拨号广域网   连接,无线连接和   互联网。

     

通常是事务复制   用于服务器到服务器方案   需要高吞吐量,   包括:提高可扩展性和   可用性;数据仓库和   报告;整合来自的数据   多个站点;整合   异构数据;和卸载   批量处理。合并复制是   主要是为移动设计的   应用或分布式服务器   有可能数据的应用程序   冲突。常见方案包括:   与移动用户交换数据;   消费者销售点(POS)   应用;和数据整合   来自多个网站。快照   复制用于提供   事务和的初始数据集   合并复制;它也可以使用   完全刷新数据时   适当。有了这三种类型   复制,SQL Server提供了一个   强大而灵活的系统   同步数据   企业。

     

除了复制之外,在SQL中   Server 2008,您可以进行同步   数据库使用Microsoft Sync Framework and Sync Services表示   ADO.NET。同步ADO.NET服务   提供直观,灵活的API   您可以用来构建应用程序   目标离线和协作   场景。

答案 1 :(得分:2)

你必须回答一些问题:

  1. 是源和目标的架构 数据库稳定?
  2. 您可以在同步期间承受停机时间吗?
  3. 您是传输数据和结构还是仅传输数据?
  4. 您多久需要同步一次? (每天一次或总是最近的数据)
  5. 答案取决于这个问题,但一个简单的解决方案是使用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(); 
    

答案 2 :(得分:0)

我实际上并没有使用它,但我认为Microsoft Sync Framework是在考虑到这种情况的情况下创建的。

答案 3 :(得分:0)

听起来您需要了解数据库replication