发布
社区首页 >问答首页 >SQL Server:数据库集成与同步

SQL Server:数据库集成与同步
EN

Database Administration用户
提问于 2013-10-26 07:57:52
回答 4查看 1.1K关注 0票数 2

我有n个具有相同数据模式的Server数据库。

另一方面,对于某些实体,我有一个web应用程序需要检索存储在n个数据库中的信息的合并。

一个可能的解决方案是使用SSIS ()和BIDS ()应用ETL操作(提取、转换和加载)。

通过应用ETL操作,我可以从我的web应用程序中获得一个数据库(仓库)。有关基本草图,请看下面的图片。

问题在于,web应用程序不仅访问仓库进行读取,而且还访问写入和更新信息。

如果实体正在更新到仓库中,则需要将相同的更新应用到原始源中。

注意:进入源和仓库的信息可以频繁更新。

复制是否是将更新同步到仓库到正确源的好方法,或者我还可以使用其他工具?

也许我可以考虑另一种策略,而不是ETL和仓库?

EN

回答 4

Database Administration用户

发布于 2013-12-28 15:06:57

如果您的更新/插入总是发生在n个数据库中的单个数据库上,并且在每个请求中读取了较少的行数,则可以使用链接服务器和分布式分区视图(DPV)来创建单个数据库的错觉:http://technet.microsoft.com/en-us/library/ms188299(v=sql.105).aspxhttp://technet.microsoft.com/en-us/library/ms188299(v=sql.105).aspx。这可以在不引入复制复杂性的情况下完成。

DPV有几个限制,如果您不小心,可能会给您带来较差的性能。如果不知道您想要运行的查询的更多细节,我只能建议您尝试并查看是否解决了您的问题。

票数 1
EN

Database Administration用户

发布于 2013-10-26 12:50:35

一种选择是将n个相同的Server数据库替换为针对数据仓库的可写视图。

通过这种方式,您可以将所有数据保存在一个地方,但是可以使用视图来过滤数据,这样每个子集都可以作为一个独立的实体查看。因为您实际上只有一个数据副本,所以插入/更新/删除是对筛选视图执行还是对未筛选的表执行并不重要。双方将同时看到它,永远不会出现同步问题。

注意,为了使视图可写,必须强制执行某些条件。见这里

票数 0
EN

Database Administration用户

发布于 2013-10-27 15:08:01

据我所知,更新仓库数据不是一个好做法。但是,如果确实需要执行此操作,则可以使用以下技巧:

  1. 如果您可以在"select“查询中同意数据更改与接收更改数据之间的延迟,则复制是一个好主意。
  2. 应用程序所做的更新必须针对所需的数据源执行,并通过复制机制将其传输到仓库数据。这可以通过使用中介来实现,而中介的主要任务将是进行更改定义所需的数据源。
  3. 需要从数据源到仓库数据使用事务性复制,这将同步仓库数据数据库中的数据。

在这种情况下,您可以在仓库数据更新期间避免锁。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/52254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档