Share via


升級 Database Engine 的考量

您可以將 SQL Server Database Engine 升級到 SQL Server 2008。如需有關支援之升級路徑的資訊,請參閱<版本與版別的升級>。

SQL Server 安裝程式可以在最少使用者介入的情況下升級舊版的 SQL Server。不過,正確的準備和熟悉升級程序,有助於防止或解決發生的任何問題。

本主題提供了您在準備和了解升級程序時所需要的資訊,其中涵蓋:

  • 已知的升級問題。

  • 升級前的工作和考量。

  • 升級 Database Engine 之程序主題的連結。

  • 將資料庫移轉到 SQL Server 之程序主題的連結。

  • 容錯移轉叢集的考量。

  • 升級後的工作和考量。

已知的升級問題

在升級 Database Engine 之前,請檢閱<SQL Server Database Engine 回溯相容性>。 如需有關支援升級狀況和升級已知問題的詳細資訊,請參閱<版本與版別的升級>。 如需其他 SQL Server 元件的回溯相容性內容,請參閱<回溯相容性>。

重要注意事項重要事項

從 SQL Server 的一個版本升級到另一個版本之前,請確認您目前使用的功能在您想要升級後的版本中有受到支援。

升級前檢查清單

SQL Server 安裝程式支援從舊版升級 SQL Server。您也可以從舊版的 SQL Server 移轉資料庫。您可以從一個 SQL Server 執行個體移轉到同一部電腦的另一個執行個體,或是從另一部電腦的 SQL Server 執行個體移轉。移轉選項包括使用複製資料庫精靈、備份和還原功能、使用 SQL ServerIntegration Services 匯入和匯出精靈,以及大量匯出/大量匯入方法。

在升級 Database Engine 之前,務必先執行下列動作:

在您升級 SQL Server 之前,請檢閱下列問題並進行變更:

  • 從 64 位元版本的 SQL Server 升級成 64 位元版本的 SQL Server 2008 時,您必須先升級 Analysis Services,再升級 Database Engine。

  • 升級 SQL Server 的執行個體時,如果 SQL Server Agent 編列在 MSX/TSX 關聯性中,請先升級目標伺服器,然後再升級主要伺服器。如果您先升級主要伺服器,然後再升級目標伺服器,SQL Server Agent 將無法連接至 SQL Server 的主要執行個體。

  • 從要升級的執行個體備份所有 SQL Server 資料庫檔案,好讓您可以在必要時還原它們。

  • 對要升級的資料庫執行適當的 Database Console Commands (DBCC),以確定它們處於一致狀態。

  • 除了使用者資料庫以外,也要評估升級 SQL Server 元件所需的磁碟空間。有關 SQL Server 元件所需的磁碟空間,請參閱<安裝 SQL Server 2008 的硬體和軟體需求>。

  • 確定現有的 SQL Server 系統資料庫 master、model、msdb 和 tempdb 都設定為自動成長,並確定它們有足夠的硬碟空間。

  • 確定所有資料庫伺服器在 master 資料庫中都有登入資訊。這對於還原資料庫很重要,因為系統登入資訊是位於 master 中。

  • 停用所有啟動預存程序,因為升級程序將會在升級的 SQL Server 執行個體上停止及啟動服務。在啟動時處理的預存程序可能會封鎖升級程序。

  • 停止複寫,並確定複寫記錄檔是空的。

  • 升級 SQL Server 2000Database Engine 的執行個體之後,仍會保留 max worker threads 的組態值。不過,建議您在升級之前將 max worker threads 的值變更為 0,好讓 Database Engine 計算最佳執行緒數目。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<max worker threads 選項>。

  • 結束所有應用程式,包括具有 SQL Server 相依性的所有服務。如果本機應用程式連接到要升級的執行個體,則升級可能會失敗。

  • 如果您要利用資料庫鏡像,請參閱《SQL Server 線上叢書》中的<如何:在升級伺服器執行個體時將鏡像資料庫的停機時間減至最少>。

升級 Database Engine

您可以用版本升級來覆寫 SQL Server 2000 或 SQL Server 2005 的安裝。如果在執行 SQL Server 安裝程式時偵測到舊版的 SQL Server,所有舊版的 SQL Server 程式檔都會升級,但是會保留舊版 SQL Server 執行個體中儲存的所有資料。此外,舊版的《SQL Server 線上叢書》將原封不動地保留在電腦上。

警告注意事項警告

當您升級 SQL Server 時,會覆寫先前的 SQL Server 執行個體,所以它不再存在於電腦上。升級之前,請備份 SQL Server 資料庫以及與先前的 SQL Server 執行個體相關聯的其他物件。

您可以使用 SQL Server 安裝精靈來升級 Database Engine。

警告注意事項警告

如果您的電腦有安裝 SQL Server 2000 管理工具和 SQL Server 2008 預設執行個體,SQL Server 安裝程式將會讓您安裝 SQL Server 2000 的預設執行個體。不過,這麼做會停用已安裝的 SQL Server 2008 執行個體。因此,當電腦上已有 SQL Server 2000 管理工具和 SQL Server 2008 的預設執行個體存在時,請不要安裝 SQL Server 的預設執行個體。

升級後的資料庫相容性層級

tempdbmodelmsdbResource 資料庫的相容性層級在升級之後會設定為 100。master 系統資料庫會保有升級前的相容性層級,除非該層級小於 80。如果 master 的相容性層級在升級前小於 80,則會在升級後設定為 80。

如果使用者資料庫的相容性層級在升級前為 80 或 90,則在升級後仍會保持相同。如果升級前的相容性層級為 70 或更小,則在升級後的資料庫中,相容性層級會設定為 80 (這是 SQL Server 2008 所支援的最低相容性層級)。

[!附註]

新的使用者資料庫會繼承 model 資料庫的相容性層級。

移轉資料庫

您可以使用 SQL Server 中的備份和還原或是卸離和附加功能,將使用者資料庫移到 SQL Server 執行個體。

重要注意事項重要事項

來源和目的地伺服器上具有相同名稱的資料庫將無法移動或複製。在此情況下,會將它標示為「已存在」。

如需詳細資訊,請參閱<使用複製資料庫精靈>或<如何:利用複製資料庫精靈升級 SQL Server>。

升級 Database Engine 之後

在升級 Database Engine 之後,請完成下列工作:

  • 重新註冊伺服器。如需有關註冊伺服器的詳細資訊,請參閱《SQL Server 線上叢書》中的<註冊伺服器>主題。

  • 重新擴展全文檢索目錄。這項作業會增強 SQL Server 安裝的效能。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_fulltext_catalog (Transact-SQL)>主題。

  • 當您從 SQL Server 2000 升級之後,請更新所有資料庫上的統計資料。請使用 sp_updatestats 預存程序來更新 SQL Server 資料庫中使用者定義資料表的統計資料。若您是從 SQL Server 2005 升級,就不需要此步驟。

  • 在所有資料庫上執行 DBCC UPDATEUSAGE,以更正任何不正確的資料列或頁面計數。

  • 設定 SQL Server 安裝。為了減少系統的可攻擊介面區,SQL Server 可以選擇性地安裝和啟用主要服務和功能。

  • 驗證或移除 SQL Server 2005 所產生及套用至資料分割資料表和索引上之查詢的 USE PLAN 提示。

    SQL Server 2008 改變了在資料分割資料表和索引上處理查詢的方式。在資料分割物件上,針對 SQL Server 2005 所產生之計畫使用 USE PLAN 提示的查詢包含了無法在 SQL Server 2008 中使用的計畫。我們建議您在升級到 SQL Server 2008 之後,使用以下程序。

    在查詢中直接指定 USE PLAN 提示時:

    1. 從查詢中移除 USE PLAN 提示。

    2. 測試查詢。

    3. 如果最佳化工具未選取適當的計畫,請微調查詢,然後考慮使用所要的查詢計畫指定 USE PLAN 提示。

    在計畫指南中指定 USE PLAN 提示時:

    1. 使用 sys.fn_validate_plan_guide 函數檢查計畫指南是否有效。或者,您也可以使用 SQL Server Profiler 中的 Plan Guide Unsuccessful 事件來檢查是否有無效的計畫。

    2. 如果此計畫指南無效,請捨棄此計畫指南。如果最佳化工具未選取適當的計畫,請微調查詢,然後考慮使用所要的查詢計畫指定 USE PLAN 提示。

    當計畫指南中指定了 USE PLAN 提示時,無效的計畫將不會造成查詢失敗。而是會編譯此查詢,而不使用 USE PLAN 提示。如需有關在資料分割物件上進行查詢處理的詳細資訊,請參閱<資料分割資料表和索引上的查詢處理增強功能>。

在升級之前標示為已啟用或已停用全文檢索的任何資料庫,都會在升級之後維持該狀態。升級之後,會針對所有已啟用全文檢索的資料庫自動重建及擴展全文檢索目錄。這是一項耗費時間和資源的作業。您可以執行下列陳述式來暫停全文檢索索引作業:

EXEC sp_fulltext_service 'pause_indexing', 1

若要繼續全文檢索索引母體擴展,請執行下列陳述式:

EXEC sp_fulltext_service 'pause_indexing', 0

變更記錄

更新的內容

在「升級 Database Engine 之後」一節中,變更了從 SQL Server 2000 升級之後更新統計資料的建議。