復原SQL Server系統資料庫(模型、主資料庫等)的重要性是什麼?

復原SQL Server系統資料庫(模型、主資料庫等)的重要性是什麼?

我必須將一些生產資料庫還原到同一台 Microsoft SQL Server 2005 電腦上的不同磁碟機。效果很好,使用資料庫的應用程式重新上線。

但是,我還沒有恢復 SQL Server 自己建立的系統(或預設?)資料庫(模型、主資料庫等)。我的問題是,這些資料庫的作用是什麼?恢復它們有多重要?

答案1

master 和 msdb 儲存包含定義整個系統的流程、函數、表格、視圖和其他物件。例如,master 包含登入的資訊、資料庫檔案所在的位置、系統預存程序以及許多其他內容等資訊。 msdb 最初主要是關於作業、警報的。多年來,dbmail 設定資訊和許多其他內容已被添加。

模型是一種範例資料庫,當您建立新資料庫時,它充當起點。模型中的物件將被複製到新資料庫中。人們過去常常更頻繁地利用這種行為(例如 10 或 15 年前),因此他們可以在他們創建的每個資料庫中包含特定的流程或表,但這有其問題並且已被廢棄。但是,有點像附錄,模型並不是很重要,但你仍然需要它。

tempdb 是一個資料庫,它為臨時表(#sometablename 和 ##someothertablename)、表變數(如果它們足夠大)、排序操作和分組操作(如 GROUP BY 或 DISTINCT)以及可能其他更神秘的東西提供臨時儲存。通常,您永遠不會恢復臨時資料庫。每次重新啟動伺服器時,它都會從頭開始重建。

最近版本的 SQL Server 有另一個隱藏的系統資料庫,稱為「資源資料庫」。你永遠不應該有任何理由去修改它。

如果您想知道,「pubs」、Adventurworks 和 AdventureworksDW 不是系統資料庫,它們只是用作範例的常規使用者資料庫,並且可以將它們刪除而不影響伺服器行為。

系統資料庫通常僅在發生某種災難性故障(例如磁碟崩潰或資料中心燒毀)時才會恢復。如果您要從一台伺服器遷移到另一台伺服器並且需要保留登入名稱、作業、dbmail 和其他配置(儘管還有其他可能更好的方法可以做到這一點),您也可以還原系統資料庫。

您想要備份 master、model 和 msdb。您不需要備份資源資料庫或 tempdb。如果您的工作職能之一是“dba”,那麼最好檢查一下您可能需要執行哪些操作才能恢復這些資料庫(MSKB 文章中對此進行了記錄),因為恢復系統資料庫比恢復使用者資料庫更複雜。當您確實處於緊急情況時,您不想第一次閱讀這些知識庫文章。

恢復用戶資料庫時,不需要恢復系統資料庫。恢復使用者資料庫的問題是您需要確保資料庫中描述的使用者與伺服器的登入名稱(儲存在主資料庫中)相符。這就是 sp_change_users_login 系統過程的用途。

相關內容