向外扩展SQLServer系统的两个选项

向外扩展SQLServer系统的两个选项,第1张

向外扩展SQLServer系统的两个选项,第2张

当我提到向外扩展数据库系统时,我实际上只是讨论了划分或分割数据库系统,以便您可以利用这些部分,并将它们分配给单独的数据库服务器。这允许您在许多服务器之间分配处理能力,以满足不断扩大的增长。

然而,额外的特征和功能需要更高程度的复杂性。很难设计或管理向外扩展的数据库。在成功扩展数据库系统之前,您必须解决许多棘手的业务和技术问题。

本文阐述了扩展数据库系统以获得更高可扩展性的两种选择:水平数据分区和垂直数据分区。

水平数据划分

使用水平数据分区,就数据库实例而言,数据库结构没有变化。通常,数据库之间的区别在于实例包含的数据不同。

开发中间层应用程序来正确维护实例之间的数据是该解决方案的特点。可能很难决定如何在数据库实例之间划分数据。数据分布方法至关重要,因为我们需要在不同的服务器之间平均分布数据负载。如果没有这种平均分区,您就无法从扩展数据库中获得任何好处,因为大多数查询或事务的IO仍然只发生在一台服务器上。

由于所有数据不再存储在一台服务器上,因此在必要时查询所有数据变得更加困难。幸运的是,您可以构建一个分布式分区视图来连接两个服务器实例之间的数据,这样数据看起来就像存储在一个服务器上。有一些特殊的视图,它们使用连接的服务器和在数据表上建立的约束来有效地返回数据,就像您只在一个服务器上查询数据一样。(我将在下周的文章中详细讨论分布式分区视图。)

此外,值得一提的是,如果服务器位于不同的地理位置,其性能可能会受到影响。在这种情况下,您可能希望在实例之间复制数据,以便每个服务器都有完整的数据,但只负责维护特定的数据。

垂直数据划分

垂直数据分区包括将数据库表划分为存储在不同服务器上的不同数据库实例。每个服务器通常被分配来完成一个特殊的任务。这样,那些表中的IO就可以分区了。这种类型的划分依赖于在逻辑上将系统分成许多部分,以便这些部分可以独立运行。如果事务处理的实例之间的交互量很小,那么这种处理是必要的。

例如,如果您的数据库系统维护销售、营销和广告数据,那么就要将这些表分成单个数据库实例,并防止它们在同一个服务器上共享IO。您可能还需要处理这两个共享一些相同数据(例如客户数据)的系统。通过划分这些业务功能,可以在必要时扩展数据库环境,提高系统效率。

您可以采取一些措施,例如在每台服务器上使用互连的表和视图,以便该实例可以查看来自其他实例的数据。这可以减少应用层在决定在哪里找到所需数据时所需的额外计算。您需要确保应用层有必要的逻辑来决定将数据保存在哪个服务器上。

修改

您可以修改水平和垂直数据分区方法,以更好地适应您的环境。例如,您可以使用面向服务的架构在服务器之间分配处理能力;应用程序复制确保数据库实例彼此保持密切同步;并综合运用这些技能

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 向外扩展SQLServer系统的两个选项

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情