2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
遇到損壞或者錯(cuò)誤的master數(shù)據(jù)庫是最難解決情況之一。Master數(shù)據(jù)庫包含了SQL Server需要的關(guān)鍵信息。如果master數(shù)據(jù)庫出錯(cuò),那么SQL Server就不能啟動(dòng)。要在這種情況下還原master數(shù)據(jù)庫,可以按照下面這些步驟來從災(zāi)難中恢復(fù)過來:
1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目錄下的rebuidm.exe文件重建master數(shù)據(jù)庫。重建master數(shù)據(jù)庫可以使你的數(shù)據(jù)庫文件完整無缺。為以防萬一,經(jīng)常把數(shù)據(jù)和日志文件備份到一個(gè)單獨(dú)的目錄是個(gè)不錯(cuò)的主意。
2. 使用-m參數(shù)啟動(dòng)SQL Server,這樣可以以單用戶模式重新啟動(dòng)SQL Server。
3. 從最近一次已知最好的備份來還原master數(shù)據(jù)庫。
4. 核實(shí)master數(shù)據(jù)庫是不是已經(jīng)成功還原:確認(rèn)所有數(shù)據(jù)庫都已恢復(fù)正常運(yùn)行。從最近一次已知最好的備份來還原msdb數(shù)據(jù)庫。
5. 以普通模式停止和啟動(dòng)SQL Server。
6. 向生產(chǎn)用戶開放數(shù)據(jù)庫。
如果這樣做沒有效,那么重建master數(shù)據(jù)庫然后附加這個(gè)數(shù)據(jù)庫。這也是DBA的任務(wù)之一,當(dāng)然你并不希望經(jīng)常這樣做。如果master數(shù)據(jù)庫出現(xiàn)問題,那么服務(wù)器上所有的數(shù)據(jù)庫都會(huì)出現(xiàn)問題。
總的來說,恢復(fù)時(shí)要完成的第一個(gè)步驟就是安裝一個(gè)新的master數(shù)據(jù)庫,使服務(wù)器至少能夠啟動(dòng)。在此基礎(chǔ)上,就可以還原真正的master數(shù)據(jù)庫了。雙擊了rebuildm.exe之后,將啟動(dòng)rebuild master實(shí)用程序,它需要三個(gè)參數(shù):
① 要恢復(fù)的服務(wù)器名稱。
② Master數(shù)據(jù)庫在原來的安裝程序中的位置,如果SQL Server的版本為SP2,這個(gè)位置應(yīng)當(dāng)是安裝CD的x86\data目錄(在更早的版本中,由于存在程序錯(cuò)誤,有可能需要將這個(gè)data目錄拷貝到硬盤驅(qū)動(dòng)器或者網(wǎng)絡(luò)驅(qū)動(dòng)器上)。
③ 服務(wù)器的排序規(guī)則。
這個(gè)重建過程將會(huì)重新創(chuàng)建全部四個(gè)系統(tǒng)數(shù)據(jù)庫以及Northwind和Pubs,接著對(duì)服務(wù)器進(jìn)行配置。整個(gè)重建過程大約需要數(shù)分鐘,如果以前使用service pack對(duì)服務(wù)器進(jìn)行了升級(jí),將有可能花費(fèi)更長(zhǎng)時(shí)間。
恢復(fù)過程的第二個(gè)步驟是使用服務(wù)器管理或者企業(yè)管理器來啟動(dòng)服務(wù)器。
依賴于你的安全性配置,企業(yè)管理器很有可能沒有連接到服務(wù)器的權(quán)限。重建master數(shù)據(jù)庫將會(huì)丟掉除了sa以外的所有用戶登錄,并把sa的空口令重置為空。如果要調(diào)整企業(yè)管理器的連接配置,以便作為sa以空口令連接到服務(wù)器,可以編輯SQL Server的注冊(cè)屬性。不要擔(dān)心sa的空口令,因?yàn)槲覀兒芸炀蜁?huì)恢復(fù)真正的master數(shù)據(jù)庫。
一旦服務(wù)器再次運(yùn)行,你就會(huì)發(fā)現(xiàn)所有的用戶數(shù)據(jù)庫都不見了,因?yàn)橹亟ǖ膍aster數(shù)據(jù)庫沒有包含有關(guān)這些用戶數(shù)據(jù)庫的信息。
恢復(fù)過程的第三個(gè)步驟就是將服務(wù)器置于單用戶模式,以便還原master數(shù)據(jù)庫。在企業(yè)管理器中,要完成以下步驟:
① 選擇服務(wù)器。
② 使用右鍵單擊它,并從彈出的快捷方式菜單中選擇“屬性”菜單項(xiàng),打開“服務(wù)器屬性”對(duì)話框。
③ 單擊“啟動(dòng)參數(shù)”按鈕。
④ 在“參數(shù)”文本框中輸入-m,然后按下“添加”按鈕。
⑤ 按下“確定”按鈕關(guān)閉“啟動(dòng)參數(shù)”對(duì)話框,然后關(guān)閉“服務(wù)器屬性”對(duì)話框。
⑥ 關(guān)閉企業(yè)管理器。
警告:在SQL Server實(shí)例處于單用戶模式時(shí),不要使用企業(yè)管理器。這樣做有可能會(huì)鎖定該實(shí)例,使它進(jìn)入不能接受其他連接的狀態(tài)。
⑦ 使用SQL Server服務(wù)器管理器停止并重新啟動(dòng)SQL Server實(shí)例。
恢復(fù)損壞的master數(shù)據(jù)庫的第四個(gè)步驟才是進(jìn)行真正的還原。因?yàn)镾QL Server現(xiàn)在處于單用戶模式,所以必須使用查詢分析器來完成這一步驟。如果試圖在企業(yè)管理器中還原master數(shù)據(jù)庫,將會(huì)產(chǎn)生嚴(yán)重的問題。在查詢分析器中進(jìn)行還原時(shí),需要執(zhí)行下面的命令:
RESTORE DATABASE master
FROM
DISK=’systembackup’
WITH FILE=1
執(zhí)行結(jié)果如下:
The master database has been successfully restored.
Shutting down SQL Server.
SQL Server is terminating this process.
關(guān)閉查詢分析器,并使用SQL Server的服務(wù)管理器重新啟動(dòng)SQL Server實(shí)例。
還原master數(shù)據(jù)庫的最后一步是把在第三個(gè)步驟加入的-m啟動(dòng)參數(shù)去掉,將SQL Server實(shí)例重新置于多用戶狀態(tài)。要修改這個(gè)啟動(dòng)參數(shù),可以使用企業(yè)管理器的“服務(wù)器屬性”對(duì)話框。
關(guān)閉企業(yè)管理器,使用SQL Server的服務(wù)管理器停止并重新啟動(dòng)SQL Server實(shí)例。

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
你是咋刪的呢。。特意進(jìn)入DAC操作嗎
確實(shí)沒有備份文件的話只能通過安裝文件進(jìn)行重建
要重新生成 master 數(shù)據(jù)庫請(qǐng)使用 setup.exe ,在cmd中執(zhí)行
Start /wait up.exe /qn INSTANCENAME= REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD= 例:start /wait e:\up.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=abc123@!@ 注:INSTANCENAME:指定例子名默認(rèn)例子則用mssqlserver表示 REINSTALL:指定引擎 SAPWD:強(qiáng)密碼 Setup.exe:指定光盤1中根目錄下文件 /qn 開關(guān)用于取消所有安裝對(duì)話框和消息如果指定 /qn 開關(guān)則所有安裝消息(包括消息)都將寫入安裝日志文件 有關(guān)日志文件詳細(xì)信息請(qǐng)參閱如何查看 SQL Server 安裝日志文件 指定 /qb 開關(guān)將顯示基本安裝對(duì)話框還會(huì)顯示消息
- 2 回答
- 0 關(guān)注
- 859 瀏覽
添加回答
舉報(bào)