將 SQL Server 2016 就地升級到 SQL Server 2019 的已知問題
我們計劃將現有的 SQL Server 2016 實例升級到 SQL Server 2019。我們的應用程序在 SQL Server 2019 上已經執行的其他環境中,因此我們應該沒有任何兼容性問題。我們在只有幾年曆史的 Azure VM 上執行,並且不需要升級作業系統。我們目前正在決定是進行就地升級還是遷移到新伺服器。
一方面,我們具有可測試性、易於回滾和隨時間縮短的遷移的好處,但需要改變我們的客戶環境。客戶環境中的這些變化是工作意圖,也需要我們的客戶採取行動。另一方面,我們存在就地升級位而不是對客戶環境進行最小更改的風險。
我只能找到一些含糊的關於就地升級的問題,這些問題需要幾天時間才能解決,但沒有具體說明是什麼類型的問題。我的問題是這些潛在風險是什麼,它們發生的可能性有多大?
FWIW,我最近剛剛從 SQL Server 2016 CU2 到 SQL Server 2019 RTM 進行了“半就地”升級,沒有任何實際問題。它取代了新的且使用較少的伺服器,然後我們將數據庫從舊伺服器遷移到升級後。所以我們有原來的舊伺服器仍然可用,以防升級過程中出現問題,但是一旦升級和遷移完成並且我們在生產中打開新伺服器,我們不能再輕鬆地訪問舊伺服器用於生產目的,因此我稱之為“半就地”。
升級後我們確實遇到的一個小問題是 SQL Server 2019 的 RTM 版本存在一些錯誤,我們需要將其修補到最新的 CU。這是一個簡單的修復,無論我們進行就地升級還是並行升級,都會發生這種情況,而且我們主動意識到這一點,因為我們首先在 DEV 環境中進行了升級。
就地升級不一定有問題,事實上微軟甚至提供了有關如何進行就地升級的資訊和步驟。相反,就地升級的問題是它們會覆蓋該伺服器上現有的 SQL 實例,並且如果發生問題,則無法回滾。所以你應該確保有適當的備份(在我看來至少是伺服器級別的快照)和恢復/回滾計劃,如果在不幸的情況下出現問題並且你需要回滾,正如前面提到的那樣微軟文件:
升級 SQL Server 時,以前的 SQL Server 實例將被覆蓋,並且不再存在於您的電腦上。在升級之前,請備份 SQL Server 數據庫和與之前的 SQL Server 實例關聯的其他對象。
綜上所述,並行升級當然有就地升級所沒有的好處,例如能夠對新版本中的性能變化進行基準測試並能夠削減到除其他原因外,舊版本/伺服器很容易。因此,並行升級通常是首选和推薦的方法,但在某些情況下,就地升級也更有意義。