Sql-Server

將數據庫移動到新伺服器

  • August 22, 2017

我的數據庫伺服器正在停止工作。我們有一個新的數據庫伺服器來代替它。兩台伺服器具有相同的作業系統和 SQL Server 2008。我需要將所有數據庫和數據移至新伺服器。

這樣做以確保盡可能少的問題的最佳方法是什麼?

我的數據不僅僅是表、視圖和儲存過程。還有幾個 SQL Server 代理作業和幾個數據庫維護計劃和計劃備份。

該系統在晚上不使用,所以如果需要,我有一個深夜機會讓數據庫離線。

我可以將MSSQL目錄複製到新伺服器嗎?或者我應該單獨備份每個數據庫?如果我備份每個數據庫,我是否也應該備份系統數據庫(如mastermodelmsdb)?

進行備份和恢復將是複制所有使用者數據庫的好方法。

  1. 在源伺服器上備份 DB。
  2. 將備份文件複製到目標伺服器
  3. 然後將 DB 恢復到目標伺服器上。

系統數據庫有點不同。按照此連結獲取一種可能的方式。再說一次,這取決於您需要從系統表中獲得什麼。master 包含您的 SQL 登錄名,您可以編寫腳本。這是一個用於編寫登錄腳本的連結

我認為不需要(在遷移伺服器時也不這樣做)在目標伺服器上恢復主數據庫(或系統數據庫) - 除非您試圖實現您在問題中未提及的事情。

我發現使用sp_help_revlogin將登錄名從一台伺服器移動到另一台伺服器很容易。

因此您的遷移步驟如下所示: Server A = Old server ; 伺服器 B 是新伺服器。

  • 腳本從伺服器 A 登錄。
  • 從伺服器 A 編寫作業腳本。
  • 將數據庫從伺服器 A 備份和還原到伺服器 B。
  • 重新創建從伺服器 A 到伺服器 B 的腳本登錄登錄。
  • 同步孤立使用者(如果有)。
  • 重新創建從伺服器 A 到伺服器 B 的腳本作業。如果有的話,請確保移動包。
  • 更改兼容性級別(如果從較低版本移動到較高版本 -您不需要此步驟,因為您的情況下 sql server 版本相同!!)。
  • 執行 DBCC UPDATEUSAGE
  • 使用全掃描更新所有表的統計資訊
  • 跑步DBCC CHECKDB ('<db_name_goes_here>' ) WITH ALL_ERRORMSGS,NO_INFOMSGS, DATA_PURITY

您可以在https://dba.stackexchange.com/a/41179/8783參考我的腳本(確保您執行備份還原而不是分離/附加方法- 現在學會了!!)。

注意:我在這裡回答了一個類似的問題。

編輯:2017 年 8 月 22 日

遷移數據庫或整個伺服器的更優雅和自動化的方法是使用dbatools ,例如start-dbaigration或其他功能,具體取決於您的需要。

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