使用链接服务器跨数据库服务器进行查询?

使用链接服务器跨数据库服务器进行查询?

我们拥有多台包含大量信息的 MSSQL 2005 服务器。我们希望我们的数据库开发人员能够以最透明、最高效的方式跨这些信息孤岛进行连接。这些数据库的大小各不相同,但平均有数千万行,并且更新频繁。这些服务器在物理上位于同一位置。

我希望能够从许多不同的服务器实例创建一种“单一逻辑数据库”。

链接服务器是显而易见的选择,但我担心性能以及查询与特定服务器的紧密耦合。我是不是太担心了?您有支持此解决方案的经验吗?


我正在权衡的其他选择是使用复制、SSIS 包、服务代理或将更多数据库物理连接到我们的一台更大的机器上。

另外,我想知道是否有其他供应商可以提供解决此问题的解决方案?

答案1

SQL Server 中没有允许“透明”数据访问的解决方案。跨多台服务器进行查询需要分布式查询(即链接服务器),并且出于可用性和可维护性的原因,使用针对多台实例的链接服务器的硬编码查询部署解决方案将很快失败。令人惊讶的是移动数据库的真正程度:服务器更改名称、发生故障转移、出于负载平衡的原因移动数据库。鉴于 DQ 的紧密耦合性质,这实际上不起作用。

其他大型部署通过采用 SOA 并依赖消息传递来解决此问题,请参阅MySpace 使用 SQL Server Service Broker 保护 1 PB 数据的完整性。这意味着编程和解决方案的范式将发生重大转变,使用 T-SQL 查询的现有应用程序不会神奇地透明地在服务器“农场”上运行。

答案2

我不知道您描述的 SQL Server 是否有类似的东西,无论是来自 Microsoft 还是第三方。链接服务器允许您创建跨服务器查询,但它们绝不透明。我认为您最接近的做法是使用复制或 SSIS 将来自各个实例的数据聚合到单个数据仓库中。

答案3

您的解决方案在于整合服务经纪人进入你的应用程序。听起来你可能对实时数据集成示例. 您还可以创建跨 SQL Server 实例的视图根据您尝试执行的连接类型以及希望查询运行的位置(分布式或集中式),其中一种方法(或两种方法)应该可以满足您的需要

答案4

听起来您正在寻找“中央管理服务器”,这是 SQL 2008 的新功能。

这是官方文档:http://technet.microsoft.com/en-us/library/bb895144.aspx

以下是一个包​​含示例的博客:http://www.mssqltips.com/sqlservertip/1767/execute-sql-server-query-on-multiple-servers-at-the-same-time/

相关内容