横向扩展SQL Server应用程序:提高工作负载的选项

日期: 2017-03-23 作者:Brien Posey翻译:张亮亮 来源:TechTarget中国 英文

SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。 首先,存在一个基本问题,即是否要对SQL Server体系结构进行纵向或横向扩展。前者涉及到将数据库迁移至具有更多处理器,存储器和数据存储的更大的服务器; 而后者将SQL Server应用程序扩展到多个服务器,如此一来扩展了数据处理工作负载,并提供了潜在的数据冗余和可用性优势。

在这种情况下,我们将重点介绍横向扩展SQL Server的各种方法。在决定使用哪种可扩展性方法之前,数据……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。

首先,存在一个基本问题,即是否要对SQL Server体系结构进行纵向或横向扩展。前者涉及到将数据库迁移至具有更多处理器,存储器和数据存储的更大的服务器; 而后者将SQL Server应用程序扩展到多个服务器,如此一来扩展了数据处理工作负载,并提供了潜在的数据冗余和可用性优势。

在这种情况下,我们将重点介绍横向扩展SQL Server的各种方法。在决定使用哪种可扩展性方法之前,数据库管理员必须考虑诸如数据更新频率,数据是否可以在不同数据库之间进行分区以及修改在SQL Server上运行的应用程序的能力等因素。借助手中的答案,他们可以创建满足其特定需求的横向扩展计划。

为了有助于找到这些答案,这里有一些常用的SQL Server横向扩展方法的基本细节,它们都是从Microsoft发布的技术信息凝聚而来的。

可扩展共享数据库。数据库不必在物理上位于数据库服务器。通过将其放置在存储区域网络(SAN)上,可以通过在不同服务器上运行的多个SQL Server实例同时访问数据。实质上,连接到SAN的每个实例都使用的是相同的数据库副本。

这种扩展方法通常可以在不对SQL Server应用程序进行任何修改的情况下使用。然而,其一个很大的缺点是它只适用于具有静态数据的工作负载。可扩展共享数据库在涉及复杂查询的读密集型应用程序(例如数据仓库)中工作得非常出色。

但是,可扩展共享数据库不适合具有读/写操作混合的应用程序。在将数据写入SQL Server数据库时,会在SQL Server数据库上加锁。如果数据必须写入共享数据库,除了一个SQL Server实例外,所有其他SQL Server实例将立即从其中分离,直到写操作完成。因此,写操作会以非常显着的方式对数据库性能产生负面影响。

分布式分区视图。与可扩展共享数据库不同,此项用于扩展SQL Server工作负载的技术适用于频繁更新的数据,因此非常适合联机事务处理(OLTP)应用程序。其潜在的缺点是数据必须能够被分区。数据库应用程序也可能需要修改以跨所有分区进行同步处理操作。

分布式分区视图方法背后的概念很简单:大型数据库中的数据被分解成几个较小的分布式数据库。例如,包含发票的数据库可能按年份划分。2016年的发票可以放入一个数据库,而2017年的发票将进入另一个数据库。然后可以对包含相关数据的数据库运行更新和查询。

数据依赖型路由。这实质上是为大容量OLTP应用程序设计的分布式分区视图的变体。数据库类似地分解为一系列较小的数据库。而其区别在于将查询路由至正确的数据库的过程是如何加以管理的。有了分布式分区视图,SQL Server本身知道数据分区结构,并确定去哪里访问所请求的数据。在数据依赖型路由的情况下,SQL Server应用程序或中间件服务会确定必要数据的驻留位置。

链接服务器。SQL Server可以访问远程数据库,就如同它们是在本地一样。 因此,可以对软件进行配置以将横向扩展的数据库集合视为单个大型数据库。 当现有的SQL Server应用程序无法轻易更改为支持另一种横向扩展方法时,链接服务器便提供了一种可行的替代方案。

但是,因为SQL Server连接到一系列独立的数据库,所以它们之间不能有正式的耦合。除了SQL Server中的一些限制之外,例如本地表和远程表之间缺乏引用完整性,则在访问远程数据库时就会涉及大量的处理开销。涉及到链接服务器的SQL Server体系结构必须以最小化访问远程数据的方式进行设计,特别是通过本地表和远程表之间的连接。

对等复制。用于横向扩展SQL Server应用程序的另一种机制是在不同服务器之间复制数据。对等复制基本上与可扩展共享数据库方法相反。它不是使多个数据库服务器共享数据库的单个副本,而是每个服务器都包含自己的副本。当发生写操作时,更改将复制到所有副本。

对等复制可以处理中等数量的数据库写入,但它最适合于相对静态的数据。由于复制过程涉及延迟,因此它也不适合与对时间非常敏感的数据一起使用。然而,对于处理更多读取而不是写入的数据库,这是一个很好的通用可扩展性选项。

翻译

张亮亮
张亮亮

TechTarget特邀编辑。毕业于北京邮电大学网络技术研究院。熟悉软件开发测试的各个环节和流程,对操作系统,数据库,计算机网络等有较为深入的理解。现就职于中国电子科技集团公司下属研究所,从事软件研发工作。热衷于英文的学习交流,平时喜欢户外运动,音乐,电影。

相关推荐