系統數據庫保存了有關SQL Server 的許多重要數據信息,這些數據的丟失將給系統帶來極為嚴重的後果,所以我們也必須對系統數據庫進行備份。這樣一旦系統或數據庫失敗,則可以通過恢復來重建系統數據庫。在SQL Server 中重要的系統數據庫主要有master、 msdb、 distribution、 model。 雖然tempdb 也是系統數據庫但沒有必要對其進行備份,因為SQL Server 每次啟動都會重新創建該數據庫,而當SQL Server 停止運行時,tempdb 數據庫中所有數據都會被自動清除。在本節我們主要討論master 數據庫的備份和恢復問題。
備份master 數據庫與備份用戶數據庫一樣,只要數據庫狀態發生變化我們就要通過備份來保存這些變化以防止一旦系統失。敗而導致數據丟失以下情況的發生往往要求我們立即對master 數據庫進行備份。
增加或刪除用戶數據庫。但是如果增加或刪除文件或文件組,或用戶數據庫自動增加來容納新添加的數據,這些操作並不對master 數據庫產生影響,所以此時不必對其進行備份;
創建新的登錄或執行與登錄有關的操作,但是增加數據庫用戶並不影響master 數據庫;
創建或刪除備份設備;
為了進行分布式查詢或遠程過程調用而對數據庫服務器進行配置,如增加連接服務器或遠程登錄等。
對master 數據庫,我們常進行完全數據庫備份。而恢復master 數據庫,卻有兩種途徑:或是使用master 數據庫當前備份,或是執行Rebuild Master Utility 來重建master 數據庫。如果master 數據庫遭到的損壞還不足以使SQL Server 無法啟動,我們可以使用master 數據庫的當前備份來執行恢復;如果master 遭到嚴重破壞,SQL Server 無法啟動,或者master 數據庫的當前備份也不能使用,我們則必須執行Rebuild Master Utility 來重建master 數據庫(此時master 數據庫中的所有以前的數據都將丟失),然後再使用備份來進行恢復(如果master 的備份可以使用)。
使用Rebuild Master Utility 來重建master 主要執行以下步驟:
(1) 關掉SQL Server, 然後運行位於 Microsoft SQL Server80 oolsBinn 下的Rebuildem.exe 文件,出現Rebuild Master 對話框。如圖15-17 所示。
(2)單擊Browse 按鈕來浏覽包括Data 文件的源目錄。
(3)單擊Setting 按鈕出現Collation Setting 對話框,如圖15-18 所示。
(4)單擊Rebuild 按鈕重建Master 數據庫。
重建master 數據庫只是整個恢復工作的開始,然後要裝入master 數據庫的備份。如果備份不可用,則要重新創建任何必要的備份設備,接著恢復msdb model distribution 數據庫以及用戶數據庫。對於那些在master 數據庫最近的備份後所創建的數據庫來說,如果其存在備份,則使用備份進行恢復,如果不存在,只能通過重新連接數據庫文件(數據和日志文件)來重新恢復數據庫。
在SQL Server 中,我們可以拆開數據庫的數據文件和事務日志文件,然後將它們重新連接到另外的服務器或同一個服務器。拆開數據庫就是將數據庫從SQL Server 中刪除,但是保持數據和事務日志文件的完整性。然後事務日志和數據文件可在任何運行 SQL Server 的服務器上被重新連接成該數據庫。因此當您准備把數據庫從一台機器移到另外的機器上但不重新創建數據庫,或者將數據庫移到另外的磁盤上您會發現數據庫的拆分和連接是很有用處的。
本章小結
本章主要討論數據庫備份和恢復的相關問題。重點應了解各種不同數據庫備份方法的異同點,學會根據不同實際情況制定相應的備份和恢復策略。了解備份設備的創建方法以及如何使用SQL Server Enterprise Manager 和BACKUP、 RESTORE 命令備份或恢復數據庫。