Sql-Server

將所有數據庫從一個 SQL Server 2005 遷移到另一個

  • October 1, 2014

我們有一個生產 SQL Server 2005 伺服器,我們在其上託管 200 個數據庫。

我們想在我們的新伺服器上託管這些數據庫。在新伺服器上安裝了 SQL Server 2005 並準備就緒。

我想知道遷移整個數據的最好和最方便的方法包括:

  • 安全和許可
  • 使用者和會員
  • 所有的數據庫和..

總之,我希望在新伺服器上的新實例上擁有與目前 SQL Server 2005 完全相同的副本。

如果您在此案上指導我,我將不勝感激。

最好的祝福

免責聲明:SQL Server 2005 不在主流支持範圍內。- 對 sp4 的擴展支持將於 2016 年 4 月 12 日結束

遷移總是有停機時間。因此,根據您的停機時間,您可以進行設置:

  1. Logshipping (我使用過這種方法,它大大減少了停機時間)

一種。像往常一樣設置從源伺服器到目標伺服器的日誌傳送。保持同步時間 1 分鐘(最短)。

灣。在遷移當天,確保日誌備份是同步的。

C。停止所有日誌傳送作業,然後進行最後的尾日誌備份,並將主數據庫置於無恢復模式(以防萬一您需要返回主數據庫)。

d。恢復輔助數據庫上的尾日誌備份,with recovery使所有輔助數據庫聯機。 2. 數據庫鏡像:我不建議為遷移 200 個數據庫進行鏡像,因為您很容易耗盡工作執行緒,如本知識庫文章中所述。. 如果數據庫較少,那麼這將是一個可行的選擇。

如果您有足夠的停機時間,那麼我會推薦

備份/恢復方法(而不是分離/附加)好像出了問題,你至少有一個很好的備份來恢復。腳本將幫助您開始移動所有登錄名和數據庫。只需修改它以使用備份/恢復(或在執行腳本之前進行完整備份 - 因為它使用分離/附加方法)。

遷移前您可以做的事情:

  • 有關遷移步驟,請參閱答案。有些也可能適用於您的場景。
  • 編寫所有作業/ ssis 包等的腳本——或者——正如@shanky 所建議的那樣,您可以事先將系統數據庫從舊伺服器恢復到新伺服器——這將為您提供所有登錄名、作業等新伺服器。
  • 在新伺服器上打開即時文件初始化。
  • 有多個大小相等的tempdb 數據文件。
  • 啟用跟踪標誌 1118 - 通過避免 SGAM 和其他分配爭用點來幫助 TEMPDB 可擴展性。
  • 正確配置最大和最小記憶體。尤其是 Max memory 遠離預設值。
  • 適當調整 MAXDOP 設置。有關詳細資訊,請參閱https://dba.stackexchange.com/a/36578/8783
  • 最好是從 Brent Ozar 安裝 sp_Blitz 執行它並解決它報告的關鍵和高優先級問題。
  • 您甚至可以使用來自 kendalvandyke 的 SQL Power Doc - SQL Power Doc 適用於從**SQL** Server 2000到 2012 的所有 SQL Server 版本,以及從 Windows 2000 和 Windows XP 到 Windows Server 2012 和 Windows 的所有版本的 Windows Server 和消費者 Windows 作業系統8. 對規劃升級也很有用 - 查看實例上正在使用哪些隱藏功能。

編輯:

您可以使用powershell將所有數據庫從一台伺服器遷移到另一台伺服器,如使用 PowerShell 遷移整個 SQL Server 實例(數據庫、登錄名、作業等)中所述

通過備份和恢復或分離和附加來遷移具有簡單或複雜文件結構的數據庫。還使用密碼、SID、伺服器和數據庫權限集、伺服器和數據庫角色、伺服器配置設置、SQL 代理對象、系統數據庫中的使用者對象遷移使用者。

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