SQL Server 2008實(shí)現(xiàn)高可用性
高可用性—Always On 技術(shù)SQL Server 技術(shù)文章
作者: Geoff Allix (內(nèi)容主管)技術(shù)審查: Michael Raheem項(xiàng)目編輯:Joanne Hodgins
發(fā)布日期:2007年11月適用產(chǎn)品:SQL Server 2008
摘要:Microsoft® SQL Server® 2008 通過提供各種高可用性解決方案,縮短了業(yè)務(wù)關(guān)鍵型數(shù)據(jù)庫的停機(jī)時(shí)間。這些解決方案使用戶和企業(yè)職員每天24小時(shí)、每周7天都可以訪問數(shù)據(jù),且仍能提供經(jīng)濟(jì)有效的高性能。SQL Server 2008 中的 Always On 功能增強(qiáng)了對系統(tǒng)和硬件的保護(hù),減少了計(jì)劃中或計(jì)劃外停機(jī)的次數(shù)和恢復(fù)時(shí)間,并減少了由于大量用戶同時(shí)訪問同一數(shù)據(jù)庫而導(dǎo)致的沖突。
版權(quán)
這是一份預(yù)備文檔,在本文檔中所述軟件的最終商業(yè)版本發(fā)布之前,該文檔的內(nèi)容可能會(huì)發(fā)生重大變化。
本文檔中提供的信息代表了 Microsoft Corporation 當(dāng)前(軟件發(fā)布之前)對所討論問題持有的觀點(diǎn)。因?yàn)?Microsoft 必須響應(yīng)不斷變化的市場條件,所以其當(dāng)前的觀點(diǎn)不應(yīng)被解釋為是一種承諾,軟件發(fā)布之后,Microsoft 不能保證現(xiàn)在所提供的所有信息準(zhǔn)確無誤。
這份白皮書僅供參考。 Microsoft 對本文檔中提供的信息不做任何擔(dān)保、明示、暗示或法律方面的承諾。
用戶有責(zé)任遵守所有適用的版權(quán)法。在版權(quán)權(quán)利限制下,未經(jīng) Microsoft 公司明確的書面許可,本文檔的任何內(nèi)容不能被復(fù)制、存儲(chǔ)或放進(jìn)檢索系統(tǒng),或者以任何形式或任何手段(電子、機(jī)械、復(fù)印、錄制或其他)或?yàn)檫_(dá)到任何目的進(jìn)行轉(zhuǎn)換。
Microsoft 對本文涵蓋的主題內(nèi)容可能擁有專利、專利申請、商標(biāo)、版權(quán)或其他知識(shí)產(chǎn)權(quán)。沒有來自 Microsoft 的任何書面許可協(xié)議的明確表示,本文不賦予您對這些專利、商標(biāo)、版權(quán)或其他知識(shí)產(chǎn)權(quán)的任何許可。
除非另有說明,否則本文提及的示例公司、組織、產(chǎn)品、域名、電子郵件地址、徽標(biāo)、人物、地點(diǎn)和事件皆屬虛構(gòu),與任何真實(shí)的公司、組織、產(chǎn)品、域名、電子郵件地址、徽標(biāo)、個(gè)人、地點(diǎn)或事件無關(guān)。
Ó 2007 Microsoft Corporation。保留所有權(quán)利。
Microsoft、Windows、Office 和 SQL Server 是 Microsoft Corporation 在美國和/或其他國家/地區(qū)的商標(biāo)或注冊商標(biāo)。
本文中提及的真實(shí)的公司名稱和產(chǎn)品名稱可能是其各自所有者的商標(biāo)。
目錄簡介 1可用性應(yīng)用場景 1提高可用性 2數(shù)據(jù)庫鏡像 2日志傳送 2故障轉(zhuǎn)移群集 3地理分散故障轉(zhuǎn)移群集 3對等復(fù)制 3縮短停機(jī)時(shí)間 4快速數(shù)據(jù)庫恢復(fù) 4備份和還原 4數(shù)據(jù)頁上的校驗(yàn)和 5在線索引操作 5在線、段落和頁級(jí)還原 5部分?jǐn)?shù)據(jù)可用性 6快照隔離 6動(dòng)態(tài)配置 6增強(qiáng)的可管理性 6數(shù)據(jù)庫快照 6表和索引分區(qū) 7備份和還原 7專用管理員連接 7資源調(diào)控器 7結(jié)束語 7
導(dǎo)言任何應(yīng)用程序的停機(jī)時(shí)間都會(huì)給企業(yè)帶來負(fù)面影響,導(dǎo)致收入損失、客戶滿意度下降并損害企業(yè)的信譽(yù)。許多數(shù)據(jù)庫應(yīng)用程序,尤其是企業(yè)業(yè)務(wù)應(yīng)用程序,要求系統(tǒng)停機(jī)時(shí)間盡可能縮短。系統(tǒng)停機(jī)時(shí)間的產(chǎn)生有多種原因,如人為失誤、自然災(zāi)害、硬件或軟件故障以及應(yīng)用程序升級(jí)。Microsoft SQL Server 2008 Always On 技術(shù)提供了各種選項(xiàng),可將停機(jī)時(shí)間降至最低,且保持適當(dāng)級(jí)別的應(yīng)用程序可用性。
可用性應(yīng)用場景
對許多業(yè)務(wù)而言,獲得高可用性是一種常見需求。解決方案是否適用于特定的應(yīng)用場景取決于很多因素,在一種場合下表現(xiàn)最佳的解決方案在另一種場合下不一定是最適合的。例如如下應(yīng)用場景:
基于 Internet 的運(yùn)動(dòng)商品零售商想為其客戶提供近似連續(xù)的可用性。Web 服務(wù)器已加到 Web 場中,但數(shù)據(jù)庫故障會(huì)產(chǎn)生錯(cuò)誤,這些情形大多數(shù)時(shí)候會(huì)使公司失去客戶。該公司已經(jīng)擁有經(jīng)核準(zhǔn)的標(biāo)準(zhǔn)服務(wù)器版本,希望能夠避免花費(fèi)大量資金、更改基礎(chǔ)結(jié)構(gòu)或重寫應(yīng)用程序。
獵頭公司很關(guān)注其用戶使用客戶數(shù)據(jù)庫時(shí)遇到的錯(cuò)誤。雖然沒有必要立即執(zhí)行故障恢復(fù),但該公司還是希望擁有一臺(tái)可以快速在線獲得的溫備用服務(wù)器。
保險(xiǎn)公司想為其索賠數(shù)據(jù)庫提供近似連續(xù)的可用性。該系統(tǒng)的性能一定不能受到影響,而且當(dāng)前存儲(chǔ)在文件系統(tǒng)中用以支持索賠的文檔也必須可用。
管理培訓(xùn)公司有三個(gè)站點(diǎn),每個(gè)站點(diǎn)都有一支銷售團(tuán)隊(duì)。銷售團(tuán)隊(duì)將各自站點(diǎn)的記錄輸入 Orders 數(shù)據(jù)庫中。為提高性能,要求每個(gè)站點(diǎn)能夠在本地服務(wù)器上訪問公司的所有訂單。當(dāng)出現(xiàn)故障時(shí),為提供可用性,每個(gè)站點(diǎn)都必須能夠切換到另一個(gè)站點(diǎn)的服務(wù)器。
會(huì)計(jì)公司希望在出現(xiàn)故障時(shí)(如自然災(zāi)害)也能為其客戶提供可用性。信息不一定要立即可用,但應(yīng)該在數(shù)小時(shí)而不是數(shù)天內(nèi)可供使用。該公司還想每天都保存數(shù)據(jù)庫中的信息,以滿足法規(guī)要求??截惖臄?shù)據(jù)不需要立即可用,但必須在許多年內(nèi)都可供使用。 玩具制造商想根據(jù)銷售數(shù)據(jù)庫編制報(bào)告,但由于該數(shù)據(jù)庫一直處于使用狀態(tài),因此編制報(bào)告的過程通常會(huì)被當(dāng)前正在執(zhí)行的交易打斷。該公司希望能夠針對未提交的交易編制報(bào)告,但這會(huì)產(chǎn)生不正確的結(jié)果,因?yàn)橛行┙灰撞⒉煌暾?/P>
房地產(chǎn)公司想在用戶操作錯(cuò)誤時(shí)保護(hù)系統(tǒng),希望能夠恢復(fù)前一天的記錄值。該公司還想能夠根據(jù)前一天的數(shù)據(jù)編制報(bào)告,因?yàn)樗鼈儾粫?huì)受到當(dāng)天交易的影響。在理想情況下,該公司希望實(shí)施一種磁盤開銷最小的解決方案。
根據(jù)各種可用性要求,企業(yè)需要一種能為高可用性解決方案提供靈活選項(xiàng)的數(shù)據(jù)庫平臺(tái)。本白皮書中,可以看到 SQL Server 2008 Always On 技術(shù)如何為高可用性提供靈活選項(xiàng),以使企業(yè)能夠根據(jù)特殊需求實(shí)施最佳解決方案。
提高可用性
許多數(shù)據(jù)庫應(yīng)用程序都是任務(wù)關(guān)鍵型的,因此要求停機(jī)時(shí)間盡可能短,并在發(fā)生災(zāi)難時(shí)能夠迅速恢復(fù)。SQL Server 2008 提供了各種 Always On 技術(shù),可以使停機(jī)時(shí)間減至最少及獲得適當(dāng)級(jí)別的可用性。
數(shù)據(jù)庫鏡像
“Database Mirroring(數(shù)據(jù)庫鏡像)”是一種可提高數(shù)據(jù)庫可用性的技術(shù)。當(dāng)主體數(shù)據(jù)庫發(fā)生更改時(shí),這些更改也將自動(dòng)應(yīng)用到鏡像數(shù)據(jù)庫中。當(dāng)主體服務(wù)器發(fā)生故障時(shí),客戶機(jī)應(yīng)用程序可自動(dòng)重定向到鏡像服務(wù)器,而應(yīng)用程序無需進(jìn)行任何改動(dòng)。 可以對 Database Mirroring 進(jìn)行配置,以對鏡像服務(wù)器實(shí)時(shí)應(yīng)用更改,稱為“同步”;或者近乎實(shí)時(shí)應(yīng)用更改,稱為“異步”,因此可以在系統(tǒng)中指定保護(hù)級(jí)別和性能開銷。
有了 SQL Server 2008 Enterprise Edition 之后,鏡像保護(hù)就可擴(kuò)展到數(shù)據(jù)頁。如果發(fā)現(xiàn)主體服務(wù)器或鏡像服務(wù)器上的數(shù)據(jù)頁損壞,將從伙伴服務(wù)器上檢索對應(yīng)的數(shù)據(jù)頁,而數(shù)據(jù)操作也會(huì)平穩(wěn)地繼續(xù)執(zhí)行。SQL Server 2008 還改善了數(shù)據(jù)庫鏡像,它將壓縮主體服務(wù)器與鏡像服務(wù)器之間的數(shù)據(jù)流,而且在手動(dòng)執(zhí)行故障恢復(fù)時(shí),無需重啟數(shù)據(jù)庫。
在基于 Internet 的運(yùn)動(dòng)商品公司的案例中,當(dāng)出現(xiàn)服務(wù)器、數(shù)據(jù)庫或頁級(jí)故障時(shí),Database Mirroring 將提供非常迅速的故障恢復(fù)能力。雖然必須購買新服務(wù)器,但無需重寫應(yīng)用程序,備用服務(wù)器是標(biāo)準(zhǔn)設(shè)備,不需要 SQL Server 許可證。日志傳送
“日志傳送”是一種高可用性技術(shù),它提供了溫備用服務(wù)器。備份是在主服務(wù)器上執(zhí)行的,而還原是在一個(gè)或多個(gè)輔助服務(wù)器上執(zhí)行的。然后,“日志傳送”將定期日志備份應(yīng)用于輔助服務(wù)器。雖然數(shù)據(jù)庫鏡像只能有一臺(tái)鏡像服務(wù)器,但“日志傳送”可以有許多輔助服務(wù)器,這可以提高保護(hù)級(jí)別。
“日志傳送”是按照時(shí)間表執(zhí)行的,因此在主服務(wù)器上的數(shù)據(jù)更改與這些更改傳輸?shù)捷o助服務(wù)器上之間有時(shí)間延遲。這種延遲會(huì)導(dǎo)致數(shù)據(jù)損失,但在許多應(yīng)用場景下,這些延遲可用作還原用戶錯(cuò)誤的一種方法,因?yàn)榭梢匝舆t日志數(shù)據(jù)在輔助服務(wù)器上的應(yīng)用(從而保留輔助服務(wù)器上的原始數(shù)據(jù))。
為降低主服務(wù)器的工作負(fù)荷,輔助服務(wù)器可用作只讀報(bào)告服務(wù)器,但在應(yīng)用日志備份時(shí)無法運(yùn)行報(bào)告。在獵頭公司的案例中,可利用日志備份與備用服務(wù)器執(zhí)行還原之間的延遲應(yīng)用“日志傳送”。這可以扭轉(zhuǎn)由用戶導(dǎo)致的錯(cuò)誤情形,因?yàn)槿绻鞣?wù)器發(fā)生故障,可以直接應(yīng)用日志以減少數(shù)據(jù)損失。
故障轉(zhuǎn)移群集
“故障轉(zhuǎn)移群集”是一種 Windows 功能,可對整個(gè)服務(wù)器提供保護(hù),而不只是保護(hù)數(shù)據(jù)庫。多臺(tái)服務(wù)器(稱為“節(jié)點(diǎn)”)共享磁盤陣列,因此如果一個(gè)節(jié)點(diǎn)發(fā)生故障,則可在集群中的另一個(gè)節(jié)點(diǎn)上啟動(dòng)它的服務(wù)。該解決方案可以防止任何數(shù)據(jù)損失,并提供自動(dòng)的客戶機(jī)重定向服務(wù),但從主服務(wù)器到輔助服務(wù)器的故障恢復(fù)操作沒有數(shù)據(jù)庫鏡像那樣快,而且需要專門的硬件。
Windows Server 2008 擴(kuò)展了舊版 Windows 的群集功能,它降低了對硬件和基礎(chǔ)結(jié)構(gòu)的要求,且在一個(gè)群集中支持16個(gè)節(jié)點(diǎn)。此外,由于不要求所有節(jié)點(diǎn)都駐留于同一個(gè)子網(wǎng)中并支持 OR 依賴關(guān)系(例如,當(dāng)兩個(gè) IP 地址資源中的任何一個(gè)可用時(shí),可確保網(wǎng)絡(luò)名資源也可用),因而強(qiáng)化了群集功能。從總體上講,在 Windows Server 2008 中可以更容易地設(shè)置和管理群集,而引進(jìn)的群集驗(yàn)證工具有助于確保群集解決方案有足夠的硬件資源。通過利用 Windows Server 2008 中的群集增強(qiáng)功能,SQL Server 2008 為整個(gè) SQL Server 實(shí)例提供了健壯的高可用性解決方案。SQL Server 2008 還改善了舊版的群集功能,它不要求每個(gè) SQL Server 實(shí)例都要有一個(gè)盤符,這提高了群集解決方案可以支持的實(shí)例數(shù)量。
在保險(xiǎn)公司案例中,“故障轉(zhuǎn)移群集”可用于提供近似連續(xù)的可用性。“故障轉(zhuǎn)移群集”不會(huì)影響系統(tǒng)性能,因?yàn)樗且环N服務(wù)器級(jí)解決方案,能夠?yàn)榉?wù)器上的其他資源提供可用性。如果擔(dān)心共享磁盤陣列不能提供足夠的冗余,則可使用“地理分散群集”。地理分散故障轉(zhuǎn)移群集
“地理分散故障轉(zhuǎn)移群集”按照認(rèn)證的 Microsoft Geographically Dispersed Cluster Services 配置提供服務(wù)器級(jí)冗余,該配置要求每個(gè)站點(diǎn)擁有一個(gè)或多個(gè)存儲(chǔ)陣列。如果站點(diǎn)、服務(wù)器節(jié)點(diǎn)或磁盤發(fā)生故障,系統(tǒng)和磁盤的完整冗余將使故障轉(zhuǎn)移群集能夠處理另一站點(diǎn)上的后續(xù)活動(dòng)。該配置可避免共享磁盤陣列發(fā)生故障的風(fēng)險(xiǎn),這將阻止標(biāo)準(zhǔn)群集配置發(fā)揮作用。
對等復(fù)制
“對等復(fù)制”使多個(gè)數(shù)據(jù)庫能夠相互復(fù)制。可以對任何數(shù)據(jù)庫執(zhí)行更改,而且能以接近實(shí)時(shí)的方式將這些更改應(yīng)用于復(fù)制拓?fù)渲械钠渌?jié)點(diǎn)。應(yīng)用程序的設(shè)計(jì)要求是,如果主體服務(wù)器不可用,應(yīng)用程序必須能夠連接拓?fù)渲械钠渌?jié)點(diǎn)。
SQL Server 2008 強(qiáng)化了對等復(fù)制功能,它可在復(fù)制解決方案中增加節(jié)點(diǎn),同時(shí)保持復(fù)制流程處于在線狀態(tài)。在舊版的 SQL Server 中,要增加新節(jié)點(diǎn),必須在離線狀態(tài)下執(zhí)行復(fù)制流程。此外,SQL Server 2008 可以直接利用圖形化 Topology Viewer 對對等復(fù)制進(jìn)行設(shè)置、監(jiān)督和管理。SQL Server 2008 還引進(jìn)了沖突檢測機(jī)制,可以防止多個(gè)復(fù)制節(jié)點(diǎn)更新同一行時(shí)產(chǎn)生的偶然沖突。在管理培訓(xùn)公司的案例中,對等復(fù)制可以從本地訪問整個(gè)訂單數(shù)據(jù)庫,如果另一站點(diǎn)的數(shù)據(jù)庫不可用,則每個(gè)站點(diǎn)都可以用于故障恢復(fù)。
縮短停機(jī)時(shí)間
系統(tǒng)停機(jī)時(shí)間會(huì)威脅到任何企業(yè)的成功。系統(tǒng)停機(jī)時(shí)間可能是意外產(chǎn)生的,也可能是為維護(hù)任務(wù)而預(yù)先安排的,例如重建索引或執(zhí)行應(yīng)用程序或系統(tǒng)升級(jí)。
要使系統(tǒng)避免產(chǎn)生意外停機(jī)很困難,因?yàn)閷τ谄髽I(yè)而言,意外的硬件或網(wǎng)絡(luò)故障、人為失誤、自然災(zāi)害或盜竊都可能會(huì)帶來災(zāi)難性后果。SQL Server Always On 提供了可從計(jì)劃外停機(jī)狀態(tài)中迅速恢復(fù)的技術(shù)。此外,通過適當(dāng)?shù)貙?shí)施 Always On 技術(shù),任務(wù)關(guān)鍵型應(yīng)用程序平穩(wěn)運(yùn)行所需的系統(tǒng)維護(hù)和操作流程將使停機(jī)時(shí)間降至最低。
快速數(shù)據(jù)庫恢復(fù)
SQL Server 2008 Enterprise Edition Database Engine 能夠在崩潰恢復(fù)和數(shù)據(jù)庫鏡像故障轉(zhuǎn)移期間提供快速恢復(fù)。快速恢復(fù)功能使數(shù)據(jù)庫在恢復(fù)流程的還原階段即可使用,它在還原操作期間、數(shù)據(jù)庫頁校驗(yàn)以及備份媒體鏡像期間均可提供部分可用性。通過支持快速恢復(fù),SQL Server 2008 將在最短的時(shí)間內(nèi)使數(shù)據(jù)庫處于在線狀態(tài),因此用戶很快就能使用數(shù)據(jù)庫,這要快于如下方法:等整個(gè)恢復(fù)流程全部完成后,用戶和應(yīng)用程序才可以執(zhí)行連接。
備份和還原
在高可用性解決方案中,備份至關(guān)重要,它要定期提供數(shù)據(jù)快照,并在出現(xiàn)大范圍故障或缺少其他高可用性解決方案時(shí),作為數(shù)據(jù)源用以還原數(shù)據(jù)。
SQL Server 的備份媒體鏡像功能使用戶能夠?qū)?shù)據(jù)庫通過鏡像備份復(fù)制到多個(gè)備份設(shè)備上,當(dāng)媒體出現(xiàn)故障或備份設(shè)備丟失時(shí),這將極大提高備份的可靠性。SQL Server 2008 支持在磁盤和磁帶上執(zhí)行鏡像備份,但所用的設(shè)備必須類似,以避免產(chǎn)生設(shè)備不匹配錯(cuò)誤的風(fēng)險(xiǎn)。備份鏡像集中的所有設(shè)備在備份過程中都必須可用,但數(shù)據(jù)庫可從鏡像集中的任何單獨(dú)備份中還原。要利用 Transact-SQL 執(zhí)行鏡像備份,必須使用 BACKUP 命令的 MIRROR TO 子句,如下例所示。
BACKUP DATABASE AdventureWorksTO TAPE = '.tape0', TAPE = '.tape1'MIRROR TO TAPE = '.tape2', TAPE = '.tape3'WITH FORMAT, MEDIANAME = 'AdventureWorksSet1';GO
SQL Server 的另一個(gè)備份可靠性特性是,在備份操作期間可以生成校驗(yàn)和,然后校驗(yàn)和可用于驗(yàn)證還原后的數(shù)據(jù)庫。
SQL Server 2008 支持備份壓縮,最多可使備份大小減小50%。容量的減小使用戶能夠更頻繁地備份數(shù)據(jù),同時(shí)也會(huì)縮短還原時(shí)間。在 BACKUP 命令中,備份壓縮可設(shè)為 ON 或 OFF,并且可以利用 sp_configure 定義默認(rèn)的壓縮值(on 或 off),以確定在執(zhí)行 BACKUP 命令時(shí),是否需要制定壓縮選項(xiàng)。
數(shù)據(jù)頁上的校驗(yàn)和
“校驗(yàn)和”可比較寫入磁盤的值與后續(xù)讀取的值。如果這些值不一致,則該頁將被標(biāo)記為 suspect(可疑),然后要么手動(dòng)還原,要么利用 SQL Server 2008 自動(dòng)從伙伴服務(wù)器中還原。
在線索引操作
可用性會(huì)受到標(biāo)準(zhǔn)維護(hù)操作以及故障的影響。在早期 SQL Server 版本中,索引維護(hù)會(huì)使受影響的數(shù)據(jù)變?yōu)椴豢捎?,但從SQL Server 2005 開始,數(shù)據(jù)在“在線索引操作”期間均可保持可用性,這些可用的操作包括創(chuàng)建、放置或重建索引。在執(zhí)行索引維護(hù)時(shí),“在線索引操作”可提高所有系統(tǒng)的可用性,因此也能提高職員的工作效率,并改善客戶使用系統(tǒng)時(shí)的體驗(yàn)。在線、段落和頁級(jí)還原
SQL Server 2008 Enterprise Edition 支持“在線還原”,使用戶能夠訪問數(shù)據(jù)庫被還原的部分,即使數(shù)據(jù)庫的其他部分還不可用,因此這會(huì)提高恢復(fù)速度、縮短停機(jī)時(shí)間和提高可用性。此外,可以利用“段落還原”策略還原各階段的數(shù)據(jù)庫。例如,可以還原包含當(dāng)前活動(dòng)數(shù)據(jù)的文件組,并且可先使數(shù)據(jù)庫處于在線狀態(tài),然后還原包含較舊的歸檔數(shù)據(jù)的文件組。在災(zāi)難恢復(fù)應(yīng)用場景下,段落還原策略可縮短任務(wù)關(guān)鍵型應(yīng)用程序處于離線狀態(tài)的時(shí)間。
由于少量數(shù)據(jù)頁發(fā)生損壞而需要恢復(fù)數(shù)據(jù)庫時(shí),SQL Server 2008 支持頁級(jí)還原操作。用戶可從許多源數(shù)據(jù)庫的可疑頁中識(shí)別頁 ID,包括 msdb 數(shù)據(jù)庫中的 suspect_pages 表、SQL Server 錯(cuò)誤日志以及 DBCC CHECKDB 命令。識(shí)別出任何有可能損壞的數(shù)據(jù)頁之后,就可以在 RESTORE 語句的 PAGE 從句中指定頁 ID,從而還原數(shù)據(jù)頁。從備份中還原單張頁的能力極大地縮短由于數(shù)據(jù)庫損壞導(dǎo)致的停機(jī)時(shí)間。
部分?jǐn)?shù)據(jù)可用性
有了“部分?jǐn)?shù)據(jù)可用性”功能,即使數(shù)據(jù)庫的一部分由于隔離硬件或磁盤故障而遭破壞,數(shù)據(jù)庫也能維持在線狀態(tài)和可用性。如果輔助的非主要數(shù)據(jù)文件損壞,則數(shù)據(jù)庫未損壞的部分仍將保持在線狀態(tài)和可用性。因此,即使整個(gè)系統(tǒng)不可用,但有些客戶和職員仍可訪問數(shù)據(jù),這會(huì)減輕由問題導(dǎo)致的后果,同時(shí)另一個(gè)可用性解決方案將進(jìn)入在線狀態(tài)。
快照隔離
在SQL Server的早期版本中修改數(shù)據(jù)時(shí),被修改的數(shù)據(jù)將處于鎖定狀態(tài),因此其他應(yīng)用程序和用戶就無法使用這些數(shù)據(jù)。替代方法是讀取數(shù)據(jù)的當(dāng)前狀態(tài)(即使這些值尚未被提交)或者當(dāng)交易未成功完成時(shí)回滾數(shù)據(jù)。
“快照隔離”功能擴(kuò)展了 SQL Server 2008 中的鎖定框架,它使應(yīng)用程序能夠在發(fā)生任何數(shù)據(jù)修改之前查看值。這可防止應(yīng)用程序被鎖定,同時(shí)仍將提供真正已提交的數(shù)據(jù)。例如,在本文開頭介紹的玩具制造商案例中,“快照隔離”功能使報(bào)告能夠運(yùn)行,并提供精確的交易結(jié)果。“快照隔離”使報(bào)告更及時(shí)、更精確。
動(dòng)態(tài)配置
“動(dòng)態(tài)配置”是 SQL Server Always On 技術(shù)之一,利用該技術(shù)可以更好地訪問硬件特性,如執(zhí)行熱升級(jí),同時(shí)系統(tǒng)仍可運(yùn)行。如果硬件支持“熱添加內(nèi)存”,則在增加系統(tǒng)內(nèi)存時(shí)就不會(huì)產(chǎn)生中斷,而且 SQL Server 將通過動(dòng)態(tài)內(nèi)存或者故障移動(dòng)群集的動(dòng)態(tài)
“地址窗口化擴(kuò)展插件(AWE)”自動(dòng)使用這些內(nèi)存。SQL Server 2008 還支持“熱添加CPU”,因此可為受支持的硬件添加處理器,而且不會(huì)使操作中斷。對于任何需要增加處理器或內(nèi)存資源的系統(tǒng)而言,“動(dòng)態(tài)配置”功能可縮短停機(jī)時(shí)間,并提高職員工作效率和客戶滿意度。
增強(qiáng)的可管理性
SQL Server 2008 針對簡化恢復(fù)操作提供了強(qiáng)大且高效的管理工具,它提供了用于調(diào)查、監(jiān)督以及恢復(fù)企業(yè)中受損數(shù)據(jù)的各種工具。
數(shù)據(jù)庫快照
無論是由維護(hù)操作還是由終端用戶交互導(dǎo)致,人為失誤是導(dǎo)致停機(jī)的最常見原因。SQL Server Always On 提供了“數(shù)據(jù)庫快照”功能,可用于快速調(diào)查人為失誤并從之恢復(fù)?!皵?shù)據(jù)庫快照”就是創(chuàng)建快照時(shí)數(shù)據(jù)庫的只讀、靜態(tài)視圖。“數(shù)據(jù)庫快照”也可用于編制報(bào)告,而且不影響源數(shù)據(jù)庫的可用性。
在房地產(chǎn)公司的應(yīng)用場景中,“數(shù)據(jù)庫快照”提供了一種將當(dāng)前值向前一天回滾的方法,還為前一天的數(shù)據(jù)提供了只讀的報(bào)告解決方案。由于“數(shù)據(jù)庫快照”僅存儲(chǔ)將應(yīng)用于活動(dòng)數(shù)據(jù)庫的更改數(shù)據(jù),因此它們很節(jié)省存儲(chǔ)空間。
表和索引分區(qū)
“表和索引分區(qū)”功能可提高大表的可用性和可管理性,它將大表劃分為較小的、更易管理的單元,這種單元稱為“分區(qū)”??梢元?dú)立訪問各個(gè)分區(qū),因此減輕了 I/O 密集活動(dòng)產(chǎn)生的影響,如數(shù)據(jù)加載、備份和還原、索引重建以及索引碎片整理。
SQL Server 2008 使行鎖數(shù)和頁鎖數(shù)升級(jí)為分區(qū)鎖數(shù),因此提高了分區(qū)表的并行性。這種升級(jí)減少了應(yīng)用的鎖數(shù),因此加快了跨越查詢。在舊版本中,行鎖數(shù)和頁鎖數(shù)只能升級(jí)為表鎖數(shù),這會(huì)導(dǎo)致應(yīng)用不必要的大鎖,而且會(huì)妨礙其他用戶。
對于包含大表和大量用戶的任何系統(tǒng)而言,提高并行性并減少競爭可改善可用性,而且能夠提高職員工作效率和客戶滿意度。備份和還原
除了“段落還原”和“在線還原”技術(shù)外,備份和還原操作還在恢復(fù)方面提供了更多靈活性。SQL Server 使用戶能夠還原只讀數(shù)據(jù)庫文件組,而且無需應(yīng)用事務(wù)日志。它還允許同時(shí)執(zhí)行數(shù)據(jù)庫備份和事務(wù)日志備份。
專用管理員連接
“專用管理員連接(DAC)”是一種與服務(wù)器之間的高優(yōu)先級(jí)連接,當(dāng)服務(wù)器似乎要停機(jī)以及不接受新連接時(shí),它有助于排除故障。
資源調(diào)控器
在使用頻繁的數(shù)據(jù)庫中,不同的工作負(fù)荷可能會(huì)為了可用的系統(tǒng)資源而展開競爭,例如 CPU 線程和內(nèi)存。在某些情形下,這種資源競爭可能會(huì)使任務(wù)關(guān)鍵型工作負(fù)荷受到數(shù)據(jù)庫中其他活動(dòng)的不良影響。SQL Server 2008 提供“資源調(diào)控器”,它根據(jù)登錄、應(yīng)用程序和其他因素,為不同的工作負(fù)荷指定優(yōu)先級(jí),從而能夠主動(dòng)管理工作負(fù)荷資源利用情況。為工作負(fù)荷指定優(yōu)先級(jí)的能力使性能更具可預(yù)測性,有助于確保任務(wù)關(guān)鍵型應(yīng)用程序總有數(shù)據(jù)庫服務(wù)器資源可以使用。
結(jié)束語
當(dāng)客戶或職員無法使用企業(yè)中的任何關(guān)鍵系統(tǒng)時(shí),這都會(huì)立即影響到企業(yè)的利潤率??捎眯詥栴}和需求千差萬別,一種解決方案無法解決所有的問題。
SQL Server 2008 提供了多種解決方案以改善可用性,這種可用性至少在性能和多樣性方面能夠媲美主流數(shù)據(jù)庫廠商提供的任何類似產(chǎn)品,而且 SQL Server 2008 繼續(xù)在可管理性和資金價(jià)值方面居于領(lǐng)先地位。
獲取更多信息:http://www.microsoft.com/sql
本文對您有幫助嗎?請告訴我們您的感受。如果從1(差)到5(極好)的分值中進(jìn)行選擇,您認(rèn)為本文應(yīng)該打幾分?原因是什么?例如:您是否認(rèn)為由于提供了很好的例子、精美的屏幕截圖、清晰的文字描述或其他原因而應(yīng)該給它高分? 您是否認(rèn)為由于用例不當(dāng)、屏幕截圖模糊、文字描述含混不清而應(yīng)該給它低分?您的意見將有助于我們改善所發(fā)布白皮書的質(zhì)量。提交意見。
