了解最新公司動(dòng)態(tài)及行業(yè)資訊
工作日數(shù)據(jù)-供參考
備份數(shù)據(jù)庫(kù)有兩種方式,一種是備份數(shù)據(jù)庫(kù)文件,另一種是直接拷貝數(shù)據(jù)庫(kù)文件mdf和日志文件ldf。下面將主要討論后者的備份和恢復(fù)。本文假設(shè)您熟練使用(企業(yè)管理器)和呃(查詢分析器)
1、普通備份和SQL數(shù)據(jù)庫(kù)恢復(fù)方法
在普通模式下,當(dāng)我們要備份數(shù)據(jù)庫(kù)時(shí),必須先斷開數(shù)據(jù)庫(kù)與正在運(yùn)行的數(shù)據(jù)服務(wù)器的連接,或者停止整個(gè)數(shù)據(jù)庫(kù)服務(wù)器,然后再?gòu)?fù)制文件。
刪除數(shù)據(jù)庫(kù)的命令:數(shù)據(jù)庫(kù)名稱
連接數(shù)據(jù)庫(kù)的命令:或e_db
[@=]′′,[@=]′′[,...16]
e_db[@=]′′,[@=]′′
使用此方法可以正確恢復(fù).0和.0的數(shù)據(jù)庫(kù)文件。重點(diǎn)是備份的時(shí)候mdf和ldf文件都要備份。 mdf文件為數(shù)據(jù)庫(kù)數(shù)據(jù)文件,ldf為數(shù)據(jù)庫(kù)日志文件。
例子:
假設(shè)數(shù)據(jù)庫(kù)是test,它的數(shù)據(jù)文件是.mdf,它的日志文件是.ldf。讓我們討論如何備份和恢復(fù)數(shù)據(jù)庫(kù)。
卸載數(shù)據(jù)庫(kù):'test'
連接數(shù)據(jù)庫(kù):'test','C:\MSSQLData.mdf','C:\MSSQLData.ldf'
e_db'test','C:\MSSQLData.mdf'
2、只有 mdf 文件的恢復(fù)技術(shù)
由于種種原因,如果我們當(dāng)時(shí)只備份mdf文件,恢復(fù)起來會(huì)很麻煩。
如果你的mdf文件是當(dāng)前數(shù)據(jù)庫(kù)生成的,那么幸運(yùn)的是,也許你可以使用or e_db來恢復(fù)數(shù)據(jù)庫(kù),但是會(huì)出現(xiàn)類似下面的提示信息
設(shè)備激活錯(cuò)誤。物理文件名 'C:\MSSQLdata.LDF' 可能有誤。
已創(chuàng)建名為“C:\MSSQLData.LDF”的新日志文件。
但是,如果您的數(shù)據(jù)庫(kù)文件是從另一臺(tái)計(jì)算機(jī)上復(fù)制的,那么很遺憾,上述解決方案可能不起作用。您可能會(huì)收到類似于以下的錯(cuò)誤消息
服務(wù)器:消息 1813武漢數(shù)據(jù)恢復(fù),級(jí)別 16,狀態(tài) 2,第 1 行
無(wú)法打開新數(shù)據(jù)庫(kù)“測(cè)試”。將終止。
設(shè)備激活錯(cuò)誤。物理文件名 'd:.LDF' 可能有誤。
怎么辦?不用擔(dān)心,這里有一個(gè)如何恢復(fù)的示例。
A.我們使用默認(rèn)的方法創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)(例如test)進(jìn)行恢復(fù)??梢詢?nèi)建。
B.停止數(shù)據(jù)庫(kù)服務(wù)器。
C.刪除剛剛生成的數(shù)據(jù)庫(kù)的日志文件.ldf,用要恢復(fù)的數(shù)據(jù)庫(kù)mdf文件覆蓋剛剛生成的數(shù)據(jù)庫(kù)數(shù)據(jù)文件.mdf。
D.啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器。此時(shí),您將看到數(shù)據(jù)庫(kù)測(cè)試的狀態(tài)為“可疑”。目前無(wú)法對(duì)該數(shù)據(jù)庫(kù)執(zhí)行任何操作。
E.設(shè)置數(shù)據(jù)庫(kù)允許直接操作系統(tǒng)表。對(duì)于此操作,可以選擇其中的數(shù)據(jù)庫(kù)服務(wù)器,右鍵單擊,選擇“屬性”,在“服務(wù)器設(shè)置”頁(yè)面中選擇“允許直接修改系統(tǒng)目錄”。也可以使用下面的語(yǔ)句來實(shí)現(xiàn)。
去
'',1
去
想法
去
F。將測(cè)試設(shè)置為緊急修復(fù)模式
=-=DB_ID('test')
此時(shí)可以看到數(shù)據(jù)庫(kù)處于“只讀懷疑離線緊急模式”,可以看到數(shù)據(jù)庫(kù)中的表,但只能看到系統(tǒng)表
G.下面進(jìn)行實(shí)際的恢復(fù)操作,重建數(shù)據(jù)庫(kù)日志文件
('test','C:\MSSQLData.ldf')
執(zhí)行過程中,如果遇到如下提示:
服務(wù)器:消息 5030,級(jí)別 16,狀態(tài) 1,第 1 行
無(wú)法為此操作獨(dú)占鎖定數(shù)據(jù)庫(kù)。
DBCC 執(zhí)行完成。如果 DBCC 輸出錯(cuò)誤信息,請(qǐng)聯(lián)系您的系統(tǒng)管理員。
表示您的其他程序正在使用此數(shù)據(jù)庫(kù)。如果只是使用了步驟F中打開測(cè)試庫(kù)的系統(tǒng)表,可以退出。
警告:數(shù)據(jù)庫(kù)“test”的日志已重建。事務(wù)一致性已丟失。應(yīng)運(yùn)行以驗(yàn)證物理一致性。必須重置數(shù)據(jù)庫(kù)選項(xiàng),并且可能需要?jiǎng)h除多余的日志文件。
DBCC 執(zhí)行完成。如果 DBCC 輸出錯(cuò)誤信息,請(qǐng)聯(lián)系您的系統(tǒng)管理員。
這時(shí)候打開,會(huì)看到數(shù)據(jù)庫(kù)的狀態(tài)是“only for DBO”。至此,就可以訪問數(shù)據(jù)庫(kù)中的用戶表了。
H.驗(yàn)證數(shù)據(jù)庫(kù)一致性(可選)
('測(cè)試')
一般執(zhí)行結(jié)果如下:
發(fā)現(xiàn) 0 個(gè)分配錯(cuò)誤和 0 個(gè)一致性錯(cuò)誤(在數(shù)據(jù)庫(kù)“測(cè)試”中)。
DBCC 執(zhí)行完成。如果 DBCC 輸出錯(cuò)誤信息,請(qǐng)聯(lián)系您的系統(tǒng)管理員。
我。將數(shù)據(jù)庫(kù)設(shè)置為正常狀態(tài)
'測(cè)試','','假'
如果沒有錯(cuò)誤,那么恭喜你武漢數(shù)據(jù)恢復(fù),現(xiàn)在可以正常使用恢復(fù)的數(shù)據(jù)庫(kù)了。
J。最后一步,我們需要恢復(fù)步驟E中設(shè)置的“允許直接修改系統(tǒng)目錄”。因?yàn)橹苯硬僮鞅硗ǔJ潜容^危險(xiǎn)的事情。當(dāng)然我們可以在里面恢復(fù),或者用下面的語(yǔ)句來完成
'',0
去
想法
去
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)