首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 升級至 2008:日誌傳送遷移完整指南

     編輯:關於SqlServer

將 SQL Server 從 2000 版本升級到 2008 後,原有的日誌傳送將無法直接運作。不過,您可以透過遷移現有的 SQL Server 2000 日誌傳送配置,平滑過渡到新版本。本文詳細說明三種遷移策略、關鍵限制與具體操作步驟,助您完成零停機或最小停機的升級。

三種遷移策略概覽

  • 帶故障轉移的遷移:在升級各伺服器時保持資料庫可用性,次要資料庫無需重新初始化。
  • 不帶故障轉移的遷移:流程較簡單,但升級主伺服器期間資料庫不可用,次要資料庫同樣無需重新初始化。
  • 完全重新部署:從完整備份重新初始化次要資料庫,適合資料庫較小或高可用性要求不高的場景。

重要新功能與限制

SQL Server 2008 Enterprise 引入備份壓縮,遷移後的日誌傳送配置會依據「備份壓縮預設值」伺服器層級選項決定是否壓縮交易記錄備份檔案,亦可針對個別配置指定壓縮行為。

限制: 遷移至 SQL Server 2008 後,次要資料庫將無法處於備用模式(Standby Mode)。

方案一:帶故障轉移的遷移(零停機)

此法在升級次要伺服器實例期間,暫時保留主伺服器為 SQL Server 2000 實例。離線資料庫(如日誌傳送次要資料庫)仍維持 2000 版本格式,故仍可還原 2000 版本的記錄備份。

為便於說明,將 SQL Server 2000 日誌傳送主伺服器稱為伺服器 A,次要伺服器稱為伺服器 B。

  1. 升級伺服器 B 至 SQL Server 2008。此時日誌傳送資料庫仍為 2000 版本(離線狀態),SQL Server 2000 的複製/還原作業失效。用戶仍可存取伺服器 A 上的主資料庫。
  2. 從伺服器 A 故障轉移至伺服器 B:
    • 將伺服器 A 主資料庫上所有未套用的交易記錄備份還原至伺服器 B。
    • 在主資料庫上執行WITH NORECOVERY的尾部記錄備份(捕獲未備份的記錄並使資料庫離線)。範例:
      BACKUP LOG AdventureWorks
      TO DISK = N'\\FileServer\LogShipping\AdventureWorks\Failover_AW_20080315.trn'
      WITH NORECOVERY
      GO
    • 在伺服器 B 上以 WITH RECOVERY 還原尾部記錄備份,使次要資料庫上線。資料庫上線後自動升級為 SQL Server 2008 格式,升級過程完整記錄。
  3. 升級伺服器 A 至 SQL Server 2008。日誌傳送資料庫暫時保持 2000 版本(離線)。
  4. 在伺服器 B 上配置 SQL Server 2008 日誌傳送,將 B 設為主伺服器、A 為次要伺服器。關鍵步驟:在「次要資料庫設定」對話框的「初始化次要資料庫」索引標籤選擇「否,次要資料庫已初始化」。開始傳送記錄備份後,伺服器 A 上的資料庫將在套用第一個備份時升級為 2008 版本。
  5. (可選)故障轉移回伺服器 A,使其重新成為主伺服器。

方案二:不帶故障轉移的遷移(較簡單,但主庫升級期間不可用)

  1. 升級次要伺服器實例至 SQL Server 2008(次要資料庫維持 2000 版本、離線,2000 作業失效)。
  2. 升級主伺服器實例至 SQL Server 2008(升級期間主資料庫不可用)。
  3. 配置從主伺服器到次要伺服器的日誌傳送,同樣指定「否,次要資料庫已初始化」,並使用與 SQL Server 2000 配置相同的備份共用路徑,確保所有記錄備份能正確套用。資料庫升級為完整記錄操作,開始傳送記錄後次要資料庫自動升級為 2008 版本。

方案三:完全重新部署日誌傳送

若不想遷移現有配置,可使用主資料庫的完整備份重新初始化次要資料庫,從頭部署。適合資料庫較小、升級期間高可用性非關鍵的情況。

遷移後清理:移除 SQL Server 2000 遺留物件

SQL Server 2008 不再使用 SQL Server 2000 的日誌傳送系統資料表與 Agent 作業。升級完成後,可安全刪除下列資料表:

  • log_shipping_databases
  • log_shipping_monitor
  • log_shipping_plan_databases
  • log_shipping_plan_history
  • log_shipping_plans
  • log_shipping_primaries
  • log_shipping_secondaries

同時刪除由 SQL Server 2000 建立的所有日誌傳送 SQL Server Agent 作業。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved