Sql-Server-2000

如何將 SQL 2000 數據庫升級到 SQL 2005 - 需要確認?

  • December 23, 2011

我需要確認將標準 SQL 2000 數據庫升級到 SQL 2005 的過程。據我了解,升級方法至少有 2 種。返回\恢復和分離\附加數據庫。就我而言,我需要將原始 SQL 2000 數據庫保持線上狀態,因此我認為最好進行 Back\Restore。有人可以確認以下過程並闡明我的問題嗎?

  1. 在 SQL 2000 伺服器上

  2. 對數據庫進行完整備份

  3. 數據庫->$$ Database $$->所有任務->備份數據庫…,選擇“完整”,然後保存文件(.bak)

  4. 將備份文件 (.bak) 移動到新的 SQL 2005 伺服器

  5. 在新的 SQL 2005 伺服器上

  6. 將 .MDF 和 .LDF 文件從舊 SQL 2000 Server 複製到新 SQL 2005 Server。

  7. 如果需要,將文件重命名為更標準的內容

  8. 創建一個新的 SQL 2005 數據庫。

  9. 執行備份文件 (.bak) 的還原

  10. 選擇“選項”選項卡。這將具有備份文件中的 mdf 和 ldf 位置。將這些更改為新伺服器上的合法目錄。

  11. 將兼容性更改為“SQL Server 2005 (90)”問題:

  12. 什麼執行升級?

  13. SQL 2000 數據庫是否在還原期間由 SQL 2005 引擎自動升級?

  14. 我是否需要將 .MDF 和 .LDF 文件從舊 SQL 2000 Server 複製到新 SQL 2005 Server?

  15. 我需要創建一個新的 SQL 2005 數據庫嗎?

提前感謝您的所有幫助。喬治

由於您使用的是備份/恢復方法,因此您不需要將數據庫 (mdf) 和日誌文件 (ldf) 複製到新伺服器,只需備份文件即可。您也不需要重新創建數據庫。數據庫、數據庫文件和日誌文件都將在還原過程中創建。升級過程由 SQL Server 在還原數據庫備份時完成。

這是我使用的方法:

在 SQL Server 2000 上

  1. 執行數據庫的完整備份
  2. 執行數據庫的日誌備份“擷取自上次事務日誌備份以來寫入的事務日誌記錄”。如果您不希望人們在完成後訪問數據庫,請考慮使用 WITH NORECOVERY 選項。
  3. 將完整的數據庫和日誌備份文件複製到具有 SQL Server 2005 的伺服器

在 SQL Server 2005 上

  1. 使用 NORECOVERY 恢復完整備份確保您更改了文章中提到的目錄。
  2. 使用 RECOVERY 恢復日誌備份

一旦數據庫在新伺服器上恢復。我在新的查詢視窗中執行以下命令

  1. USE [mydb]
  2. sp_updatestats -- updates statistics 這是因為在升級過程中不會自動更新統計資訊。
  3. DBCC CHECKDB WITH DATA_PURITY

導致 DBCC CHECKDB 檢查數據庫中是否存在無效或超出範圍的列值。從 SQL Server 2000 升級到 2005 或 2008 時,這一點很重要。

將數據庫使用者與登錄名相關聯

現在您的數據庫已經恢復,您需要將其孤立使用者與實際登錄相關聯。

方法 A:修復孤立使用者

  1. EXEC sp_change_users_login 'Report'– 查找孤立使用者
  2. 如果登錄已經存在,您可以將孤立使用者與登錄相關聯。否則,您可以創建登錄

– 存在登錄

EXEC sp_change_users_login 'Auto_Fix', 'user' 

– 登錄不存在

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'

方法 B:sp_help_revlogin

您還有一個名為 sp_help_revlogin 的替代方法,它不僅可以幫助您恢復登錄名,還可以幫助您恢復隨之而來的原始密碼。

http://support.microsoft.com/kb/246133/en-us

它本質上需要在您的舊伺服器上創建一個儲存過程來生成一個腳本,該腳本將輸出您現有的所有登錄資訊。然後將該儲存過程的輸出複製到新伺服器並恢復與您恢復的數據庫關聯的登錄名。

就像克雷格回答的附錄一樣:

引用自:https://dba.stackexchange.com/questions/9649