SQL2005數(shù)據(jù)庫(kù)無(wú)法附加或出現(xiàn)置疑時(shí)的修復(fù)方法
文章出處:http://www.sgrivertours.com 作者:興邦開(kāi)發(fā)部 人氣: 發(fā)表時(shí)間:2016年12月13日
注:本實(shí)例以zxk數(shù)據(jù)庫(kù)被置疑做演示,
1、停止數(shù)據(jù)庫(kù)服務(wù):打開(kāi)SQL2005企業(yè)管理器,在服務(wù)器上點(diǎn)擊鼠標(biāo)右鍵,然后用左鍵點(diǎn)擊“停止”菜單,停止SQL Server服務(wù)
2、數(shù)據(jù)庫(kù)備份:將原數(shù)據(jù)庫(kù)zxk文件拷貝至其它盤(pán)符進(jìn)行備份。如:將“D:\data”目錄下的*.mdf和*.ldf拷貝至E盤(pán)或者直接將D盤(pán)下的data文件夾拷貝至E盤(pán)。
3、重啟數(shù)據(jù)庫(kù)服務(wù):在服務(wù)器上點(diǎn)擊鼠標(biāo)右鍵,然后用左鍵點(diǎn)擊“啟動(dòng)”菜單,重新啟動(dòng)SQL Server服務(wù)
5、新建數(shù)據(jù)庫(kù):鼠標(biāo)右擊數(shù)據(jù)庫(kù)在彈出的菜單中選擇“新建數(shù)據(jù)庫(kù)”,新建一個(gè)任意名稱(chēng)的數(shù)據(jù)庫(kù)如JYPACS_US
6、替換數(shù)據(jù)庫(kù)文件:先停止數(shù)據(jù)庫(kù)服務(wù)(方法見(jiàn)步驟1),然后將E盤(pán)備份的數(shù)據(jù)庫(kù)zxk原文件修改成JYPACS_US數(shù)據(jù)庫(kù)名稱(chēng),并復(fù)制粘貼至原目錄下替換新文件。如:將“E:\data”目錄下的*.mdf和*.ldf文件復(fù)制粘貼至“D:\data”目錄下替換。
7、重啟數(shù)據(jù)庫(kù)服務(wù):重啟SQL Server服務(wù)(方法見(jiàn)步驟3),,然后刷新數(shù)據(jù)庫(kù),此時(shí)可見(jiàn)數(shù)據(jù)庫(kù)處于可疑或無(wú)法使用的狀態(tài)。
8、設(shè)置緊急狀態(tài):在可疑的數(shù)據(jù)庫(kù)上點(diǎn)擊右鍵,然后用左鍵選擇“新建查詢”菜單,打開(kāi)SQL Server的查詢分析器,在命令串口中輸入
alter database jypacs_us set emergency
然后按F5鍵或者點(diǎn)擊執(zhí)行按鈕,將數(shù)據(jù)庫(kù)置為可疑模式。
9、設(shè)置單用戶模式:將SQL語(yǔ)句修改為
alter database jypacs_us set single_user
然后執(zhí)行命令,將數(shù)據(jù)庫(kù)置為單用戶模式。
10、重建日志:清空命令窗口,然后輸入
dbcc checkdb('jypacs_us',REPAIR_ALLOW_DATA_LOSS)
這個(gè)時(shí)間比較長(zhǎng)。耐心等待!
如果有錯(cuò)誤提示,再運(yùn)行:
dbcc checkdb('jypacs_us',REPAIR_REBUILD)
進(jìn)行修復(fù)。如果沒(méi)有錯(cuò)誤,可以跳過(guò)。
11、恢復(fù)多用戶模式:清空命令窗口然后輸入
alter database jypacs_us set multi_user
并執(zhí)行,將數(shù)據(jù)庫(kù)恢復(fù)為多用戶模式。
刷新數(shù)據(jù)庫(kù),此時(shí)會(huì)看到數(shù)據(jù)庫(kù)已恢復(fù)正常。這時(shí)候數(shù)據(jù)庫(kù)JYPACS_US中的數(shù)據(jù)基本上和被質(zhì)疑中心庫(kù)中的數(shù)據(jù)基本一致,但不排除數(shù)據(jù)丟失,在使用前一定要核對(duì)下數(shù)據(jù)庫(kù)中相應(yīng)的數(shù)據(jù)。無(wú)誤后可以將JYPACS_US代替中心庫(kù)zxk使用