SQL Server大型服务器:伸缩性、可用性与易管理性

SQL Server大型服务器:伸缩性、可用性与易管理性

更新日期: 2004年06月24日

Microsoft研究院,Jim Gray

SQL Server开发团队,Richard Waymire

摘要 Microsoft SQL Server已经发展为能够支持巨型数据库和应用程序,其中包括可供数百万人使用的数吉字节数据库。SQL Server通过在对称多处理器(SMP)系统上支持向上扩展(允许用户添加处理器、内存、磁盘、网络带宽等资源以建立单一大型节点)或向外扩展为多节点群集(允许巨型数据库在服务器群集中进行分区,每台服务器存储整套数据库的一部分并完成部分工作,同时确保数据库对外以一个整体的形式提供访问)的方式实现这种伸缩能力。通过向外扩展,SQL Server 2000在事务处理委员会基准测试C(TPC-C)中创造了以往任何平台上的任何数据库系统均未达到过的顶级性能指标。

.NET服务器与SQL Server群集提供了高度可用性和自动管理机制。SQL Server通过内建的故障转移与复制技术来支持高可用性。同时,SQL Server还提供了基于用户接口、向导程序、重复性任务作业调度以及面向脚本化应用操作的SQL-DMO的强大管理模型。SQL Server的体系结构适合模块化增长、自动化配置、维护以及大型服务器区的编程实现。

*
本页内容
简介 简介
SQL Server 2000与Windows Server 2003:SMP和群集式大型服务器 SQL Server 2000与Windows Server 2003:SMP和群集式大型服务器
SQL Server 2000:伸缩性,可用性与易管理性 SQL Server 2000:伸缩性,可用性与易管理性
伸缩性指标 伸缩性指标
可伸缩硬件设备体系结构 可伸缩硬件设备体系结构
SQL Server软件伸缩性体系结构 SQL Server软件伸缩性体系结构
SQL Server与Windows Server 2003易管理性 SQL Server与Windows Server 2003易管理性
小结 小结
版权所有 版权所有

简介

随着电子商务、在线商务应用、商务智能等领域的迅猛发展,许多成功的企业都在对其在线应用进行扩展。目前,每一个Internet或企业内部网络用户都是一个潜在的客户,因此,应用面临着巨大的用户和事务负载。绝大多数企业都在建立大型服务器,以便管理数以吉计的信息并为数以百万的客户和用户提供支持。在此过程中,数据库系统已成为这些大型服务器的核心。

可伸缩式系统为您提供了一种通过添加更多硬件设备的简单方式来扩展网络、服务器、数据库及应用程序的途径。可伸缩式计算机系统可在无需修改应用程序代码的情况下扩大应用程序客户端数量、数据库规模以及网络吞吐量。扩展后的服务器将与原先的小型系统一样便于通过以用户为单位的方式进行管理。

如图1所示,系统可以通过以下方式进行扩充:

向单一节点添加硬件设备或将其升级为一个大型节点。这种方式称为向上扩展

添加更多节点并将数据及工作负载分布于这些节点当中。这种方式称为向外扩展

Figure 1: Scale up and scale out

图1:向上扩展与向外扩展

可伸缩式系统允许设计人员从小规模开始并根据需要不断对系统进行扩充。某些应用——例如客户关系管理——需要采用小型节点,甚至是仅能存储部分数据库并执行部分应用的便携式计算机。理想情况下,这种分布式系统的所有节点都将提供相同的操作并呈现相同的编程接口。

迄今为止,绝大多数伸缩能力都是通过对称多处理器(SMP)式向上扩展来实现的,即向单台服务器上添加更多的处理器、内存、磁盘和网卡。多家厂商的产品已经证明,在常规商务负载环境下,SMP服务器能够提供10倍于单处理器系统的向上扩展能力。然而,单节点体系结构最终会达到一个瓶颈并无法实现进一步的有效扩展。这种瓶颈表现为逐渐缩小的回报率或者价格惊人的昂贵硬件设备。

为实现超过10倍的扩展,应用设计人员倾向于采用群集式向外扩展体系结构,此种情况下,工作负载和数据库将被划分在SMP节点阵列当中。向外扩展式系统通过向群集中添加更多节点的方式实现扩展。尽管群集实际上是一个节点阵列,但其却可以向单套系统那样进行编程和管理。理想情况下,这种划分对于客户端和应用程序来说是完全透明的。所有真正的大型系统都是通过向外扩展式群集来创建的,其中包括IBM的MVS Geoplex和SP2、HP的VMScluster和NonStop Himalya、以及NCR的teradata系统等。此外,群集还以存储区域网络的形式出现,提供此类产品的厂商包括EMC、HP、IBM等。

与不断增长的大型SMP系统不同,群集可以通过便捷的组件方式进行小规模扩充,同时,群集节点的相对独立性也形成了天然的故障转移和高可用性设计方案。尽管如此,由于存在更多的组件需要管理,群集方式也带来了一定的管理挑战。

SQL Server 2000与Windows Server 2003:SMP和群集式大型服务器

Microsoft Windows Server 2003和SQL Server 2000均支持SMP式向上扩展体系结构和群集式向外扩展体系结构。SQL Server既可向下收缩至在便携式计算机或WindowsCE上运行,也可向上扩展为在巨型服务器上运行。无论在事务处理还是数据仓库应用领域,SQL Server均可实现卓越不凡的峰值性能。

尽管大多数常见SMP硬件系统采用2路、4路和8路设计,然而,SQL Server 2000和Windows Server 2003缺可在多达64个节点的SMP硬件系统上运行。这些系统在32位Intel体系结构上最大可支持64 GB内存,在64位Itanium体系结构上最大可支持4 TB内存。迄今为止,由Windows Server 2003系统上运行的SQL Server 2000所支持的最大配置方案已达到32颗处理器和512 GB内存。无论是在官方基准测试或真实应用环境中,这些系统都已显示出了优越的SMP伸缩性。目前,单颗CPU可支持14,000个用户对容量为1 TB的数据库进行访问,一套8处理器节点可支持超过92,000个并发用户对在8 TB磁盘阵列上管理数以亿计条记录的SQL Server系统进行访问,一套32路CPU节点可以支持290,000个用户访问宿主于24 TB磁盘阵列上SQL Server数据库。这些服务器中的最大者每天能够处理超过1亿笔商业交易。

SQL Server SMP节点群集所具备的功能更加丰富。在一项基准测试过程中,HP演示了一套由配备8路Xeon处理器的服务器构成的32节点群集,该群集能够支持超过575,000个并发用户,一套容量为53 TB的数据库能够以每个tmpC单位不超过15美元的低廉成本实现高达709,220个事务处理委员会基准测试C(TPC-C)事务的每分钟事务处理量。基于这项TPC-C性能指标,SQL Server 2000已成为当今世界上具备最佳峰值性能与最佳性价比的数据库系统。

此外,SQL Server在决策支持与数据挖掘领域的表现同样非常优异,并在广泛应用的TPC-H查询集合上表现了突出的性能指标和性价比。

TPC-C基准测试结果显示,SQL Server的性能表现自1995年以来每年超过两倍的速度增长。同时,其性能价格比也在以类似的速度增长。硬件设备与软件产品的不断完善在短期内仍将确保这种趋势。

SQL Server 2000:伸缩性,可用性与易管理性

SQL Server 2000企业版通过Windows 2000 Server和Windows Server 2003所提供的特性来构建大型服务器。SQL Server使用额外的处理器资源来运行额外的执行线程,并且使用额外的内存资源在内存中存储数据库信息。SQL Server关系型引擎支持高速事务处理以及要求苛刻的数据仓库应用。查询执行引擎通过并行合并哈希联接方式及合并联接方式来利用多处理器与多磁盘系统。查询处理器已经进行了多项革新,其中包括哈希团队、联接覆盖索引、在哈希联接中实现的bit-vector过滤以及对群集中基于取值的分区表视图进行透明应用访问。查询执行程序通过大量主内存(最多可达512 GB),大量异步I/O以及并行内部查询来实现良好的决策支持查询SMP性能。优化器采用多项针对星型架构的特殊技术以及丰富的索引数据库。它将通过应用到基表和索引之前首先进行排序的方式来优化批量更新。查询处理器使用内建OLE DB,因此,能够从多种不同数据源中集成数据。利用这些技术,SQL Server能够在非群集Intel系统上实现最佳TPC-C性能和最佳SMP伸缩性,并在SMP群集上实现最佳峰值性能。SQL Server 2000支持对面向报表的应用程序来说非常重要的索引化视图。同时,SQL Server还包含用以建立并处理多维数据集的强大分析(OLAP)工具。此外,SQL Server还提供了数据挖掘工具以及文本索引与获取组件。

分布式事务允许在运行Windows Server 2003、Windows 2000 Server、Windows XP和Windows CE的多台服务器划分SQL Server数据库。同时,分布式事务还允许SQL Server参与跨越DB2/MVS、UNIX和Windows节点的事务,其中包括来自IBM和Oracle的数据库产品。Microsoft 分布式事务处理协调器支持XOpen XA接口,并且能够自动管理跨越这些节点的事务。Microsoft和HP利用Microsoft 分布式事务处理协调器共同建立了每天能够处理一亿笔事务的32节点群集和45节点群集。这种群集由32台运行SQL Server的服务器组成,每台服务器存储数据库的一部分内容。Microsoft COM+负责管理应用程序并在各台服务器之间协调事务处理。

伸缩性与可用性

SQL Server 2000拥有强大的伸缩性与可靠性,其中包括:

面向热备份服务器的日志传送特性。

遍布于群集节点中可更新分区视图。

大容量内存支持能力(最高可达16 TB)。

SMP支持能力(最高可达64颗处理器)。

针对大型Windows Server 2003 Data Center Server群集的支持能力。

针对单台服务器上多个SQL Server 2000实例的支持能力。

通过与Active Directory相互集成实现针对SQL Server服务器的位置透明访问。

数据及数据库管理操作过程中得以改进的并发特性。

用以支持大规模数据仓库的索引视图和雪花架构。

面向Internet和数据交换操作的内建XML支持能力。

用以支持客户端高速缓存和消息通信应用程序的通知服务。

SQL Server利用Microsoft群集服务来支持对称式虚拟服务器:每个SQL Server群集节点在处理正常工作负载的同时,针对其它(最多三个)节点充当热备份。针对灾难恢复,SQL Server支持从一台服务器上向某台远程服务器进行日志传送,当主服务器出现灾难性故障时,辅助服务器可在几分钟内进行恢复并继续面向客户提供服务。

SQL Server在轻松安装与管理方面久负盛名:

企业管理器允许操作人员通过嵌入到Windows Server 2003主控制台中的单一控制台对多个SQL Server实例进行监控与管理。

数据库在很大程度上具备自主调节能力。随着内存的不断增大,SQL Server将扩大内存使用空间,当来自其他应用的内存压力增大时,SQL Server将随之释放部分内存空间。与此相似,SQL Server还将根据实际需要动态扩充或收缩数据库及日志空间。

系统将计算数据库统计信息并自动执行其它内部维护任务,从而将数据库管理员和操作员解放出来,使其能够有精力关注更高级别的问题。

SQL Server提供了大量能够帮助管理员自动完成标准任务的向导程序。这些任务将由一个作业调度程序来定期执行。警报系统将把事件记录到Windows事件日志中,并通过电子邮件或传真方式向操作员发出警告。此外,还可针对每种事件类别调用一个由用户定义的数据库存储过程。

SQL Server 2000能够在单一SMP节点上支持多个实例。一个大型SMP节点可以同时托管分别为多套数据库提供服务的服务器。

SQL Server能够支持千兆兆量级的数据库;现实使用过程中的唯一限制在于备份、恢复和识别此类数据库所需花费的时间。此外,最近几年间,SQL Server产品在这一领域中取得了长足的发展:目前,备份与恢复操作可以采用增量方式并且可以重新开始。Computer Associated公司能够以每小时2.6 TB的速度执行备份并以每小时2.2 TB的速度进行恢复,在此过程中,在线吞吐量仅仅下降

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值