2017年計算機(jī)等考三級網(wǎng)絡(luò)技術(shù)輔導(dǎo):如何重新生成master數(shù)據(jù)庫

字號:

  數(shù)據(jù)庫已經(jīng)成為目前企業(yè)的命脈,DBA的職責(zé)就是防止數(shù)據(jù)庫癱瘓,造成數(shù)據(jù)丟失,或者說在出問題的情況下以最快速度解決問題,使服務(wù)器正常運(yùn)行。備份與還原就是一項關(guān)鍵的步驟了,在我們講述關(guān)于尾部還原和master數(shù)據(jù)庫的還原之前,來一起看一下關(guān)于SQL server 2005備份還原的一些選項。
    同樣的,做一系列備份之前必須完成一次完整備份,完整備份包括對整個數(shù)據(jù)庫,部分事務(wù)日志,數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份,只是這一時刻的。做完完整備份之后,可以選擇差異備份或者事務(wù)日志備份,對相應(yīng)以后新生成的數(shù)據(jù)或者日志進(jìn)行備份。
    在還原的時候,會有簡單恢復(fù)模式,完整恢復(fù)模式,大容量日志恢復(fù)模式三種選擇,如果有大量的數(shù)據(jù)產(chǎn)生,我們一般會選擇大容量事務(wù)日志進(jìn)行操作。
    這些就是關(guān)于SQL server 2005一些備份和還原的選項,那么我們是如何實現(xiàn)SQL server 2005尾部還原的呢?也就是說,當(dāng)我們進(jìn)行完整備份之后,在沒有下一次備份之前數(shù)據(jù)庫損壞,如何還原這之間的數(shù)據(jù)呢?
    本次內(nèi)容我們還是通過動易網(wǎng)站來結(jié)合實際操作,創(chuàng)建好網(wǎng)站之后進(jìn)行備份,之后在網(wǎng)站內(nèi)寫入一些文章或者創(chuàng)建用戶等信息。
    這篇test的文章并沒有備份,那么當(dāng)網(wǎng)站的數(shù)據(jù)庫宕掉之后如何還原,我們首先關(guān)掉服務(wù),刪除網(wǎng)站的數(shù)據(jù)庫,模擬數(shù)據(jù)庫文件損壞。
    在默認(rèn)目錄下找到數(shù)據(jù)庫,注意刪除的是MDF格式的數(shù)據(jù)庫文件不是日志文件。
    沖動服務(wù)打開數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫里已經(jīng)沒有東西了。
    右鍵msater數(shù)據(jù)庫,選擇備份。
    注意這里是通過事務(wù)日志進(jìn)行還原,所以備份一次網(wǎng)站的數(shù)據(jù)庫并選擇事務(wù)日志模式。在左邊的選項卡中選擇選項。
    在事務(wù)日志選項選擇備份日志尾部,并使數(shù)據(jù)庫處于還原狀態(tài)。確定之后可以看到我們的數(shù)據(jù)庫顯示正在還原。
    這時候右鍵數(shù)據(jù)庫選擇還原。
    在選項中需要選中覆蓋現(xiàn)有數(shù)據(jù)庫。確定之后我們就可以完成了尾部的還原。
    那么當(dāng)master數(shù)據(jù)庫損壞的時候,我們根本連接不到數(shù)據(jù)庫時,如何進(jìn)行修復(fù)呢?同樣的關(guān)掉服務(wù)之后刪除master數(shù)據(jù)庫文件,再重新啟動服務(wù)。
    重新啟動服務(wù)之后發(fā)現(xiàn)根本啟動不起來,顯示如此錯誤。
    發(fā)生這樣的錯誤之后,我們將SQL server 2005的光盤放在光驅(qū)中做修復(fù)還原。放入之后打開CMD命令行,進(jìn)入光驅(qū)目錄下。
    輸入這條命令進(jìn)行重新生成master數(shù)據(jù)庫。當(dāng)C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data這個目錄下重新出現(xiàn)master數(shù)據(jù)文件后,再開始做下面的內(nèi)容。
    鍵入之后到C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn目錄下,執(zhí)行sqlservr.exe -c -m命令進(jìn)入單用戶模式。
    下來打開數(shù)據(jù)庫管理器,讓輸入用戶密碼的界面我們選擇取消,然后點擊新建查詢,再次連接。
    在新建查詢中鍵入語句。
    在查詢命令中鍵入上述語句之后,就完成了恢復(fù),關(guān)閉之后啟動服務(wù)就可以正常運(yùn)作了。這里將上述命令復(fù)制到文本中,以免圖片看不清楚。
    
use master
go 
RESTORE DATABASE master
FROM disk='C:\Program Files\Microsoft SQL Server
\MSSQL.1\MSSQL\Backup\master.bak'
with REPLACE
Go
  這樣我們就實現(xiàn)了當(dāng)Master 數(shù)據(jù)庫宕掉之后進(jìn)行恢復(fù)的操作。