程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL 2000與SQL 2008的日志遷移問題

SQL 2000與SQL 2008的日志遷移問題

編輯:關於SqlServer

將服務器升級到 SQL Server 2008 之後,日志傳送將無法正常工作。但是你可以遷移SQL Server 2000日志傳送配置。具體方法如下:

  執行帶故障轉移的遷移可以在升級日志傳送配置中的每個服務器時保持數據庫的可用性。輔助數據庫不需要重新初始化。

  執行不帶故障轉移的遷移是一個比較簡單的過程,在此過程中無需故障轉移到輔助服務器。如果執行此過程,則數據庫在升級主服務器時不可用。輔助數據庫不需要重新初始化。

  完全重新部署日志傳送,包括從一個完整備份中重新初始化輔助數據庫。

  將日志傳送配置遷移到 SQL Server 2008 後,就可以刪除由 SQL Server 2000 日志傳送創建的表和 SQL Server 代理作業。

  注意:SQL Server 2008 Enterprise 中引入了備份壓縮。遷移後的日志傳送配置使用“備份壓縮默認的”服務器級配置選項控制是否對事務日志備份文件使用備份壓縮。可以為每個日志傳送配置指定日志備份的備份壓縮行為。

  限制

  在 SQL Server 2000 日志傳送配置遷移至 SQL Server 2008 之後,輔助數據庫將無法處於備用模式下。

  執行帶故障轉移的遷移

  使用故障轉移遷移日志傳送配置時,會在升級輔助服務器實例期間將主服務器實例暫時保留為 SQL Server 原始版本的實例。升級服務器實例僅會升級聯機數據庫。脫機數據庫(例如日志傳送輔助數據庫)仍然是 SQL Server 原始版本的數據庫。只要數據庫保持脫機狀態,就可以還原 SQL Server 原始版本的日志備份。

  為清晰起見,本過程將 SQL Server 2000 日志傳送主服務器實例稱為服務器 A,將 SQL Server 2000 日志傳送輔助服務器實例稱為服務器 B。下圖顯示了此配置,其中 A 為主服務器實例,B 為單一輔助服務器實例。

  將輔助服務器實例 Server B 升級到 SQL Server 2008。升級 Server B 後,日志傳送數據庫仍然是 SQL Server 2000 數據庫,因為它處於脫機狀態。此數據庫將在下一步升級。復制和還原日志文件的 SQL Server 2000 日志傳送作業將不再起作用。

  注意:此時,用戶可以繼續訪問 Server A 上的主數據庫。

  從主服務器實例(服務器 A)到輔助服務器實例(服務器 B)的故障轉移。

  若要進行故障轉移,請將服務器 A 上的主數據庫中所有尚未應用的事務日志備份還原到服務器 B。

  對於指定 WITH NORECOVERY 的主數據庫上的事務日志,手動執行結尾日志備份。此日志備份捕獲任何尚未備份的日志記錄並使數據庫脫機。

  下面的示例在主服務器上備份 AdventureWorks 數據庫的日志結尾。此備份文件名為 Failover_AW_20080315.trn:


  BACKUP LOG AdventureWorks
  TO DISK =
  N’\\FileServer\LofShipping\AdventureWoks\Failover_AW_20080315.tm’
  WITH NORECOVERY
  GO

通過使用 WITH RECOVERY 還原事務日志結尾,使服務器 B 上的輔助數據庫聯機。

  故障轉移過程使輔助數據庫聯機,之後將自動升級到 SQL Server 2008 數據庫。數據庫升級過程將被完整地記錄下來。

  注意: 升級 Server B 上的日志傳送數據庫後,用戶即可使用該數據庫。但是,除非已在服務器 B 上配置 SQL Server 2008 日志傳送,否則不會采用來自服務器 B 上的數據庫的日志備份。

  將 Server A 升級到 SQL Server 2008。日志傳送數據庫臨時保持為 SQL Server 2000 數據庫,因為它處於脫機狀態。

  在 Server B 上配置 SQL Server 2008 日志傳送,將 Server B 作為主服務器,而將 Server A 作為輔助服務器。開始向 Server A 傳送事務日志後,當應用了第一個日志備份時,Server A 上的日志傳送數據庫將升級為 SQL Server 2008 數據庫。

  重要提示:在 Server B 上配置日志傳送時,請確保在“輔助數據庫設置”對話框的“初始化輔助數據庫”選項卡上指定“否,輔助數據庫已初始化”選項。

  (可選)若要使 Server A 重新成為主服務器,則故障轉移到 Server A。

  執行不帶故障轉移的遷移

  可以將 SQL Server 2000 日志傳送配置遷移到 SQL Server 2005,而無需使用故障轉移。執行此過程可以輕松地同時升級日志傳送配置中的兩個服務器實例。但是,在將主服務器實例升級到 SQL Server 2008 時,主數據庫不可用。

  將輔助服務器實例升級到 SQL Server 2008。升級輔助服務器實例後,日志傳送數據庫仍然是 SQL Server 2000 數據庫,因為它處於脫機狀態。復制和還原日志文件的 SQL Server 2000 日志傳送作業將不再起作用。

  將主服務器升級到 SQL Server 2008。在升級過程中,主服務器不可用。

  配置從主服務器實例到輔助服務器實例的日志傳送。請確保在“輔助數據庫設置”對話框的“初始化輔助數據庫”選項卡上指定“否,輔助數據庫已初始化”選項。

  重要提示:指定 SQL Server 2000 日志傳送配置所使用的同一備份共享。這樣可確保在 SQL Server 2008 中啟用日志傳送時,所有日志備份都能正確地應用於輔助數據庫。

  由於數據庫升級進程是一個完整記錄的操作,因此當開始向輔助服務器實例傳送日志後,輔助數據庫將升級為 SQL Server 2008 數據庫。

  重新部署日志傳送

  如果不想遷移日志傳送配置,可以通過使用主數據庫的完整備份和恢復來重新初始化輔助數據庫,從而從頭開始重新部署日志傳送。如果數據庫較小,或者在升級過程中高可用性並不是至關重要的,此方法將是個不錯的選擇。

  啟用日志傳送

  SQL Server 2008 不會使用 SQL Server 2000 所使用的任何日志傳送表。因此,將服務器升級到 SQL Server 2008 之後,可以刪除這些表。這些表包括:


  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 代理作業。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved