案例描述:
SQL Server 2000數(shù)據(jù)庫崩潰后,重裝數(shù)據(jù)庫前的準(zhǔn)備:
1.三個系統(tǒng)庫(master,msdb,model)的完全備份:
2.兩個用戶數(shù)據(jù)庫(user01,user02)的備份(周日的完全備份+除周日外每天的差異備份):
三個系統(tǒng)數(shù)據(jù)庫是早期備份的,之間沒有更新過帳號信息,沒有增減過饕檔鵲取?
兩個用戶數(shù)據(jù)庫在上周日晚做過完全備份(user01.bak和user02.bak)
需求:一次性恢復(fù)到用戶數(shù)據(jù)庫最后一個備份前的狀態(tài)。
下文中,我們將介紹一下常規(guī)的恢復(fù)過程:
1. 備份可用的數(shù)據(jù), 包含所有系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件(*.mdf/ldf/ndf)
2. 卸載原來的安裝
3. 系統(tǒng)表查找和刪除所有的MSSQLServer項
4. 磁盤上刪除安裝SQL SErver產(chǎn)生的所有文件
5. 重新安裝SQL Server,所需安裝的補丁的版本要求保持與備份系統(tǒng)數(shù)據(jù)庫時安裝的補丁版本一致
6. 單用戶模式下恢復(fù)master數(shù)據(jù)庫
7. 恢復(fù)其他系統(tǒng)數(shù)據(jù)庫
8. 恢復(fù)用戶數(shù)據(jù)庫
此外,我們還可以嘗試用下面的方法:
假如你的時間比較充裕,而且想盡量恢復(fù)數(shù)據(jù)到最近的時間點, 可以在上述步驟中做以下的嘗試:
1. 首先,將第6,7兩個步驟改為:
a. 停止MSSQL服務(wù)
b. 用步驟1備份的系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件替換安裝后生成的系統(tǒng)數(shù)據(jù)庫的對應(yīng)文件
c. 建立與SQL Server系統(tǒng)崩潰之前一樣的用戶數(shù)據(jù)庫的存放目錄, 并且把用戶數(shù)據(jù)庫文件按原來的位置存放
d. 啟動MSSQL服務(wù)
e. 如果MSSQL服務(wù)成功, 在企業(yè)管理看看用戶數(shù)據(jù)庫有沒有置疑, 如果沒有置疑, 則其他操作都不用做了, 數(shù)據(jù)已經(jīng)恢復(fù)
注意事項:
在具體操作以上的步驟b之前, 先備份準(zhǔn)備覆蓋的文件。
2. 如果步驟1的嘗試不成功, 則再做下面的嘗試, 把步驟8修改為下面的:
a. 停止MSSQL服務(wù)
b. 用備份的文件還原被覆蓋的文件
c. 嘗試用附加的方式恢復(fù)用戶數(shù)據(jù)庫
d. 如果成功, 則修復(fù)各用戶數(shù)據(jù)庫中的孤立用戶
恢復(fù)過程會涉及到的一些具體處理
1. 恢復(fù)系統(tǒng)數(shù)據(jù)庫:
在SQL Server數(shù)據(jù)庫中,系統(tǒng)信息存儲在系統(tǒng)數(shù)據(jù)庫中,主要的系統(tǒng)數(shù)據(jù)庫包括:
master-從整體上控制用戶數(shù)據(jù)庫和SQL Server操作,在創(chuàng)建了任何用戶定義的對象后,都要備份它
model-為新數(shù)據(jù)庫提供模版和原型
msdb-包含了有關(guān)作業(yè)、報警及操作員等信息
假如包含系統(tǒng)數(shù)據(jù)庫的介質(zhì)已經(jīng)改變,則必須重建系統(tǒng)數(shù)據(jù)庫,如果你目前仍然可以啟動SQL Server服務(wù),則可以通過RESTORE語句從系統(tǒng)數(shù)據(jù)庫的備份中恢復(fù)數(shù)據(jù)庫。
如果master壞了,不能啟動系統(tǒng),可以按照下面步驟進(jìn)行恢復(fù)
(1)重建系統(tǒng)數(shù)據(jù)庫 運行c:\mssql7\binn\rebuildm.exe,按照提示進(jìn)行即可,
過程中需要系統(tǒng)數(shù)據(jù)庫樣本的路徑,可在安裝光盤中找到;
(2)重建系統(tǒng)數(shù)據(jù)庫后,啟動SQL Server服務(wù),用系統(tǒng)數(shù)據(jù)庫的備份恢復(fù)數(shù)據(jù)庫
就行了通常恢復(fù)順序為master->msdb->model
在恢復(fù)master的備份時要注意:必須在單用戶(single user)模式下進(jìn)行
進(jìn)入單用戶模式的方法:
a. 在命令行模式下輸入:sqlservr -c -f -m或者輸入sqlservr -m
其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務(wù)啟動
-f 用最小配置啟動SQL Server
-m 單用戶模式啟動SQL Server
b. 可以在控制面板-服務(wù)-MSSQLServer的啟動參數(shù)中輸入-c -f -m或者輸入-m,點擊開始
(3)進(jìn)行master數(shù)據(jù)庫的恢復(fù)
a. 直接進(jìn)入查詢分析器,有個提示不要理會它
輸入恢復(fù)語句進(jìn)行數(shù)據(jù)庫恢復(fù):
RESTORE DATABASE master from disk='c:\具體的備份文件名'
b. 或者用這個,在命令提示符下輸入,注意大小寫
使用"windows身份驗證"的,輸入:isql /E