mssql數(shù)據庫系統(tǒng)崩潰后的一般處理步驟與方法
發(fā)布日期:2022-02-04 11:35 | 文章來源:腳本之家
情況描述:
SQLServer2000崩潰,重新安裝數(shù)據庫。
有以下準備:
1,三個系統(tǒng)庫(master,msdb,model)的完全備份:
2兩個用戶數(shù)據庫(user01,user02)的備份(周日的完全備份+除周日外每天的差異備份):
三個系統(tǒng)數(shù)據庫是早期備份的,之間沒有更新過帳號信息,沒有增減過作業(yè)等等。
兩個用戶數(shù)據庫在上周日晚做過完全備份(user01.bak和user02.bak)
準備重新安裝數(shù)據庫,希望能一次性恢復到用戶數(shù)據庫最后一個備份前的狀態(tài)。
常規(guī)恢復過程大致如下
1.備份可用的數(shù)據,包含所有系統(tǒng)數(shù)據庫和用戶數(shù)據庫的數(shù)據文件和日志文件(*.mdf/ldf/ndf)
2.卸載原來的安裝
3.系統(tǒng)表查找和刪除所有的MSSQLServer項
4.磁盤上刪除安裝SQLSErver產生的所有文件
5.重新安裝SQLServer,所需安裝的補丁的版本要求保持與備份系統(tǒng)數(shù)據庫時安裝的補丁版本一致
6.單用戶模式下恢復master數(shù)據庫
7.恢復其他系統(tǒng)數(shù)據庫
8.恢復用戶數(shù)據庫
可以做的嘗試
如果時間比較充分,而且想盡量恢復數(shù)據到最近的時間點,可以在上述步驟中做下面的嘗試
1.把6,7兩步改為:
a.停止MSSQL服務
b.用步驟1備份的系統(tǒng)數(shù)據庫的數(shù)據文件和日志文件替換安裝后生成的系統(tǒng)數(shù)據庫的對應文件
c.建立與SQLServer系統(tǒng)崩潰之前一樣的用戶數(shù)據庫的存放目錄,并且把用戶數(shù)據庫文件按原來的位置存放
d.啟動MSSQL服務
e.如果MSSQL服務成功,在企業(yè)管理看看用戶數(shù)據庫有沒有置疑,如果沒有置疑,則其他操作都不用做了,數(shù)據已經恢復
注意:
在做上面的步驟b之前,先備份準備覆蓋的文件
2.如果步驟1的嘗試不成功,則再做下面的嘗試,把步驟8修改為下面的:
a.停止MSSQL服務
b.用備份的文件還原被覆蓋的文件
c.嘗試用附加的方式恢復用戶數(shù)據庫
d.如果成功,則修復各用戶數(shù)據庫中的孤立用戶
恢復過程會涉及到的一些具體處理
1.恢復系統(tǒng)數(shù)據庫:
在SQLServer數(shù)據庫中,系統(tǒng)信息存儲在系統(tǒng)數(shù)據庫中,主要的系統(tǒng)數(shù)據庫包括:
master-從整體上控制用戶數(shù)據庫和SQLServer操作,在創(chuàng)建了任何用戶定義的對象后,都要備份它
model-為新數(shù)據庫提供模版和原型
msdb-包含了有關作業(yè)、報警及操作員等信息
如果包含系統(tǒng)數(shù)據庫的介質變了,那么必須重建系統(tǒng)數(shù)據庫,如果你仍然可以啟動SQLServer服務,則可以通過RESTORE語句從系統(tǒng)數(shù)據庫的備份中恢復數(shù)據庫。
如果master壞了,不能啟動系統(tǒng),可以按照下面步驟進行恢復
1.重建系統(tǒng)數(shù)據庫運行c:\mssql7\binn\rebuildm.exe,按照提示進行即可,
過程中需要系統(tǒng)數(shù)據庫樣本的路徑,可在安裝光盤中找到;
2重建系統(tǒng)數(shù)據庫后,啟動SQLServer服務,用系統(tǒng)數(shù)據庫的備份恢復數(shù)據庫
就行了通?;謴晚樞驗閙aster->msdb->model
在恢復master的備份時要注意:必須在單用戶(singleuser)模式下進行
進入單用戶模式的方法:
a.在命令行模式下輸入:sqlservr-c-f-m或者輸入sqlservr-m
其中:-c可以縮短啟動時間,SQLServer不作為WindowsNT的服務啟動
-f用最小配置啟動SQLServer
-m單用戶模式啟動SQLServer
b.可以在控制面板-服務-MSSQLServer的啟動參數(shù)中輸入-c-f-m或者輸入-m,點擊開始
3.進行master數(shù)據庫的恢復
a.直接進入查詢分析器,有個提示不要理會它
輸入恢復語句進行數(shù)據庫恢復:
RESTOREDATABASEmasterfromdisk='c:\具體的備份文件名'
b.或者用這個,在命令提示符下輸入,注意大小寫
使用"windows身份驗證"的,輸入:isql/E
使用"sqlserver和windows身份驗證"的,輸入:isql/U"用戶名"/P"密碼"
然后在出現(xiàn)的提示符下輸入(注意1>,2>是提示符):
1>RESTOREDATABASEmasterfromdisk='c:\具體的備份文件名'
2>GO
2.還原數(shù)據庫的具體步驟:
1.恢復最近一次的完整備份
企業(yè)管理器--右鍵"數(shù)據庫"--所有任務--還原數(shù)據庫
--"還原為數(shù)據庫庫"中輸入還原后的數(shù)據庫名,設為:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到數(shù)據庫還原的界面
--"還原備份集",選擇"數(shù)據庫--完全"
--選項--將"移至物理文件名"中的物理文件名修改為你的數(shù)據文件要存放的文件名
--如果要還原的數(shù)據庫已經存在,選擇"在現(xiàn)有數(shù)據庫上強制還原"
--"恢復完成狀態(tài)",選擇"使數(shù)據庫不再運行,但能還原其它事務日志"
--確定
--或用SQL語句:
RESTOREDATABASE數(shù)據庫名
FROMDISK='c:\你的完全備份文件名'
WITHNORECOVERY
2.恢復完全備份后,最近一次的差異備份(如果有的話)
企業(yè)管理器--右鍵"數(shù)據庫"--所有任務--還原數(shù)據庫
--"還原為數(shù)據庫庫"中選擇數(shù)據庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到數(shù)據庫還原的界面
--"還原備份集",選擇"數(shù)據庫--差異"
--"恢復完成狀態(tài)",選擇"使數(shù)據庫不再運行,但能還原其它事務日志"
--確定
--或用SQL語句:
--或用SQL語句:
RESTOREDATABASE數(shù)據庫名
FROMDISK='c:\你的差異備份文件名'
WITHNORECOVERY
3.按時間先后,恢復差異備份后(如果沒有差異備份,則是完全備份)的所有日志備份
企業(yè)管理器--右鍵"數(shù)據庫"--所有任務--還原數(shù)據庫
--"還原為數(shù)據庫庫"中選擇數(shù)據庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到數(shù)據庫還原的界面
--"還原備份集",選擇"事務日志"
--"恢復完成狀態(tài)"
如果是恢復最后一個日志文件,選擇"使數(shù)據庫可以繼續(xù)運行,但無法還原其它事務日志"
否則選擇"使數(shù)據庫不再運行,但能還原其它事務日志"
--確定
--或用SQL語句:
RESTOREDATABASE數(shù)據庫名
FROMDISK='c:\你的日志文件名'
WITHRECOVERY
3.解決孤立用戶:
1.查看某個數(shù)據庫的孤立用戶:
USE庫名
EXECsp_change_users_login'Report'
2.自動修復某個孤立用戶:
USE庫名
EXECsp_change_users_login'Auto_Fix','孤立用戶名',NULL,'密碼'
--密碼指用戶對應的登錄不存在時,系統(tǒng)自動建立登錄,為登錄分配的密碼
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章
關注官方微信