【发布时间】:2009-08-11 10:34:52
【问题描述】:
我处于一个想要使用多个数据库的场景中。有些在我的项目中,有些在外部。我的应用程序会将数据从外部数据库(驻留在远程机器中的数据库。我知道 ip 和用户凭据)传输到我的临时数据库。我想将该数据库中的表创建到我的数据库中。最好的方法是什么?我会使用 ASP.NET 3.5 。有没有 WCF 或 Web 服务之类的建议?
【问题讨论】:
标签: asp.net .net-3.5 data-transfer
我处于一个想要使用多个数据库的场景中。有些在我的项目中,有些在外部。我的应用程序会将数据从外部数据库(驻留在远程机器中的数据库。我知道 ip 和用户凭据)传输到我的临时数据库。我想将该数据库中的表创建到我的数据库中。最好的方法是什么?我会使用 ASP.NET 3.5 。有没有 WCF 或 Web 服务之类的建议?
【问题讨论】:
标签: asp.net .net-3.5 data-transfer
你必须回答自己一些问题:
答案取决于这个问题,但一个简单的解决方案是使用 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();
【讨论】:
我会详细说明 Richard 和 Chris 所说的 -
复制是一组技术 用于复制和分发数据和 数据库对象从一个数据库到 另一个然后在之间同步 数据库以保持一致性。 使用复制,您可以分发 数据到不同的位置,并 远程或移动用户通过本地和 广域网、拨号 连接、无线连接和 互联网。
事务复制通常是 用于服务器到服务器的场景 需要高吞吐量, 包括:提高可扩展性和 可用性;数据仓库和 报告;整合来自的数据 多个站点;整合 异构数据;和卸载 批量处理。合并复制是 主要为移动设备设计 应用程序或分布式服务器 有可能数据的应用程序 冲突。常见的场景包括: 与移动用户交换数据; 消费者销售点 (POS) 应用程序;和数据整合 来自多个站点。快照 复制用于提供 交易和交易的初始数据集 合并复制;它也可以使用 当数据完全刷新时 合适的。有了这三种类型 复制,SQL Server 提供了一个 强大而灵活的系统 跨您的数据同步 企业。
除了复制,在 SQL Server 2008,可以同步 数据库使用Microsoft Sync Framework and Sync Services ADO.NET。 ADO.NET 的同步服务 提供直观灵活的 API 可用于构建应用程序 以离线和协作为目标 场景。
【讨论】:
我并没有真正使用过它,但我认为Microsoft Sync Framework 是在考虑到这种场景的情况下创建的。
【讨论】:
听起来你需要了解数据库replication。
【讨论】: