計劃和測試資料庫引擎升級計畫

適用於:SQL Server - 僅限 Windows

若要成功執行 SQL Server 升級,不論使用何種方法,都需要適當規劃。

版本資訊與已知升級問題

升級資料庫引擎之前,請檢閱:

升級前的計劃檢查清單

升級資料庫引擎之前,請檢閱下列檢查清單及相關聯的文章。 這些文章適用於所有升級,無論升級方法為何,都能協助您決定最適當的升級方法:輪流升級、新安裝升級或就地升級。 例如,您可能無法執行就地升級或輪流升級 (若您要升級作業系統)、從 SQL Server 2005 升級,或是從 32 位元版本的 SQL Server 升級。 對於決策樹,請參閱 Choose a Database Engine Upgrade Method

  • 硬體與軟體需求:檢閱安裝 SQL Server 的硬體與軟體需求。 您可在以下頁面找到這些需求:安裝 SQL Server 的硬體和軟體需求。 在任何升級規劃的週期當中,都會涉及升級硬體 (較新的硬體較快,且可能由於處理器較少或資料庫與伺服器的合併而減少授權) 和升級作業系統的考量。 這類的硬體和軟體變更會影響您所選擇之升級方法的類型。

  • 目前環境:研究您的目前環境,以了解正在使用的 SQL Server 元件,以及連線到您環境的用戶端。

    • 用戶端提供者: 雖然升級時您不需要更新每個用戶端的提供者,但您也可以選擇更新。 如果您要從 SQL Server 2014 (12.x) 或更舊版本升級,下列 SQL Server 2016 (13.x) 功能需要已為每個用戶端更新的提供者,或已更新可提供額外功能的提供者:

    • Always Encrypted (資料庫引擎)

    • Stretch Database

      重要

      Stretch Database 在 SQL Server 2022 (16.x) 及 Azure SQL 資料庫中已被取代。 資料庫引擎的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

    • 可用性群組接聽程式、用戶端連線及應用程式容錯移轉 (SQL Server)

    • TLS 安全性更新

  • 協力廠商元件: 判斷協力廠商元件的相容性,例如整合式備份。

  • 目標環境: 確認您的目標環境符合硬體和軟體需求,且能夠支援原始系統的需求。 例如,您的升級可能涉及將多個 SQL Server 執行個體合併到單一的新 SQL Server 執行個體,或是將您的 SQL Server 環境虛擬化到私人或公用雲端。

  • 版本:判斷適當的 SQL Server 升級版本,並判斷升級的有效升級路徑。 如需詳細資訊,請參閱< Supported Version and Edition Upgrades>。 從 SQL Server 的一個版本升級到另一個版本之前,確認您目前使用的功能在您想要升級的目標版本中已受到支援。

    注意

    當您從舊版 SQL Server Enterprise 版本升級 SQL Server 時,請在 [Enterprise 版: 核心授權] 和 [Enterprise 版] 之間進行選擇。 這些 Enterprise Edition 只有在授權模式方面不同。 如需詳細資訊,請參閱 Compute Capacity Limits by Edition of SQL Server

  • 回溯相容性:檢閱 SQL Server 資料庫引擎回溯相容性文章,以檢閱 SQL Server 與您要升級的來源 SQL Server 版本之間的行為變更。 請參閱 SQL Server Database Engine Backward Compatibility

  • Data Migration Assistant: 執行 Data Migration Assistant 協助診斷可能封鎖升級程序的問題,或因重大變更而需要修改現有指令碼或應用程式的問題。

    您可以在這裡下載 Data Migration Assistant。

  • System Configuration Checker:在您排程升級之前,先執行 SQL Server System Configuration Checker (SCC) 來判斷 SQL Server 安裝程式是否偵測到任何封鎖問題。 如需詳細資訊,請參閱 Check Parameters for the System Configuration Checker

  • 升級經記憶體最佳化的資料表: 將包含經記憶體最佳化資料表的 SQL Server 2014 資料庫執行個體升級到 SQL Server 2016 時,升級程序需要額外時間將經記憶體最佳化的資料表轉換成新磁碟上格式 (執行這些步驟時資料庫會離線)。 時間長短是根據記憶體最佳化資料表的大小及 I/O 子系統的速度而定。 針對就地和新安裝升級,升級需要三種大小的資料作業 (輪流升級不需要步驟 1,但需要步驟 2 和 3):

    1. 以舊的磁碟上格式執行資料庫復原 (包含從磁碟機將所有記憶體最佳化資料表中的資料載入記憶體)

    2. 將資料以新的磁碟上格式序列化

    3. 以新的格式執行資料庫復原 (包含從磁碟機將所有記憶體最佳化資料表中的資料載入記憶體)

      此外,若執行此程序期間磁碟機空間不足,會造成復原失敗。 確定磁碟上有足夠空間可存放現有的資料庫,加上等於資料庫中 MEMORY_OPTIMIZED_DATA 檔案群組之容器現有大小的額外儲存空間,以便執行就地升級或是將 SQL Server 2014 資料庫附加到 SQL Server 2016 執行個體。 使用下列查詢來判斷目前 MEMORY_OPTIMIZED_DATA 檔案群組所需的磁碟空間,以及因此判斷升級要成功所需的可用磁碟空間量:

    SELECT CAST(SUM(size) AS FLOAT) * 8 / 1024 / 1024 AS [size in GB]
    FROM sys.database_files
    WHERE data_space_id IN
    (
        SELECT data_space_id
        FROM sys.filegroups
        WHERE type = N'FX'
    );
    

開發和測試升級計畫

最好的方法是將升級視為如同其他 IT 專案。 請組織一個具備資料庫系統管理員、網路、擷取、轉換與載入 (ETL),以及其他升級所需之技能的升級小組。 該小組需要:

  • 選擇升級方法: 請參閱選擇資料庫引擎升級方法

  • 開發復原計畫︰ 如果需要復原,執行此計畫就能還原為原始的環境。

  • 決定驗收準則: 將使用者切換到升級的環境之前,請先驗證升級是否成功。

  • 測試升級計畫: 使用 Microsoft SQL Server Distributed Replay 公用程式,以實際工作負載測試效能。 此公用程式可使用多部電腦重新執行追蹤資料,並模擬關鍵任務的工作負載。 在 SQL Server 升級前後於測試伺服器上進行重新執行作業,可讓您衡量效能差異,並找出應用程式在升級後可能會發生的不相容情況。 如需詳細資訊,請參閱 SQL Server Distributed Replay管理工具命令列選項 (Distributed Replay Utility)

後續步驟