如何在SQL Server 2008 R2中实现分布式数据库?

Gir*_*K G 1 distributed database-design sql-server-2008

我需要为我的系统实现分布式数据库.这样我的应用程序就可以将数据库看作一个数据库了.但实际的数据库分布在两个或三个服务器上.

如何配置?

Fil*_*vić 8

SQL Server不是分布式数据库系统,因此您无法做到这一点.但是,SQL Server中有一种方法可以使您的应用程序将来自不同服务器的数据库视为单个服务器上的单个数据库.您必须添加链接服务器并为另一台服务器上的对象创建同义词,以便以相同的方式访问它们如果它们驻留在同一数据库中,则访问它们.

MSDN中所述:

可以为以下类型的对象创建同义词:程序集(CLR)存储过程,汇编(CLR)表值函数,汇编(CLR)标量函数,汇编聚合(CLR)聚合函数,复制过滤器过程,扩展存储过程,SQL标量函数,SQL表值函数,SQL内联表值函数,SQL存储过程,视图,表(用户定义)

此列表可能涵盖您的所有需求.您可以在同一篇文章中找到为远程对象创建同义词的示例.

与往常一样,测试您的应用程序的性能,因为对分布式对象的查询可能是网络密集型的.例如,如果您从不同的服务器连接两个表,则会有网络流量将数据从一个服务器传送到另一个服务器.也许您想要考虑复制/日志传送/触发器等,以便在主数据库上保留远程对象的精确副本.

请注意,SQL Server 2005中添加了同义词,此处提供的链接适用于SQL Server 2008 R2.

  • 如果您将其视为不同服务器上的多个SQL Server实例(每个服务器都具有一个相同的数据库的一部分),则SQL Server不会将"分布式数据库"识别为概念.这在SQL Server中是不可能的.Quote:"我需要为我的系统实现分布式数据库.所以我的应用程序将数据库看作一个.但实际的数据库分布在两个或三个服务器上." 第一句话:没有.第二句:是的,链接服务器.第三句:否您无法链接的服务器是从不同服务器访问不同数据库的"通道". (2认同)