SQL Server大型服務器:伸縮性、可用性與易管理性
簡介
隨著電子商務、在線商務應用、商務智能等領域的迅勐發展,許多成功的企業都在對其在線應用進行擴展。目前,每一個Internet或企業內部網絡用戶都是一個潛在的客戶,因此,應用麵臨著巨大的用戶和事務負載。絕大多數企業都在建立大型服務器,以便管理數以吉計的信息並為數以百萬的客戶和用戶提供支持。在此過程中,數據庫係統已成為這些大型服務器的核心。
可伸縮式係統為您提供了一種通過添加更多硬件設備的簡單方式來擴展網絡、服務器、數據庫及應用程序的途徑。可伸縮式計算機係統可在無需修改應用程序代碼的情況下擴大應用程序客戶端數量、數據庫規模以及網絡吞吐量。擴展後的服務器將與原先的小型係統一樣便於通過以用戶為單位的方式進行管理。
如圖1所示,係統可以通過以下方式進行擴充:
• |
向單一節點添加硬件設備或將其升級為一個大型節點。這種方式稱為向上擴展。 |
• |
添加更多節點並將數據及工作負載分布於這些節點當中。這種方式稱為向外擴展。 ![]() 圖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的速度進行恢複,在此過程中,在線吞吐量僅僅下降了25%。更加不可思議的是,利用Windows Server 2003卷影磁盤技術,SQL Server能夠在短短11分鍾內從磁盤卷影拷貝當中恢複一個容量為2.5 TB的數據庫。通過進一步改進的存儲與網絡技術,以上這些指標仍在不斷提高。如需獲取更多相關信息,請在Computer Associates公司的Web站點(https://ca.com/)上搜索“TB級備份基準測試”。
SQL Server被設計為能夠根據負載和硬件設備運行環境的變化情況自動對自身進行監控與調節。其中增加了用以輔助完成數據庫設計,監控係統運行狀況,以圖形化方式顯示係統狀態與查詢計劃,推薦重組方式,以及幫助操作員完成例行管理任務的相關工具。一套先進的內建工作流係統將負責針對大多數數據中心與數據倉庫來編排數據清理、數據轉換和數據裝載過程。最終,一個向導程序將檢查係統工作負載,並向您推薦更好的物理設計方案。
群集允許將SQL Server向外擴展為任意規模的大型數據庫。Windows Server 2003群集提供了模塊化擴展方式,從而允許客戶僅僅購買他們所需的產品,並在需求增長時通過為服務器添加處理、存儲及網絡模塊的方式對係統進行擴展。Microsoft簡化了大型服務器的構建與管理方式,事實上,Microsoft希望在企業級群集中實現即插即用特性,並針對更廣泛的群集配置與管理工作實現自動化。分區群集能夠潛在支持容量為數百兆兆的數據庫。此類係統的大小應足以適應各種應用,此外,如果當前的市場價格趨勢一直延續下去,那麼,到2005年,這樣的群集將隻需花費數百萬美元便可利用常規組件搭建完成。
以下表格記錄了SQL Server的伸縮性狀態。其中引用的數字並非嚴格限製,而僅僅代表Microsoft對相關工具擴展能力的預期。
截止到2003年3月的SQL Server 2000伸縮特性
技術 | 活動用戶 | 吞吐量t | 數據庫規模 |
SMP、故障轉移、並行查詢、分布式事務、SQL Server企業管理器 |
400,000 |
每分鍾300,000筆事務、每天250,000,000筆事務 |
40 TB |
SMP群集、故障轉移、並行查詢、分布式事務、SQL Server企業管理器 |
700,000 |
每分鍾500,000筆事務 每天1億筆事務 |
60 TB |
數據倉庫與決策支持、星型架構、複雜查詢優化、多維數據集、數據挖掘技術 |
100 |
每小時2,000次查詢 |
3 TB |
在伸縮性的另一端,SQL Server 2000能夠收縮到小型Windows係統上,並為這些係統提供連接斷開情況下的運行方式,以便支持移動應用。此外,SQL Server還提供了適用於Windows CE的版本。
伸縮性指標
增長類型
隨著組織機構增添並獲得更多數據,他們必須處理不斷加大的事務負載並維護更大規模的數據庫。每次較大幅度的增長都意味著一次新的伸縮性挑戰。
伸縮性涉及幾種增長類型:

圖2:伸縮性挑戰
• |
增加用戶數量與網絡負載。如果用戶數量增加一倍,網絡和數據庫負載同樣也將增大一倍。 |
• |
增大數據庫規模。對於容量通常能夠達到數百吉數據庫,諸如備份、恢複、裝載之類的操作都將成為瓶頸。 |
• |
增大事務複雜性。應用設計人員正在不斷向應用程序中增加更多能夠幫助用戶完成單調乏味任務的智能元素。同時,相關應用程序也在數據挖掘、數據分析等領域得到了日益廣泛的應用。 |
• |
增加應用數量。隨著應用程序的開發變得越發簡便而廉價,企業正在以全新的方式來應用計算機。這些新增應用程序加大了現有數據庫和服務器的負載。 |
• |
增加服務器數量。群集式和分布式應用將涉及大量節點。隨著桌麵係統和便攜式計算機的性能不斷增強,他們將建立本地數據存儲機製並成為關鍵數據源的複製品。可伸縮式係統允許從單一位置輕鬆對大量節點進行管理。 |
向上擴展、向外擴展與速度提升
理想的係統性能應呈現線性變化趨勢,也就是說,如果處理器和磁盤數量增加一倍,那麼,係統吞吐量也應增大一倍,或者,請求響應時間應縮短一半。這兩種結果分別稱為線性向上擴展和線性速度提升。然而,由於要求係統各個方麵均具備良好的伸縮能力,因此,線性擴展很少在實踐中應用。
將伸縮能力簡化為單一指標——例如係統所能支持的處理器數量——似乎非常誘人。然而,許多數據庫應用對I/O性能非常敏感,因此,向一套I/O性能有限的係統中添加CPU將無法達到提高速度的目的。運行在當今常見的4處理器服務器上的Microsoft SQL Server能夠實現與運行在配備10顆處理器的硬件平台上的其它軟件產品相當的性能。
SQL Server 2000與Windows Server 2003能夠在Intel 32位體係結構上支持64 GB主內存,在Intel Itanium 64位體係結構上支持4 TB主內存。巨大的主內存容量能夠降低I/O通信量並為SQL Server提供潛在的性能推動力。此外,SQL Server 2000還支持32路SMP係統以及利用這些SMP係統構建的大型群集。
目前沒有一種得到普遍接受的伸縮性衡量標準。然而,您可以從事務處理性能委員會(TPC)基準測試中得到一些有價值的信息(參見)。TPC是一個非營利性組織,它訂立了有關事務處理和數據庫基準測試的行業標準。該委員會的成員目前包括所有主流數據庫廠商和服務器硬件係統供應商。委員會業已定義一係列基準測試項目,其中包括:TPC-A、TPC-B、TPC-C、TPC-D、TPC-H、TPC-R和TPC-W。
TPC-C是一種用以衡量OLTP係統性能與伸縮能力的行業標準。TPC-C將對包括查詢、更新和隊列式小型批量事務在內的典型數據庫功能進行廣泛測試。其在諸如數據庫透明性與事務獨立性這樣的關鍵領域內製訂了非常嚴格的規範。許多人士將TPC-C視為現實世界中OLTP係統性能的理想指示器。獨立分析人士對相關基準測試結果進行了全麵審核,同時,TPC也提供了完整的公布事項報告。這些報告中包含大量有關不同係統使用方式與係統成本的信息。
以下表格中經過審核的結果證明,SQL Server 2000與Microsoft Windows Server 2003能夠針對最多32顆處理器提供優異的SMP伸縮能力。事實上,其所達到的TPC-C性能與性價比優於Oracle或DB2在其它所有平台創下的SMP紀錄(或群集紀錄)。
SMP在TPC-C基準測試平台*上的性能與性價比(8至64顆CPU)
SQL Server、DB2及Oracle對比
數據庫 | 硬件設備 | CPU | tpmC | 美元/tpmC | 係統成本 | 有效性 |
SQL Server 2000企業版 |
HP Proliant DL760-G2 8P |
8 |
115,025 |
7.69美元 |
884,216美元 |
2003年3月31日 |
Oracle 9i R2企業版 |
IBM eServer pSeries 660 - 6M1 |
8 |
105,025 |
23.45美元5 |
2,462,401美元 |
2001年9月21日 |
DB2/AS400 V4 R5 |
IBM eServer iSeries 400 - 840-2420-1 |
24 |
163,776 |
51.58美元 |
8,448,137美元 |
2000年12月15日 |
Oracle 9i R2企業版 |
IBM eServer pSeries 690 |
32 |
427,761 |
17.75美元 |
7,591,038美元 |
2003年5月31日 |
Oracle 9i R2企業版 |
HP 9000 Superdome |
64 |
423,414 |
15.64美元 |
6,621,072美元 |
2002年8月26日 |
SQL Server 2000企業版 |
NEC Express 5800/1320Xc C/S |
32 |
433,108 |
12.98美元 |
5,619,528美元 |
2003年6月30日 |
* 截止到2003年3月6日來自各數據庫廠商的最佳SMP測試結果。
上述表格顯示了最新SQL Server SMP TPC-C基準測試結果,以及其它數據庫廠商在8路和32路SMP服務器上的最佳對比結果。結果顯示,SQL Server在8路SMP服務器上能夠支持100,000 tpmC並訪問容量為8 TB的數據庫,SQL Srever擁有最佳8路SMP性能——其性能優於所有運行DB2或Oracle的8路UNIX係統。與此同時,Microsoft解決方案的成本隻有其它係統的不到三分之一。在32處理器係統上。SQL Server的性能略高於最佳Oracle測試結果。但就總體而言,SQL Server與DB2或Oracle相比具有更高的峰值性能,並且價格遠遠低於UNIX解決方案。
上述表格顯示了針對單節點SMP的最佳TPC-C測試結果——即向上擴展性能指標。實際上,多數大型服務器是由位於群集化數據庫服務器前端的Web服務器區構成的。這是一種向外擴展式設計方案,以下表格顯示了這種設計方案的性能指標。
SQL Server、DB2與Oracle群集在TPC-C基準測試平台上*的群集性能與性價比對比(8至64顆CPU) | ||||||
數據庫e |
硬件設備 |
CPU |
tpmC |
美元/tmpC |
係統成本 |
有效性 |
SQL Server 2000企業版 |
HP ProLiant |
272 |
709,220 |
14.96美元 |
10,603,803美元 |
2001年10月15日 |
Oracle 9i R2企業版 |
HP ProLiant DL580-PDC 32P |
32 |
138,362 |
17.38美元 |
2,404,503美元 |
2003年3月5日 |
SQL Server、DB2與Oracle群集在TPC-C基準測試平台上*的群集性能與性價比對比(8至64顆CPU)(續) | ||||||
數據庫 |
硬件設備 |
CPU |
tpmC |
美元/tmpC |
係統成本 |
有效性 |
Oracle 9i R2企業版 |
HP ProLiant DL580-PDC 32P |
32 |
137,261 |
18.46美元 |
2,533,095美元 |
2002年9月6日 |
SQL Server 2000企業版** |
HP Proliant |
8 |
115,025 |
7.69美元 |
884,216美元 |
2003年3月31日 |
* 截止到2003年3月6日的最佳群集測試結果。
** 這是一條用以作為參照的非群集測試結果。
SQL Server長期位於TPC-C基準測試向外擴展類別的領先地位。正如所期望的那樣,這些向外擴展測試結果遠遠優於通過SMP方式實現的向上擴展測試結果。SQL Server 2000在此領域保持著性能領先優勢。同其它數據庫產品相比,SQL Server 2000能夠提供最佳性能和性價比。其性能指標比與其最為接近的競爭對手高出60%。這裏提供了兩套Oracle測試結果,其中一套麵向Windows 2000 Server,另一套麵向Linux,這兩套Oracle係統幾乎采用相同硬件設備(盡管兩次基準測試相隔了6個月,從而使Linux在硬件上顯得略具價格優勢)。最佳SQL Server測試結果比最佳Oracle群集測試結果高出5倍之多;事實上,Oracle的最佳群集測試結果僅僅相當於單節點8 CPU SQL Server係統的測試結果。同樣,Oracle在性價比方麵也一概稍遜一籌。

圖3:吞吐量與CPU對比
總而言之,TPC-C基準測試結果顯示,與其它平台上的所有數據庫產品相比,SQL Server具有最佳峰值性能與性價比。
在伸縮性方麵,SQL Server 2000在由運行Windows2000 Server的HP節點構成的群集上呈線性變化趨勢。如圖3所示,通過添加8處理器SMP係統組,數以千計的事務得以在群集上進行處理。群集從16個SQL Server節點開始,依次增加至24和32個節點。(在此過程中的實際節點數量分別為17、26和34,額外的節點充當事務處理協調器。)最大規模的係統由272顆CPU組成,為分布在3,000多塊磁盤上的58 TB數據庫提供服務。這種最大規模的係統應當足以適用於最為龐大的電子商務站點,即便仍然無法滿足要求,亦可通過添加更多節點的方式不斷擴大群集規模。以上這些性能指標已經遠遠超過了其它係統在各種平台上創先的紀錄。
在由HP DL76-9000服務器構成的群集上,隨著節點的不斷增加,SQL Server顯示出了趨於線性化向外擴展趨勢(一旦投入了最初用以設計向外擴展方案的資金)。測試數據顯示了從17、26到34個8處理器SMP節點的伸縮性能(總共涉及272顆CPU)。隨著係統的向上擴展,磁盤和網絡帶寬也將隨著處理器和內存的增加而不斷擴充。
TPC-W基準測試負責模擬具有大量複雜事務的Web服務器應用。它所測試的主要對象為每秒Web交互次數(WIPS)這一性能指標以及每個WIPS單位的成本(美元/WIPS)這一性價比指標。迄今為止,隻有IBM/DB2和SQL Server擁有此項測試結果。下表顯示了目前為止兩種產品的最佳測試結果。
TPC-W基準測試平台上的最佳測試結果(100,000個項目)* | ||||
數據庫 |
硬件設備 |
WIPS |
美元/WIPS |
可用性 |
SQL Server 2000企業版 |
Unisys ES 70000 |
10,440 |
106.73美元 |
2001年7月10日 |
IBM DB2 UDB 7.2 |
IBM eServer xSeries 430 |
7,554 |
136.80美元 |
2001年6月8日 |
Oracle |
無相應記錄 |
- |
- |
- |
* 截止到2003年3月6日由各廠商提供的最佳SMP測試結果
為調節與決策支持和報表生成相關的工作負載,TPC定義了廣泛的相關負載,並將其命名為TPC-H。TPC BenchmarkH(TPC-H)是一項決策支持基準測試,它定義了一套麵向商務應用的特殊查詢和並發數據修改操作。這項基準測試模擬通過複雜查詢對大量數據進行分析的決策支持係統。通過TPC-H所得出的性能指標被稱為TPC-H每小時組合查詢性能指標(QphH@Size)。SQL Server擁有在100 GB和300 GB兩種類別上的TPC-H測試結果。
下表顯示了300 GB級別上的最佳測試結果。該表格中的數據沒有明顯的優劣之分。然而,SQL Server位於成本最低的解決方案之列,並且在配備16顆處理器的SMP服務器上具有可觀的性能。
SQL Server解決方案與SMP UNIX解決方案在TPC-H基準測試平台(300 GB)上對比 | ||||||
數據庫 |
硬件設備 |
CPUs |
QphH@300 GB |
美元/QphH @300 GB |
係統成本 |
有效日期 |
Informix XPS 8.31 FD1 |
HP Alpha Server ES40 Model 6/667 |
16 |
2,832 |
1,058美元 |
2,995,034美元 |
2001年2月14日 |
SQL Server 2000企業版 |
Unisys ES7000 Orion 130 |
16 |
4,774 |
219美元 |
1,043,153美元 |
2003年3月31日 |
Oracle 9i R2企業版 |
HP Alpha Server ES45 Model 68/1000 |
16 |
5,976 |
453美元 |
2,706,063美元 |
2002年6月1日 |
IBM DB2 UDB 7.2 |
HP ProLiant DL760 x900-64P |
64 |
12,995 |
199美元 |
2,573,870美元 |
2002年6月20日 |
* 截止到2003年3月6日各廠商的最佳性能指標。
TPC測試結果在包括SAP、PeopleSoft在內多方提供的其他基準測試中得到了驗證。以下表格匯總了這些基準測試項目。從中可以看到,SQL Server在多項重要的終端用戶基準測試中居於首位。
應用基準測試中的最佳測試結果 | ||
基準測試項目 |
世界紀錄 |
保持者 |
TPC-C |
709,220 tpmC |
SQL Server |
TPC-W |
21,139 WIPS @ 10,000 |
SQL Server |
TPC-H |
27,094 QphH @ 3 TB |
Oracle |
SAP R/3 Sales & Distribution |
47,528並發用戶 |
IBM |
SAP R/3 Retail |
3.2億筆銷售數據線項目/小時 |
SQL Server |
Great Plains Software |
2,400並發用戶 |
SQL Server |
Onyx |
57,000並發用戶 |
SQL Server |
Pivotal eRelationship |
20,000並發用戶 |
SQL Server |
CA Brightstor Backup |
2.6 TB/小時 |
SQL Server |
PeopleSoft eBill Pmt |
191,694筆支付/小時 |
SQL Server |
PeopleSoft CRM 8.4 |
25,400並發用戶 |
SQL Server |
PeopleSoft Financials |
15,000並發用戶 |
IBM |
J.D. Edwards OneWorld |
9,000並發用戶 |
Oracle |
最佳性能指標反映了應用的係統伸縮能力。您當然無法事先計算出這些指標,然而,您可以通過查看標準基準測試以及關注相關行業中類似應用的方式對其可伸縮性進行評估。
可伸縮硬件設備體係結構
技術發展趨勢推動建立可伸縮性係統
當今,日用組件構成了速度最快且最具可靠性的計算機、網絡和存儲設備。整個計算機行業都在計算機內部使用相同的RAM芯片家族產品。與麵向專用計算機的相同內存相比,麵向日用計算機的內存價格要廉價三到十倍。與此同時,微處理器廠商之間的激烈競爭也創造出了速度令人難以置信的處理芯片。事實上,絕大多數功能強大的超級計算機同樣建立在這些芯片之上。傳統的水冷主機係統也在向這些速度更高的技術轉移。
此外,日用工作站和服務器在性能方麵也經常超越主機係統。日用市場上這種快速變化的節奏使底端市場的發展水平已經達到了傳統主機係統和微型計算機體係結構在幾年前的安裝基數。
在網絡互連方麵,日用計算機的互連同樣得到了長足發展。以太網的傳輸速度已經達到了每秒120兆。交換式以太網能夠通過日常價格在本地網絡中將傳輸速度提高100倍。10千兆位和40千兆位以太網正在逐步興起。交換式以太網、光纖通道以及其它新型互連技術提供了廉價的高速係統區域網絡(SAN),並將為未來幾年內的群集式體係結構奠定基礎。
至於存儲技術,性能最高且最具可靠性的磁盤當屬3.5英寸SCSI磁盤。其容量以每年兩倍的速度遞增,且平均硬件故障時間達到了50年。今天,74 GB磁盤已成為主流標準,300 GB磁盤則麵向那些大容量應用。預計到2005年,1 TB容量的磁盤將會出現(圖4)。2003年初,1000美元可以購置300 GB的磁盤容量。這大約是20年前的10,000倍。這種低廉的價格揭示了為何當今主流服務器通常配置容量達若幹TB的磁盤係統:這樣的磁盤係統價格大約為3000美元/TB。上述圖表同時還對2005年的情況進行預期,那時的服務器通常將配置50 TB磁盤存儲空間,大約十年後,容量為PB級的磁盤將成為主流。這種磁盤係統將能夠容納非常巨大的數據庫。
針對SMP和群集的計算機體係結構選擇
處理器、磁盤及網絡的不斷增多帶來了一種體係結構挑戰:哪種硬件體係結構能夠最充分的利用這些常規組件?迄今為止,沒有一種體係結構從中勝出,然而,已有三種常見體係結構被證明能夠提供伸縮能力並且得到了廣泛的認同:共享內存、共享磁盤和不共享任何資源。共享內存的方式被SMP係統所采用,而共享磁盤和共享內存的方式則同時被群集所采用。Windows 2000 Server和Windows Server 2003支持所有這些體係結構,並將隨著這些體係結構的發展不斷進行自身完善。
SMP係統
SMP通過向單一共享內存空間中增加更多處理器的方式來擴充服務器。係統的擴展將通過添加內存、磁盤、網絡接口和處理器的方式來實現。SMP是超越單一處理器限製的最常用方式。SMP軟件模型——通常稱為共享內存模型——運行同一份操作係統拷貝,應用程序進程就像在單處理器係統上那樣運行。SMP係統相對易於編程,它們能夠發揮行業標準軟件產品與硬件設備的優勢。SQL Server 2000能夠很好的在SMP係統上進行伸縮。
目前,在單一SMP節點上,針對一般用途的實用限製包括:
• |
64顆處理器。 |
• |
512 GB主內存。 |
• |
每個節點30 TB受保護存儲空間(被配置為60套RAID集合和10個邏輯卷的400塊74 GB磁盤驅動器)。 |
• |
400,000個通過IIS Web服務器或某些事物監視器對SQL Server進行訪問的活動客戶端。 |
這些是Microsoft公司所能預見到的最大規模。一般的大型服務器隻有這種規模的一半或更小。隨著時間的推移,SQL Server、Windows和硬件技術將不斷向前發展,從而支持更大規模的配置方案。
SMP伸縮性
目前,SMP已成為最流行的平行硬件體係結構。基於行業標準Intel微處理器的SMP服務器能夠為數據庫平台提供超凡的性能與性價比。Intel麵向市場所推出的基於Xeon處理器的8路SMP主板已在眾多硬件廠商製造的服務器上得到了應用。最近幾年來,Intel 8x Xeon服務器已成為客戶端-服務器和電子商務計算領域的主力軍。目前,配備32顆處理器的Xeon係統以及Intel公司的64位Itanium體係結構也已日趨成熟。
最令人印象深刻的SMP性能指標利用了由這些Itanium處理器提供支持的大量主內存。SQL Server在TPC-C聯機事務處理基準測試中實現了近乎線性的SMP伸縮能力。係統吞吐量(每秒處理的事務數量)隨CPU數量的增加而不斷提高。
隨著微處理器速度的不斷提高,SMP係統的構建變得日益昂貴。當係統從1顆處理器向上擴展為4顆處理器時,價格變化最為適度。擴展到8顆處理器時相對而言也比較輕鬆。然而,當處理器數量超過32顆時,價格將迅速攀升,而回報卻會不斷減少。
在軟件層次上,多顆處理器對共享資源的並行訪問必須被串行化。這種串行化特征限製了獨立應用在共享內存式SMP係統中的實際伸縮能力。這些位於操作係統、數據庫係統和應用程序中的軟件瓶頸與硬件設備限製同樣重要。
盡管如此,SMP係統仍是最為常見的伸縮形式,並仍將在未來的許多年內保持這一地位。Intel公司的Xeon和Itanium處理器造就了性能強大且價格低廉的SMP節點。
SMP的性能提升隨CPU等增加而不斷減小 | ||||||
數據庫 |
硬件設備 |
CPU |
tpmC |
美元/tpmC |
係統成本 |
有效性 |
SQL Server 2000標準版 |
Dell PowerEdge 2650/2.4/1P |
1 |
16,256 |
2.78美元 |
46,502美元 |
2002年9月11日 |
SQL Server 2000企業版 |
HP ProLaint ML530G3 2P |
2 |
26,725 |
3,72美元 |
99,211美元 |
2003年3月31日 |
SQL Server 2000企業版 |
HP ProLiant DL580-G2/2GHz 4P |
4 |
77,905 |
5.32美元 |
413,764美元 |
2002年12月31日 |
SQL Server 7.0企業版 |
HP ProLiant DL760-G2 8P |
8 |
115,025 |
7.69美元 |
884,216美元 |
2003年3月31日 |
SQL Server 2000企業版 |
Unisys ES7000 Orion 230 |
32 |
234,325 |
11.59美元 |
2,715,310美元 |
2003年3月31日 |
SQL Server 2000企業版 |
NEC Express 5800/1320Xc C/S |
32 |
433,108 |
12.98美元 |
5,619,528美元 |
2003年6月30日 |
Oracle 9i企業版 |
IBM eServer pSeries 690 |
32 |
427,760 |
17.75美元 |
7,179,598美元 |
2003年5月31日 |
正如以上表格所顯示的那樣,SQL Server能夠在得到廣泛應用的標準SMP平台上提供良好的性能。憑借常規硬件設備,SQL Server能夠提供極具成本效益的數據庫支持能力。配備32顆處理器的SQL Server係統與同樣配備32顆處理器的Oracle UNIX係統對比結果顯示,UNIX係統的成本比SQL Server係統高出1.6倍,然而,其性能指標卻僅比SQL Server係統提高了18%。
Windows Server 2003群集具備向外擴展能力,從而使客戶能夠向業已存在的配置方案中添加處理能力、存儲空間及網絡服務。圖5顯示了一套通過每次添加一個節點的方式從8 CPU單節點發展為48 CPU、6節點結構的群集。在這種情況下,SMP大型服務器群集中的每個節點一般通過常規組件和網絡互連技術進行構建。通常情況,雙倍的互連機製用以提供故障冗餘。

圖5:6節點、48 CPU群集
群集體係結構
群集由一係列對外以單一係統方式運行、鬆散結合且相互獨立的計算機係統構成。群集節點既可以是單處理器係統,也可以是SMP係統。節點之間可以通過常規網絡或專用超高速通信總線進行連接。群集中的計算機之間相互協作,從而使客戶端將整個群集視為一台具有超高性能與高度可靠性的獨立服務器。由於群集固有的模塊化特性,可以通過添加服務器、磁盤或網絡資源的方式以增量形式和低廉的成本對其進行向外擴展。
Microsoft公司確信,群集是在8處理器以上性能空間內實現可伸縮性的最經濟方式。群集體係結構能夠通過向外擴展方式實現比獨立SMP節點更為強大的係統。當係統需求超出常規SMP節點性能空間,或者故障冗餘需求要求配備第二台故障轉移服務器時,將多個節點構成一個群集將成為一種極具誘惑力的候選方案。
SQL Server 2000與Windows群集在常規市場領域內實現了伸縮特性與故障冗餘能力。Microsoft在Windows 2000 Server和Windows Server 2003操作係統中內置了群集技術,這項技術能夠與常規服務器和網絡互連機製良好的配合使用,同時,它還能夠對由某些廠商(如HP、Dell、IBM和Unisys)生產的特定硬件加速器加以充分利用。諸如SQL Server、Internet Information Server和Exchange之類的Microsoft BackOffice產品均可利用這種群集支持能力。此外,許多第三方產品也可在這種體係結構基礎上進行托管。
共享磁盤式群集與不共享資源式群集
目前存在兩種基本群集模型:共享磁盤式群集和不共享資源式群集(如圖6所示)。在共享磁盤式群集中,所有處理器直接訪問所有磁盤(及數據),但它們之間並不共享主內存。一個額外的軟件層次——稱為分布式高速緩存或鎖管理器——將用於在所有處理器當中統一管理高速緩存。IBM的DB2/OS390 SysPlex和Oracle Parallel Server是共享磁盤式並行數據庫體係結構的典型示例。由於鎖或高速緩存管理器將針對數據訪問進行序列化,因此,共享磁盤式群集存在某些與共享內存式SMP係統相同的伸縮性限製。

圖6:共享磁盤式群集與不共享資源式群集
相比之下,不共享資源式群集則是一種由數據庫係統所組成的聯盟。不共享資源式群集中的每個節點都是一台配備自主資源及操作係統的獨立計算機。每個節點擁有自己的內存和磁盤存儲空間;節點之間通過在共享網絡連接上交換消息的方式進行通信。每個節點都是一個服務和可用性單元。每個節點擁有某些磁盤、磁帶、網絡連接、數據庫分區及其它相關資源,並針對這些資源提供服務。當某個節點出現故障時,該節點所擁有的磁盤可能將通過故障轉移方式切換到其它鄰近節點上,但在任意時刻內,每塊磁盤將僅由一個節點進行管理。不共享資源式群集很容易通過常規組件進行搭建。
SQL Server 2000群集
SQL Server 2000支持具備分布式分區視圖和分布式事務的不共享資源式群集模型。數據表可以根據主鍵取值劃分到互不相交的成員表中,每個成員表存儲在群集中的一個節點上。定義在每個節點上的分布式分區視圖將所有成員表統一為一個位置透明的視圖。應用程序可以通過這一個視圖以一個虛擬表的方式來訪問由成員表構成的聯合。
前麵所描述的群集化SQL Server TPC-C基準測試結果使用包含多達34個節點的不共享資源式群集中的分布式分區視圖。測試結果以很大優勢領先於其它數據庫係統的性能指標。實際上,圖7顯示了截止到2002年12月為止,SQL Server在這一不斷擴展的群集上所實現的性能指標,以及所有測試結果在100,000 tpmC以上的係統針對這一性能指標(tmpC)的性價比(美元/tmpC)。SQL Server在性能與性價比方麵具有明顯的領先優勢。請注意,針對測試結果介於100,000 tpmC至700,000 tpmC之間的係統,SQL Server的性價比大約為13美元/tpmC。相比之下,UNIX係統不僅價格昂貴,而且吞吐量明顯處於劣勢。
SQL Server性能改進
SQL Server在TPC-C基準測試中的性能改進非常顯著。圖8中的坐標圖顯示了SQL Server自1995年年初以來的峰值吞吐率與峰值性價比報告。SQL Server性能從2,455 tpmC增加到709,220 tpmC,7年內提高了290倍。然而,在此期間,其性價比卻從240美元/tpmC下降為3美元/tpmC,大約降低了90倍。如果按照年度計算,平均每年性能提高125%,價格降低65%。若將這一數字按照取整計算,在過去7年中,SQL Server的性能每年提高一倍,價格每年降低一半。隨著群集特性在SQL Server 2000中的引入,目前,SQL Server支持建立的最大事務處理數據庫規模已無實際限製。
按照取整方式計算,在1995至2002這七年間,SQL Server平均每年性能提高一倍,價格降低一半。
Windows操作係統平台上的單一SQL Server實例能夠支持數以千計的用戶對包含數億條記錄的數據庫進行訪問。此類係統能夠支持用戶數量超過250,000的社區或者更大規模的Internnet用戶(此類用戶不定期的與服務器建立連接)社區。這裏提供一組直觀數字,美國最大的銀行擁有10,000名出納員,最大的電話推銷機構擁有不足10,000家活動代理商;由此可見,這些係統足以支持大型企業的傳統前端辦公業務。
出於演示目的,SQL Server團隊建立了一套稱為TerraServer的大型多媒體數據庫。這套數據庫存儲了容量高達幾TB的衛星地球圖像,其覆蓋範圍超過一千萬平方公裏。這些圖像存儲在位於324塊HP StorageWorks磁盤上的三億五千萬條數據庫記錄中。該服務器自1998年6月開始在Internet上開放。迄今為止,已經處理了來自數百萬訪問者的6億次查詢。
在另一個SQL Server演示項目中,一套包含數億條記錄的銀行數據庫被劃分到20台運行SQL Server的服務器上,其中每台服務器作為一個群集節點。數據庫的劃分由應用程序來管理。COM+和Microsoft分布式事務處理協調器用以協調那些涉及兩台以上服務器的事務。
利用分區視圖,SQL Server 2000證明了超凡的性能:在34節點群集上以14.96美元/tpmC的性價比實現709,220 tpmC的峰值性能。這一指標比單節點性能高出6倍之多,並且涉及一套容量為54 TB的數據庫。通過添加更多節點,這套係統的性能還可以得到進一步提高。
這些示例證明了SQL Server可以處理巨大的事務容量(每天數百萬筆)、巨大的用戶社區(數以萬計)以及巨大規模的數據庫(TB級)。同時,這種產品還將以每年2到3倍的速度繼續增長。盡管這種增長在一定程度上是由於硬件設備的性能提升和價格降低造成的,然而,SQL Server自身的迅速發展同樣不可小視。我們相信,在可以預見的未來,硬件設備與軟件產品的改進仍將以這種快速的步伐繼續下去。
SQL Server軟件伸縮性體係結構
SQL Server 2000應用程序體係結構
SQL Server 2000是專為配合.NET體係結構而設計的。它所提供的工具和支持係統能夠幫助客戶建立活動服務器頁麵和COM+對象,從而實現商務邏輯並訪問由SQL Server進行管理的數據。
每個Windows節點通常利用同一個SQL Server地址空間來管理節點上的所有SQL數據庫。SQL Server以具備多個線程池的主地址空間方式運行。某些線程專門用於完成諸如日誌記錄、緩衝池管理、操作請求服務和係統監控之類的後勤管理任務。此外,更大規模的線程池負責支持用戶請求。這些線程將執行客戶端所請求的存儲過程或SQL語句。
通常情況下,SQL Server應用於客戶端/服務器運行環境中,位於其它計算機上的客戶端程序與服務器建立連接,發起SQL請求或直接運行通常利用Transact-SQL語言編寫的存儲過程(如圖9所示)。客戶端程序也可能同樣位於服務器節點上。SQL Server利用內建事務處理(TP)監控程序機製——開放數據服務——來支持大量客戶端。在實際應用過程中,這種配置方案最多能夠支持5,000個並發客戶端。當超過這一規模後,可以考慮將應用程序劃分到群集的不同節點上,或者使用Web服務器和TP監控程序在客戶端與SQL服務器之間建立連接。諸如CICS、Tuxedo和Top End這樣的常用TP監控程序已被移植到Windows上並且提供了SQL Server接口。目前,越來越多的應用程序開始采用Internet信息服務(IIS)和活動服務器頁麵(ASP)來實現展現機製。這些ASP頁麵采用Microsoft Visual Basic Scripting Edition或JavaScript方式來調用通過活動數據對象(ADO)接口對SQL Server進行訪問的商務邏輯COM對象。Windows操作係統中內建了對象請求代理程序和分布式事務管理器。
群集透明性
群集透明性允許應用程序像訪問本地數據那樣訪問位於群集中各個節點上的數據和對象,數據可以在不影響應用程序運行方式的情況下從一個分區移植到另一個分區上。由於能夠在不修改應用程序的情況下向係統中添加節點並在這些節點間移植數據,透明性已成為模塊化擴展方式的關鍵要素。對於高可用性而言,透明性同樣是一項關鍵要素,它允許在節點出現故障時利用故障轉移機製將數據從一個節點移植到另一個節點上。
分布式係統技術
分布式係統技術是在群集中實現透明性的關鍵要素。通過將應用程序和係統構造為以遠程過程調用方式進行交互的模塊,應用程序的模塊化水平得以提高,並且可以分布到群集中的不同節點上。客戶端通過名稱方式對服務進行調用。過程調用既可調用本地服務,也可通過遠程過程調用方式調用遠程服務。
Microsoft在將其軟件產品構造為通過遠程過程調用方式進行交互的組件方麵投入了巨額資金。通過這種方式實現的基礎架構分別稱為OLE(對象鏈接與嵌入)、COM(組件對象模型)、DCOM(分布式COM)、Microsoft ActiveX(以Internet為中心的COM擴展)和最新的COM+。COM+的許多特性目前已投入使用,其它更多特性也即將發布。具體而言,在Windows和SQL Server 2000中,Microsoft提供了以下特性:
• |
COM+是Windows Server的核心部分之一。它能夠通過安全、高效的方式調用任意對象,這樣一來,一個程序便可調用在網絡中任意位置上運行的其它程序。COM+將事務管理器的特性與對象請求代理和TP監控程序的特性有機結合在一起。它已成為Microsoft分布式對象機製的核心。 |
• |
分布式事務允許應用程序在許多SQL Server數據庫分區及其它資源管理器上完成工作,並通過透明方式自動獲取ACID分布式事務語義。 |
• |
OLE DB允許SQL Server及其它數據集成程序訪問來自任意數據源的數據。OLE DB接口可以針對幾乎所有數據源建立。絕大多數Microsoft數據存儲組件擁有OLE DB接口(例如Exchange Server、Active Directory、Word和Excel),同時,針對原有數據存儲機製(如VSAM和RMS)的OLE DB接口也將迅速湧現。 |
• |
數據庫管理對象(DMO)是所有SQL Server管理接口的COM具體化。利用DMO,客戶和ISV可以建立用以對運行SQL Server的本地及遠程計算機進行管理的工具。 |
• |
Windows還提供了一種可靠的隊列機製——消息隊列,它允許應用程序發起延遲調用請求。這種隊列機製同樣適用於斷開的節點,允許這些節點提交在其恢複網絡連接後進行處理的工作。 |
• |
SQL Server 2000現在還包含一套通知服務,它提供了一種在數據庫狀態發生改變時通知客戶端的健壯、可伸縮方式。這種通知服務可用於管理股票價格、交付日程以及其它需要在數據庫狀態發生變化時及時采取措施的情況。 |
Windows目前已經支持這些特性以及許多其它群集機製,其中包括群集安全性(域)、群及軟件管理(係統管理服務器)、群集命名(分布式名稱服務與Active Directory)和群集性能監控(係統監控器)。SQL Server通過內建於企業管理器中的管理工具對這些機製進行補充,這些管理工具使企業管理器得以對運行SQL Server的服務器陣列實施管理與監控。
Windows和SQL Server的一項關鍵目標在於確保群集能夠像獨立大型係統那樣易於管理和使用。Windows和SQL Server簡化了在群集中的眾多節點之間管理與平衡應用服務器的機製。Windows群集麵向所有組件提供了通用的控製台以及簡單的管理模型。群集的另一項增值收益在於,故障冗餘特性屏蔽了許多係統故障並且提供了具有高度可用性的服務。
分布式分區視圖
SQL Server允許用戶將一個數據表劃分到多個成員表中,並在這套成員表的基礎上創建一個分區視圖。這樣的視圖被稱為分布式分區視圖。每個成員表可以存儲在不同的群集節點上。如果視圖定義被複製到所有群集節點,那麼,應用程序便可以像本地存儲的表那樣通過任意節點訪問整張數據表。
分布式分區視圖將依照以下方式創建。首先,數據表將根據主健字段的前綴進行劃分。經過劃分得到子表被稱為成員表,除通過一個應用在分區屬性上的附加完整性約束條件來限製分區字段的取值範圍外(例如,customer_ID在1000000到2000000之間),所有子表均與原始數據表具有相同的架構。一個聯合視圖將在結合所有子表的基礎上創建。之後,管理員應在群集的每個成員上執行以下操作步驟:
1. |
管理員定義成員表並利用屬於該成員表的數據對其進行填充。 |
2. |
管理員定義指向聯合中所有其它成員的鏈接,以便使SQL Server 2000能夠在其分布式查詢處理過程中訪問其它節點。 |
3. |
管理員以成員表的聯合方式定義分布式分區視圖。 |
此後,應用將能夠像所有數據均位於本地那樣高效的訪問分布式分區視圖和底層成員表。SQL Server 2000查詢優化器和Microsoft分布式事務處理協調器(MS DTC)將確保程序高效執行並獲得ACID屬性。
分區數據與數據管道
SQL Server一直允許客戶在運行於多個節點上的不同SQL Server實例間劃分數據庫和應用程序。客戶端與位於某台服務器上的應用建立連接。如果客戶端發出的請求需要訪問另一個節點上數據,那麼,應用程序將通過Transact-SQL語句訪問這些數據,或對位於其它節點上的SQL Server實例發起遠程過程調用。
舉例來說,分布式應用的每個倉庫中可能存儲了所有本地訂單、發貨單和庫存清單。當某筆訂單被延期或一批新的貨物從工廠運達時,本地係統必須執行同時涉及倉庫和工廠節點的事務。這種情況下,在倉庫中某台服務器上運行的應用程序需要直接訪問工廠數據,或者調用一個位於工廠服務器上的存儲過程。MS DTC和SQL Server將自動管理工廠與倉庫之間的數據完整性。
一旦將數據和應用劃分到群集中的多台服務器上,還需要通過一種便捷、高性能的方式在這些服務器間移植數據。通過將由遠程過程調用返回的結果集直接捕獲到節點本地數據表中,數據管道大大簡化了服務器間的數據傳送方式。這種機製適用於許多應用程序,並且可以用來替代分布式查詢。
分布式事務
分布式事務是Windows Server中一個不可或缺的組成部分,同時,它也是朝著全麵Windows Server群集機製邁出的又一大步。為創建一個分布式事務,應用程序需要聲明BEGIN DISTRIBUTED TRANSACTION,此後,MS DTC將自動對事務進行管理。
MS DTC還將與SQL Server進行連接以打開事務標準X/Open XA。客戶端可以連接諸如CICS、Encina或Tuxedo這樣的TP監控程序,並通過這些監控程序將請求發送至相應服務器。利用TP監控程序將事務發送至相應服務器是實現分布式應用的另一種途徑。同時,TP監控程序還允許SQL Server參與到跨越多個節點的事務中來。
此外,Windows Server 2003還包含Microsoft COM+,一種嵌入式事務監控程序。COM+能夠將客戶端請求分派到不同應用服務器上。
所有這些方式都使得在群集中的服務器間劃分數據與應用變得相對輕鬆和簡單。
透明分區與並行數據庫技術
到目前為止,本文描述的所有特性均已存在,您隨時可以購買並使用它們。事實上,許多客戶正在服務器上安裝SQL Server,通過向上擴展方式將其擴充為8路SMP硬件係統,繼而通過向外擴展方式對其數據庫和應用程序進行分區。通常情況下,這些分區被安置在靠近各自實際用戶的位置上:數據資料被安置在零售市場,有關近期活動的數據中心被安置在會計部門,數據倉庫被安置在規劃與市場部門。所有這些應用均保持相對獨立並按照自然方式進行劃分。此外,不同部門之間的數據流同樣得到了妥善定義。與Microsoft Visual Basic腳本相結合的圖形界麵和操作接口將用以在運行SQL Server的計算機上自動完成許多操作。
在過去幾年中,Microsoft一直希望為運行SQL Server的計算機添加透明數據分區機製,以便在不必刻意調整應用程序的情況下實現數據分區。
在實現分區透明性後,SQL Server團隊又希望實現並行查詢分解。也就是說,將通常由決策支持應用程序發起的大規模數據查詢分解為能夠分別在分區數據庫的多個節點獨立執行的一係列組件。
數據分區示例:TPC-C與每天1億筆事務
SQL Server中的分布式分區視圖使得前麵部分中所討論的接近其它DBMS峰值性能兩倍之多的超高TPC-C性能成為可能。這種設計方案最出色的部分在於能夠通過向群集中添加更多節點和更多加盟SQL Server的方式管理兩倍的數據並處理更多的事務。
Microsoft、Intel和Compaq三家公司聯合建立了一套在經典三層式DCOM+ SQL Server 7.0應用中運行DebitCredit業務的大型係統(140顆CPU、45個節點、4 TB內存)。二十個前端節點用於模擬以每秒14,000筆的速度提交事務的160,000個連接用戶。二十台服務器節點分別在各自的SQL Server實例中存儲相同比例的數據庫子集。這套係統並不使用分布式分區視圖,因此,應用必須自行管理數據分區。客戶端節點負責模擬網絡負載,並生成針對客戶端上相關對象的DCOM調用,進而觸
最後更新:2017-04-02 00:06:30