因為有一次在恢復master數據庫時記得恢復沒有成功,今天特意在本機上做了一次測試,得到的結果一樣,當我備份好master數據庫后,我直接用恢復數據庫來恢復數據庫時,顯示恢復失敗,錯誤提示為“必須以單用戶模式使用restore database”,于是開始找解決辦法,經過本人測試,按照下面的方法操作,可以成功恢復master數據庫。
如果要恢復一已被損壞的master數據庫,則必須要啟動SQL Server的單用戶模式。單用戶模式下僅允許一個系統(tǒng)管理員向SQL Server注冊。這是系統(tǒng)的邏輯限制,必須如此。
有以下幾種辦法進入單用戶模式:
1、可以在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動,-f 用最小配置啟動SQL Server,-m 單用戶模式啟動SQL Server
2、可以在控制面板-管理工具-服務-MSSQLServer的啟動參數中輸入-c -f -m或者輸入-m,點擊啟動。
3、還有一種更靈活的啟動方法:用存在注冊表里的啟動參數啟動:
在MSSQLServer項下添加項SingleUser,具體內容如下所示:
HKEY_LOCAL_MACHINESoftwareMicrosoftMSSQLServerSingleUserParameters
SQLArg0 : REG_SZ : -dC:MSSQL7DATAMASTER.DAT
SQLArg1 : REG_SZ : -eC:MSSQL7LOGERRORLOG
SQLArg2 : REG_SZ : -lC:MSSQL7DATAMASTLOG.DAT
SQLArg3 : REG_SZ : -m
在命令行下輸入SQLServr -c -sSingleUser,注意:必須是在命令行下進入單用戶模式后,啟動Query Analyzer(查詢分析器)執(zhí)行restore語句即可。
恢復數據庫的sql語句:RESTORE DATABASE master from disk='c:\具體的備份文件名'。
在實際操作過程中我使用的是第二種方法,簡單快捷,首先按照路徑打開MSSQLServer服務,然后停止服務,在輸入參數那一欄內輸入“-m”,然后重新啟動服務,然后回到企業(yè)管理器中來恢復master數據庫,ok,恢復成功。
在SQL Server數據庫中,系統(tǒng)信息存儲在系統(tǒng)數據庫中,主要的系統(tǒng)數據庫包括:
master-從整體上控制用戶數據庫和SQL Server操作,在創(chuàng)建了任何用戶定義的對象后,都要備份它
model-為新數據庫提供模版和原型
msdb-包含了有關作業(yè)、報警及操作員等信息
如果包含系統(tǒng)數據庫的介質變了,那么必須重建系統(tǒng)數據庫,如果你仍然可以啟動SQL Server服務,則可以通過RESTORE語句從系統(tǒng)數據庫的備份中恢復數據庫。
如果master壞了,不能啟動系統(tǒng),可以按照下面步驟進行恢復
1.重建系統(tǒng)數據庫 運行c:\mssql7\binn\rebuildm.exe,按照提示即 可,過程中需要系統(tǒng)數據庫樣本的路徑,可在安裝光盤中找到;
2 重建系統(tǒng)數據庫后,啟動SQL Server服務,用系統(tǒng)數據庫的備份恢復數據庫就行了
通常恢復順序為master->msdb->model
在恢復master的備份時要注意:必須在單用戶(single user)模式下進行。按照上面介紹的方式進行就可以。