新聞中心
XXXL 事務(wù)日志

網(wǎng)站建設(shè)、基于H5技術(shù)技術(shù)的Web開發(fā)、手機(jī)站開發(fā)、微信開發(fā)等互聯(lián)網(wǎng)應(yīng)用服務(wù)。成都創(chuàng)新互聯(lián)公司始終關(guān)注著互聯(lián)網(wǎng)行業(yè)的前沿動態(tài),創(chuàng)新互聯(lián)堅信:真誠的態(tài)度,勤奮的工作是我們贏得客戶信賴的基礎(chǔ);而不斷創(chuàng)新、力求完美,才是創(chuàng)新互聯(lián)共同邁向美好未來的保證。
問:我們的產(chǎn)品使用 SQL Server 來存儲數(shù)據(jù)。我們會不時發(fā)布新的產(chǎn)品版本,其中包含針對數(shù)據(jù)庫運行的升級腳本。由于我們在典型的測試數(shù)據(jù)庫中測試我們***的升級腳本,事務(wù)日志文件的大小增長到了 40GB 以上。我們希望阻止日志文件增長到如此之大。我們可以選擇哪種方案?出于災(zāi)難恢復(fù)的目的,我們需要繼續(xù)使用完整恢復(fù)模式。
答:首先,我很高興得知您正在使用典型的客戶數(shù)據(jù)進(jìn)行測試。我多次發(fā)現(xiàn)分層應(yīng)用程序供應(yīng)商會使用小型數(shù)據(jù)集來測試這種腳本,然后即投入發(fā)行并提供給客戶使用,而客戶在生產(chǎn)過程中則會遇到各種各樣的問題。如果您是用戶,我會解答您的問題。然后您可以根據(jù)客戶的具體情況來應(yīng)用我的答案。
您說您需要繼續(xù)使用完整恢復(fù)模式。這意味著您已進(jìn)行事務(wù)日志備份,且您沒有遇到事務(wù)日志增長失控等常見問題。這很好,因為進(jìn)行事務(wù)日志備份是在提交事務(wù)之后唯一能夠清除事務(wù)日志的操作。(有關(guān)這個問題的背景,請參見 technet.microsoft.com/magazine/2009.02.logging,以了解事務(wù)日志的工作原理以及不同的恢復(fù)模式如何影響其行為。)
因此,執(zhí)行事務(wù)日志備份的頻率在一方面決定了清除事務(wù)日志以阻止其增長的速率。例如,如果您的定期備份作業(yè)每 30 分鐘執(zhí)行一次事務(wù)日志備份,事務(wù)日志文件必須足以保存在 30 分鐘內(nèi)生成的***的事務(wù)日志數(shù)據(jù)量。否則,數(shù)據(jù)量將增長。
如果您的升級腳本運行 60 分鐘且每 30 分鐘生成 20 GB 的事務(wù)日志,則事務(wù)日志文件大小應(yīng)為 20GB。可能這樣文件仍然太大,因此您需要在運行升級腳本時提高事務(wù)日志備份的頻率。這樣可以更頻繁地清除事務(wù)日志,從而阻止其過度增長。我們在客戶辦事處曾遇到過相似的問題,結(jié)果他們需要在大型數(shù)據(jù)庫中運行相似的腳本的數(shù)小時內(nèi)每分鐘執(zhí)行一次事務(wù)日志備份。
我們需要記住一件事,即這些“額外的”事務(wù)日志備份構(gòu)成了日志備份鏈的一部分,并且是災(zāi)難恢復(fù)所必須的。確保它們的名字都有意義且未被刪除。
另外,還應(yīng)考慮以下事項:作為您所設(shè)計的升級過程的一部分,發(fā)生的***的單項事務(wù)是什么?僅當(dāng)日志記錄來自已提交的事務(wù)時,可清除事務(wù)日志(這樣說可能過于簡單,有關(guān)詳細(xì)信息,請參見前面所提到的文章)。這意味著長期運行的事務(wù)不允許清除日志,即便事務(wù)日志備份不備份所生成的事務(wù)日志。
如果您的升級腳本包含一個需要 15GB 日志空間的事務(wù),則事務(wù)日志文件將需要至少 15GB 來在提交事務(wù)前保存整個事務(wù)。在這種情況下,無論您執(zhí)行事務(wù)日志備份的頻率如何,該事務(wù)日志都不會被清除。這種情況下唯一的解決辦法是,如果可能,將大型事務(wù)拆分成較小的事務(wù)。
請記住,運行升級腳本所需的事務(wù)日志大小取決于事務(wù)日志備份的頻率以及您所創(chuàng)建的***的單個事務(wù)的大小。
配置難題
問:我們正在為我們的一個數(shù)據(jù)庫服務(wù)器配置一些新的直接連接存儲,我們希望確保我們理解了所有的選擇方案并正確配置。您能不能解釋一下對于 SQL Server,我們應(yīng)了解哪些不同的配置設(shè)置?
答:配置存儲時需要有策略的設(shè)置和配置選項,因此,我傾向于由專門的存儲管理員來負(fù)責(zé)。SQL Server 管理員肯定需要關(guān)注一些選項,以確保正確設(shè)置。
首先是底層 RAID 級別。涉及到性能與冗余性問題時,各種 RAID 級別的權(quán)衡互不相同。例如,仍能提供一定冗余性的***的 RAID 配置為 RAID-5,但此配置只能用于處理單驅(qū)動器故障(除非采用 RAID-6 或配置了熱備用驅(qū)動器),并且根據(jù)陣列中驅(qū)動器的數(shù)量,它有時會削弱大量寫入工作負(fù)荷的性能。
RAID-10 提供了***的冗余性,但更為昂貴。陣列的總?cè)萘?**為構(gòu)成驅(qū)動器總?cè)萘康囊话?。有關(guān)各種 RAID 級別的深入探討,請參見 TechNet 白皮書物理數(shù)據(jù)庫存儲設(shè)計附錄 A。
需要考慮的其他主要因素為 RAID 條帶大小、NTFS 分配單元大?。ù卮笮。┮约按疟P分區(qū)對齊方式。如果設(shè)置有誤,所有上述因素都會導(dǎo)致性能明顯下降。其中最重要的一個因素為使用 Windows Server 2003 創(chuàng)建的磁盤卷的磁盤分區(qū)對齊方式。默認(rèn)的對齊方式為 31.5KB,但這與 64KB 的常用 RAID 條帶大?。ɑ蛘咂渲械亩鄠€條帶大?。┎黄ヅ洹R虼?,每個 I/O 事實上需要讀或?qū)憙蓚€ RAID 條帶來滿足 IO。很明顯,這會導(dǎo)致性能急劇降低。
默認(rèn)情況下,Windows Server 2008 采用 1MB 的對齊方式。在 Windows Server 2003 上創(chuàng)建并升級到由 Windows Server 2008 托管的任何卷的對齊方式都不會變化,因此它們?nèi)杂锌赡軙艿接绊?。要想解決這一問題就必須重新格式化卷,由于這樣能夠提高性能,所以還是值得的。
對于這些問題的詳細(xì)探討很明顯已超出了此專欄的主題范圍,但是您可以閱讀我的博客帖子您的磁盤分區(qū)偏移量、RAID 條帶大小和 NTFS 分配單元設(shè)置是否正確?,以了解詳細(xì)信息(包括更多相關(guān)帖子的鏈接)。
配置任何新的存儲時,***在開始應(yīng)用生產(chǎn)負(fù)載之前進(jìn)行壓力測試和性能測試。壓力測試使您能夠排除可導(dǎo)致停機(jī)或數(shù)據(jù)丟失的任何配置問題。性能測試可幫助您驗證新的存儲能否提供您的工作負(fù)載所需的 I/O 能力。Microsoft 提供可幫助實現(xiàn)這些操作的免費工具,請參見白皮書預(yù)部署 I/O ***實踐以了解詳細(xì)信息。
鏡像,鏡像
問:我對于設(shè)置數(shù)據(jù)庫鏡像時見證服務(wù)器的性質(zhì)有些不解。見證服務(wù)器需要有多強(qiáng)大?它是否依賴于它執(zhí)行故障轉(zhuǎn)移的數(shù)據(jù)庫的數(shù)量?將見證服務(wù)器放置在哪個數(shù)據(jù)中心有沒有影響?我希望確保鏡像數(shù)據(jù)庫能夠獲得***的可用性。
答:見證服務(wù)器的角色是任何數(shù)據(jù)庫鏡像系統(tǒng)中最容易被誤解的一個方面。同步數(shù)據(jù)庫鏡像配置中見證服務(wù)器存在的唯一目的是,當(dāng)主體服務(wù)器變得不可用時幫助促進(jìn)自動故障轉(zhuǎn)移。
主體服務(wù)器會持續(xù)向鏡像服務(wù)器而不是見證服務(wù)器發(fā)送事務(wù)日志記錄。作為自動故障檢測機(jī)制的一部分,主體服務(wù)器、鏡像服務(wù)器和見證服務(wù)器每秒都會相互 ping。如果出于任何原因鏡像服務(wù)器判定它無法與主體服務(wù)器通信,除非見證服務(wù)器同意它也無法與主體服務(wù)器通信,否則鏡像服務(wù)器無法啟動自動故障轉(zhuǎn)移。如果兩臺服務(wù)器達(dá)成一致,便形成仲裁,并由鏡像服務(wù)器啟動自動故障轉(zhuǎn)移。如果見證服務(wù)器不存在,則無法形成仲裁且無法啟動自動故障轉(zhuǎn)移。
因此,見證服務(wù)器存在的唯一目的就是幫助形成仲裁。它不會啟動故障轉(zhuǎn)移或在托管鏡像數(shù)據(jù)庫中扮演任何角色。通常,這種仲裁存在于主體服務(wù)器與鏡像服務(wù)器之間。
由于見證服務(wù)器不會做任何上述處理,它不需要非常強(qiáng)大。它可以托管任意版本的 SQL Server,包括免費的 SQL Server Express Edition。對于可作為見證服務(wù)器的 SQL Server 的特定實例,數(shù)據(jù)庫鏡像會話數(shù)也沒有限制。
見證服務(wù)器***放置在與主體服務(wù)器或鏡像服務(wù)器不同的數(shù)據(jù)中心。但是,大多數(shù)公司并不具備三個數(shù)據(jù)中心,因此問題是應(yīng)將見證服務(wù)器與鏡像服務(wù)器還是與主體服務(wù)器放置在一起。
如果僅有兩個數(shù)據(jù)中心可用,應(yīng)始終將見證服務(wù)器與主體服務(wù)器放置在一起。這與形成仲裁有關(guān)系。如果將見證服務(wù)器與鏡像服務(wù)器放置在一起,當(dāng)主體服務(wù)器失去網(wǎng)絡(luò)鏈接時,見證服務(wù)器和鏡像服務(wù)器會形成仲裁并由鏡像服務(wù)器啟動故障轉(zhuǎn)移。
這種情況下主體服務(wù)器可能沒有任何問題,當(dāng)未形成仲裁時,它會使主體數(shù)據(jù)庫脫機(jī)。它假定在這種情況下鏡像會執(zhí)行故障轉(zhuǎn)移。為防止出現(xiàn)這種問題,應(yīng)將主體服務(wù)器與見證服務(wù)器放置在一起,這樣可以在發(fā)生網(wǎng)絡(luò)故障時使主體服務(wù)器維持與見證服務(wù)器的仲裁。從而使主體數(shù)據(jù)庫保持可用。
見證服務(wù)器完全可選,但如果不存在見證服務(wù)器則不可能發(fā)生自動故障轉(zhuǎn)移,因此無法保證鏡像的數(shù)據(jù)庫的***可用性。對于其他方式,數(shù)據(jù)庫鏡像操作均相同。如果配置了見證服務(wù)器但由于某些原因它不可用,除了執(zhí)行自動故障轉(zhuǎn)移的功能以外,鏡像功能不受影響。
每個數(shù)據(jù)庫鏡像會話也可以配置兩個見證服務(wù)器。為見證服務(wù)器角色增加更高冗余性的唯一方法是,在故障轉(zhuǎn)移群集中托管見證 SQL Server 實例。有關(guān)數(shù)據(jù)庫鏡像配置的詳細(xì)信息,請參見 TechNet 白皮書 SQL Server 2005 中的數(shù)據(jù)庫鏡像。
原文地址
查看更多相關(guān)文章
【編輯推薦】
- SQL Server 2000刪除實戰(zhàn)演習(xí)
- SQL Server存儲過程的命名標(biāo)準(zhǔn)如何進(jìn)行?
- 卸載SQL Server 2005組件的正確順序
- 對SQL Server字符串?dāng)?shù)據(jù)類型的具體描述
- SQL Server數(shù)據(jù)類型的種類與應(yīng)用
網(wǎng)頁名稱:SQL問題與解答:備份和設(shè)置
網(wǎng)頁鏈接:http://www.5511xx.com/article/coogojc.html


咨詢
建站咨詢
