SQL Server升級,真如想象中那樣簡單?
并不是所有的SQL服務器升級都需要復雜的計劃和大量的工作。有時,你可以使用一些簡單的方法來升級SQL Server,在升級過程中,你并不會因為方法簡單而損失什么,而節(jié)省下來的時間,你還可以用來進行下一步的計劃。然而,如果你想要簡化升級過程,你必須知道在什么時候流程簡化對你來說安全可靠的,以及何時你必須付出額外的努力,這是至關重要的。
本文的目的是為你提供一個框架,有了它,你就可以較為容易地在數據庫升級過程中,確定所需的工作量,以及需要多少資源等。
SQL Server 升級的分類
要確定升級所付出的努力和需要消耗的成本,你有很多因素需要考慮。在本文中,我們將討論一些最常見的問題。當然,還有其他有助于判斷SQL服務器升級所需付出成本的因素,但本文討論的因素是***有代表性。
第三方應用程序。在許多企業(yè)中,大多數的數據庫是通過獨立軟件供應商(isv)購買的,他們提供標準流程,以幫助用戶將SQL Server升級到***版本。如果你想升級來自第三方ISV的數據庫,遵循供應商規(guī)定的升級策略是***的做法。它能夠幫助你預先確定升級需要多大的工作量。
任務關鍵型應用程序。任務關鍵型應用程序需要更為健壯的升級計劃和更多的測試工作。對于較小的應用程序,付出的工作量應該相應減少,因為升級造成功能受損的風險較低,且恢復所需的工作相對較少,對業(yè)務影響也不會很大。這個因素與當前數據庫架構是否具有高可用性以及是否具有災難恢復組件等條件密切相關。如果答案是肯定的,那我們可以預料到,盡可能縮短停機時間是至關重要的。這增加了升級計劃的準備時間和升級本身的測試時間。
臨時SQL。當應用程序運行在一個數據庫上,它生成大量的SQL查詢,且這些查詢并沒有嵌入在存儲過程中時,升級所需的工作量將增加。類似微軟的內置的Upgrade Advisor之類的工具,將會檢查數據庫本身的元數據,包括存儲過程和其他數據庫對象。不僅如此,Upgrade Advisor還有其他作用,因為它可以檢查臨時SQL語句追蹤文件。通常遇到的問題,可以通過捕獲和分析特定跟蹤文件來解決,這些文件提供了較為廣泛的SQL代碼覆蓋率。
大型數據庫。在這種情況下,大的定義是相對主觀的。例如,10年前,1 TB的數據庫被認為是大型數據庫,但在如今這已司空見慣。以gb或tb為單位的數據以及數據庫對象的數量會影響升級數據庫的時間,如果需要回滾,也會影響回滾完成的時間。
副本。這不會影響所有數據庫使用者,但如果在你的數據庫環(huán)境中有SQL Server副本,副本組件的升級順序是至關重要的,這與升級過程的持續(xù)性同樣重要。副本在升級過程中可能會成為系統(tǒng)處理的一個主要因素,以何種順序完成升級,將會影響你所需要的工作量。
圖1:用于確定升級過程所需工作量的決策樹
升級項目分類
一旦你考慮到各種因素,你可以根據SQL Server升級項目涉及的因素將其進行分類。這里有幾種類型的升級項目,以復雜度從高到低排列;它們之間的關系,以及與各種因素之間的聯(lián)系,如圖1所示。
復雜升級。這是一種升級的類型,它需要在計劃和執(zhí)行方面付出了大量的努力。確保盡可能的考慮多種情況,并在升級中不斷的測試是至關重要的,為了減少數據庫和應用程序升級時的停機時間。這些升級項目往往會給項目人員帶來很大壓力,它們需要付出額外的努力,以確保升級的成功。通常,會有正式的項目計劃和管理流程,以協(xié)調企業(yè)內部的工作安排,包括一個升級過程中的測試,以及升級失敗的回退計劃,以備不時之需。
基本升級。這種類型的項目會考慮到一些基本的測試,但它通常不需要部署團隊來親自完成這些測試。如果由他們完成,在涉及到任務關鍵型應用程序時,將依然需要很多的工作,而且這需要采取合理的預防措施。至少,這包括升級之前對數據庫的備份,以及創(chuàng)建一個可靠的回退計劃。
有回退計劃的非關鍵升級。這種類型的升級過程用于那些在自身領域十分重要的數據庫,這些數據庫并不涉及關鍵業(yè)務和監(jiān)管合規(guī)問題。此類情況下,數據庫升級時,如果需要,退回計劃將被執(zhí)行。
供應商指導下的升級計劃。這也許是最常見的SQL服務器升級項目。有時候,這樣的升級就是供應商對用戶說我們現(xiàn)在支持新版本,就像一句話這么簡單,但它也可能更為復雜。例如,如果你的前端程序連接到了數據庫的后端,你可能需要將前端應用程序升級到新版本。不同的供應商,細節(jié)可能會有很大不同。在企業(yè)內部,你可以把它當做一個基本升級項目來看待。
隨著數據庫升級項目類型的確定,你還需要內部應用程序所有者對計劃的簽字認可。根據工作安排,設定升級預期,估計升級所帶來的效益。對于所有類型的數據庫升級,你要確保至少從Upgrade Advisor開始你的升級過程,并及時修復發(fā)現(xiàn)的問題。在沒有進行基本的審查前,不要開始升級任務。