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

发布于 2024-08-01 23:51:30 字数 180 浏览 3 评论 0原文

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

I am in a scenario where I want to work with many databases. Some are in my project and some are external. My application would transfer data from the external database(one which reside in a remote machine. I know the ip and user credentials) to my temp database. I want to create the tables in that database to my database. What is the best method to do this? I would work with ASP.NET 3.5 . Any recommendations like WCF or Web service?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

隔岸观火 2024-08-08 23:51:30

你必须回答自己一些问题:

  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(); 

You have to answer yourself some questions:

  1. Is the schema of source and target
    database stable?
  2. Can you afford downtime during synchronization?
  3. Do you transfer data and structure or only data?
  4. How often do you need synchronization? (once a day or always recent data)

The answer depends on this questions but one simple solution ist to use SMO and the "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(); 
烟花易冷人易散 2024-08-08 23:51:30

我将详细说明理查德和理查德的内容。 克里斯说——

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

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

除了复制之外,在 SQL 中
Server 2008,可以同步
通过使用 Microsoft 同步框架和同步服务
ADO.NET。 ADO.NET 同步服务
提供直观、灵活的API
您可以使用它来构建应用程序
以离线和协作为目标
场景。

I'll elaborate on what Richard & Chris said -

Replication is a set of technologies
for copying and distributing data and
database objects from one database to
another and then synchronizing between
databases to maintain consistency.
Using replication, you can distribute
data to different locations and to
remote or mobile users over local and
wide area networks, dial-up
connections, wireless connections, and
the Internet.

Transactional replication is typically
used in server-to-server scenarios
that require high throughput,
including: improving scalability and
availability; data warehousing and
reporting; integrating data from
multiple sites; integrating
heterogeneous data; and offloading
batch processing. Merge replication is
primarily designed for mobile
applications or distributed server
applications that have possible data
conflicts. Common scenarios include:
exchanging data with mobile users;
consumer point of sale (POS)
applications; and integration of data
from multiple sites. Snapshot
replication is used to provide the
initial data set for transactional and
merge replication; it can also be used
when complete refreshes of data are
appropriate. With these three types of
replication, SQL Server provides a
powerful and flexible system for
synchronizing data across your
enterprise.

In addition to replication, in SQL
Server 2008, you can sychronize
databases by using Microsoft Sync Framework and Sync Services for
ADO.NET. Sync Services for ADO.NET
provides an intuitive and flexible API
that you can use to build applications
that target offline and collaboration
scenarios.

爱的十字路口 2024-08-08 23:51:30

我实际上没有使用过它,但我认为 Microsoft Sync Framework 是根据这种类型的场景创建的。

I haven't actually used it, but I think the Microsoft Sync Framework was created with this type of scenario in mind.

不必了 2024-08-08 23:51:30

听起来您需要阅读有关数据库复制的信息。

Sounds like you need to read about database replication.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文