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

SQL Server 2000 記錄傳送遷移至 2008 完整操作手冊:三種遷移策略詳解

     編輯:關於SqlServer

背景:無法就地升級,必須遷移

SQL Server 2000 記錄傳送基於「資料庫維護計畫」,2005 起架構重寫,2000 的設定**無法直接升級**。升級實例後記錄傳送將失效。必須採用遷移策略重建。

三種遷移策略比較

策略停機時間複雜度適用場景
含容錯移轉遷移極短 (秒級切換)高7x24 不可長時間停機、備庫可暫時承接讀寫
不含容錯移轉遷移主庫升級期間不可用中可容忍主庫停機數小時、單向複寫
完全重新部署依完整備份/還原時間低環境乾淨、可接受重新初始化、備份檔可用

策略一:含容錯移轉遷移 (零資料遺失、最短停機)

假設:Server A (主) → Server B (備)。

  1. 升級備庫 Server B 至 SQL 2008。備資料庫保持離線 (NORECOVERY/STANDBY),仍為 SQL 2000 格式。2000 的複製/還原作業失效。
  2. 容錯移轉至 Server B:
    • 主庫 A:對所有未套用的記錄備份執行 `RESTORE LOG ... WITH NORECOVERY`。
    • 主庫 A:執行**尾記錄備份** `BACKUP LOG DB TO ... WITH NORECOVERY` (使主庫離線)。
    • 備庫 B:`RESTORE LOG DB FROM ... WITH RECOVERY` (上線,自動升級為 SQL 2008 格式)。
  3. 升級原主庫 Server A 至 SQL 2008。資料庫離線狀態下升級,升級後仍為 SQL 2000 格式。
  4. 在 Server B 建立 SQL 2008 記錄傳送,反向保護 Server A:
    • 設定主=B、備=A。
    • **關鍵**:精靈「初始化次要資料庫」選 **「否,次要資料庫已初始化」**。
    • 首筆記錄套用時,Server A 資料庫自動升級為 SQL 2008。
  5. (可選) 容錯移轉回 Server A 恢復原拓撲。

策略二:不含容錯移轉遷移 (簡單但主庫停機)

  1. 升級備庫 Server B 至 SQL 2008 (備庫離線)。
  2. 升級主庫 Server A 至 SQL 2008 (**主庫此期間不可用**)。
  3. 在 Server A 建立 SQL 2008 記錄傳送至 Server B,指定「次要資料庫已初始化」。

策略三:完全重新部署

  1. 在新環境 (SQL 2008) 建立完整備份 → 還原至備庫 (WITH NORECOVERY/STANDBY)。
  2. 建立記錄傳送,從頭開始。舊 2000 環境淘汰。

遷移後清理

  • 刪除 SQL 2000 記錄傳送建立的系統表:`msdb.dbo.log_shipping_*`、`msdb.dbo.log_shipping_monitor_*`。
  • 刪除對應的 SQL Agent 作業 (LSAlert、LSCopy、LSRestore 等)。
  • 啟用 **備份壓縮** (Enterprise Edition):**預設由 `backup compression default` 伺服器選項控制**,可覆寫於各記錄傳送設定。

限制與注意事項

  • 遷移後**次要資料庫無法處於 STANDBY (唯讀) 模式** (SQL 2008 限制)。需唯讀報表請改用資料庫快照或 AlwaysOn 可讀次要複本。
  • 確保兩端 SQL 2008 版本、修補程式版本一致 (SP 級別)。
  • 網路共用資料夾權限:SQL Server 服務帳號需具備讀寫權限。

結語

選擇策略取決於 **RTO 容忍度** 與 **操作風險偏好**。生產環境強烈建議演練「含容錯移轉遷移」於測試環境,驗證尾記錄備份、反向記錄傳送建立、資料庫自動升級全流程無誤後,再排程生產窗口執行。

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