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