如何在SQL Server 2005中还原数据库
還原數(shù)據(jù)庫的方式
有幾種數(shù)據(jù)庫備份的方式就將會有幾種還原數(shù)據(jù)庫的
方式:
l 完整備份的還原:無論是完整備份、差異備份還是事務(wù)日志備份的還原,在第一步都要先做完整備份的還原。完整備份的還原只需要還原完整備份文件即可。
l
差異備份的還原:差異備份的還原一共需要兩個步驟,第一個步驟先還原完整備份,第二步還原最后一個差異備份。例如在每個周日做一次完整備份,周一到周六每
天下班前做一次差異備份,如果在某個周四發(fā)生了數(shù)據(jù)庫故障,那么做差異備份的還原就應(yīng)該先還原最近一個周日做的完整備份,然后還原周三做的差異備份。如果
在差異備份之后還有事務(wù)日志備份,那么還應(yīng)該還原事務(wù)日志備份。
l
事務(wù)日志備份的還原:還原事務(wù)日志備份的步驟比較多一些,因為事務(wù)日志備份相對而言會做得比較頻繁一些。例如某個數(shù)據(jù)庫在每個周日做完整備份,每天的下午
18點做差異備份,在白天里每隔三個小時做一次事務(wù)日志備份。假設(shè)在周三早上8點上班時數(shù)據(jù)庫發(fā)生故障,那么還原數(shù)據(jù)庫的步驟應(yīng)該是:先恢復(fù)周日做的完整
備份,然后恢復(fù)周二下午做的差異備份,最后依次恢復(fù)差異備份到損壞為止的每一個事務(wù)日志備份,即周二晚上21點、周二晚上24點、周三早上3點、周三早上
6點所做的事務(wù)日志備份。
l 文件和文件組備份的還原:通常只有數(shù)據(jù)庫中某個文件或文件組損壞了才會使用這種還原模式。
18.5.2
還原數(shù)據(jù)庫前要注意的事項
在還原數(shù)據(jù)庫之前,要注意以下兩點:
l 檢查備份設(shè)備或文件:在還原數(shù)據(jù)庫之前,首先要找到要還原的備份文件或備份設(shè)備,并檢查備份文件或備份設(shè)備里的備份集是否正確無誤,例如使用前面介紹的“RESTORE VERIFYONLY”語句。
l 查看數(shù)據(jù)庫的使用狀態(tài):在還原數(shù)據(jù)庫之前,要先查看數(shù)據(jù)庫是否還有其他人在使用,如果還有其他人正在使用,將無法還原數(shù)據(jù)庫。
18.5.3
還原數(shù)據(jù)庫備份
在sql server Management Studio里還原數(shù)據(jù)的方法如下:
(1)啟動【sql server Management Studio】,右擊要還原的數(shù)據(jù)庫,在彈出的快捷菜單里選擇【任務(wù)】à【還原】à【數(shù)據(jù)庫】,彈出如圖8-12所示【還原數(shù)據(jù)庫】對話框
圖8-12 【還原數(shù)據(jù)庫】對話框
(2)在圖8-12所示對話框里有很多選擇項,不同的還原情況選擇不同的選擇項:
l 【目標(biāo)數(shù)據(jù)庫】:在該下拉列表框里可以選擇要還原的數(shù)據(jù)庫。
l 【目標(biāo)時間點】:如果備份文件或備份設(shè)備里的備份集很多的話,還可以選擇【目標(biāo)時間點】,只要有事務(wù)日志備份支持,可以還原到某個時間的數(shù)據(jù)庫狀態(tài)。在默認(rèn)情況下該項為“最近狀態(tài)”。
l 【還原的源】:在該區(qū)域里可以指定用于還原的備份集的源和位置。
如果選擇【目標(biāo)數(shù)據(jù)庫】單選框,則從msdb數(shù)據(jù)庫里的備份歷史記錄里查得可用的備份,并顯示在【選擇用于還原的備份集】區(qū)域里。此時不需要指定備份文件的位置或指定備份設(shè)備,sql server會自動根據(jù)備份記錄來找到這些文件。
如果選擇【源設(shè)備】單選框,則要指定還原的備份文件或備份設(shè)備。點擊【…】按鈕,彈出如圖18.13所示【指定備份】對話框。在【備份媒體】下拉列表框里
可以選擇是備份文件還是備份設(shè)備,選擇完畢后單擊【添加】按鈕,將備份文件或備份設(shè)備添加進(jìn)來。選擇備份文件或備份設(shè)備后,返回到18-12所示對話框。
圖18.13 【指定備份】對話框
l 【選擇用于還原的備份集】區(qū)域:在該區(qū)域里列出了所有可用的備份集。
如果【目標(biāo)時間點】為“最近狀態(tài)”,【還原的源】為“源數(shù)據(jù)庫”,該區(qū)域顯示的是最后一次完整備份到現(xiàn)在的所有可用備份集。
如果【目標(biāo)時間點】為“最近狀態(tài)”,【還原的源】為“源設(shè)備”,該區(qū)域顯示的是備份文件或備份設(shè)備里的所有可用備份集。
如果【目標(biāo)時間點】指定的時間,【還原的源】為“源數(shù)據(jù)庫”,該區(qū)域里顯示的是從該時間前一個完整備份到目前為止的所有非完整備份。例如一個數(shù)據(jù)庫在
2006年9月18日、19日、20日三天的做過備份,其中每天的0點是完整備份,12點是差異備份,21點是日志備份。如果在【目標(biāo)時間點】里的時間點
為2006年9月19日14點,那么在【選擇用于還原的備份集】區(qū)域里顯示的將是從2006年9月19日的所有備份集與20日的所有差異備份集和事務(wù)日志
備份集。
如果【目標(biāo)時間點】指定的時間,【還原的源】為“源設(shè)備”,該區(qū)域顯示的是備份文件或備份設(shè)備里的第一個到該時間之后第一個完整備份以來的所有備份。例如
一個備份文件里包含了2006年9月18日、19日、20日三天的備份數(shù)據(jù),其中每天的0點是完整備份,12點是差異備份,21點是日志備份。如果在【目
標(biāo)時間點】里的時間點為2006年9月19日14點,那么在【選擇用于還原的備份集】區(qū)域里顯示的將是從2006年9月18日與19日兩天的所有備份集。
在【選擇用于還原的備份集】里可以選擇完整備份、差異備份或事務(wù)日志備份,sql server
2005十分智能,如果選擇差異備份,系統(tǒng)會自動將上一個完整備份選擇上;如果選擇日志備份,系統(tǒng)也會自動將上一個完整備份以及所需要的差異備份和日志備
份都選擇上。換句話說,只要選擇想恢復(fù)到的那個備份集即可,系統(tǒng)會自動選上要恢復(fù)到這個備份集的所有其他備份集。
說明:sql server 2005在【選擇用于還原的備份集】區(qū)域里進(jìn)行了完善工作,可以一次性選擇多個備份集來還原數(shù)據(jù)庫,如圖18.12所示,選擇完整備份和日志備份兩個備份集,sql Server 2005會自動按次序還原這些備份。
(3)如果沒有其他的需要,設(shè)置完第二步后可以單擊【確定】按鈕進(jìn)行還原操作,也可以在圖18.12所示對話框里選擇【選項】標(biāo)簽,進(jìn)入如圖18.14所示對話框。
圖18.14 【選項】選項卡
(4)在如圖18.14所示對話框里,可以設(shè)置以下選項:
l 【覆蓋現(xiàn)有數(shù)據(jù)庫】:選中該復(fù)選框則會覆蓋所有現(xiàn)有數(shù)據(jù)庫以及相關(guān)文件,包括已存在的同名的其他數(shù)據(jù)庫或文件。
l 【保留復(fù)制設(shè)置】:選中該復(fù)選框則會將已發(fā)布的數(shù)據(jù)庫還原到創(chuàng)建該數(shù)據(jù)庫的服務(wù)器之外的服務(wù)器時,保留復(fù)制設(shè)置。不過該項只有在選擇了【回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用狀態(tài)】選項才可以使用。
l 【還原每個備份之前進(jìn)行提示】:選中該復(fù)選框則在還原每個備份設(shè)備前都會要求確認(rèn)一次。
l 【限制訪問還原的數(shù)據(jù)庫】:選中該復(fù)選框則使還原的數(shù)據(jù)庫僅供db_owner、dbcreator或sysadmin的成員使用。
l 【將數(shù)據(jù)庫文件還原為】:在該區(qū)域里可以更改要還原到的任意目的文件的路徑和名稱。例如在備份完數(shù)據(jù)庫之后,數(shù)據(jù)庫文件移動過位置,如果此時用移動過位置之前的數(shù)據(jù)庫備份來還原數(shù)據(jù)庫,則會把數(shù)據(jù)庫文件還原到原來的位置。使用該項可以將數(shù)據(jù)庫文件還原到新的位置。
l 【恢復(fù)狀態(tài)】:在該區(qū)域里有三個選擇項:
如果選擇了【回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用狀態(tài)。無法還原其他事務(wù)日志】單選框,則讓數(shù)據(jù)庫在還原后進(jìn)入可正常使用的狀態(tài),并自動恢復(fù)尚未完成的事務(wù),如果本次還原是還原的最后一次操作,可以選擇該項。
如果選擇了【不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)。可以還原其他事務(wù)日志】單選框,則在還原后數(shù)據(jù)庫仍然無法正常使用,也不恢復(fù)未完成的事務(wù)操作,但可再繼續(xù)還原事務(wù)日志備份或差異備份,讓數(shù)據(jù)庫能恢復(fù)到最接近目前的狀態(tài)。
如果選擇了【使數(shù)據(jù)庫處于只讀模式。撤消未提交的事務(wù),但將撤消操作保存在備用文件中,以便可以恢復(fù)效果逆轉(zhuǎn)】單選框,則在還原后做恢復(fù)未完成事務(wù)的操
作,并使數(shù)據(jù)庫處于只讀狀態(tài),為了可再繼續(xù)還原后的事務(wù)日志備份,還必須指定一個還原文件來存放被恢復(fù)的事務(wù)內(nèi)容。
(5)設(shè)置完畢后,單擊【確定】按鈕完成還原操作。
18.5.4
還原文件和文件組備份
還原文件和文件組備份與還原完整備份、差異備份和事務(wù)日志備份有點區(qū)別:
(1)啟動【sql server Management Studio】,右擊要還原的數(shù)據(jù)庫,在彈出的快捷菜單里選擇【任務(wù)】à【還原】à【文件和文件組】,彈出如圖8-15所示【還原文件和文件組】對話框。
圖18.15 【還原文件和文件組】對話框
(2)如圖18.15所示的【還原文件和文件組】對話框里,可以設(shè)置以下選項:
l 【目標(biāo)數(shù)據(jù)庫】:在該下拉列表框里可以選擇要還原的數(shù)據(jù)庫。
l 【還原的源】:在該區(qū)域里可以選擇要用來還原的備份文件或備份設(shè)備,用法與還原數(shù)據(jù)庫完整備份中的一樣,在此就不贅述了。
l
【選擇用于還原的備份集】:在該區(qū)域里可以選擇要還原的備份集,從圖18.15中可以看出,在該區(qū)域里所列出備份集不僅僅包含文件和文件組的備份,還包括
完整備份、差異備份和事務(wù)備份,無論選擇哪種備份,都是允許的。換句話說,在此不僅僅可以恢復(fù)文件和文件組備份,也可以恢復(fù)完整備份、差異備份和事務(wù)備
份。
(3)選擇完畢后可以單擊【確定】按鈕完成還原操作,也可以選擇【選項】選項項進(jìn)行進(jìn)一步設(shè)置,其設(shè)置與上面介紹的相同。
注意:在進(jìn)行完文件和文件組備份之后,還必須進(jìn)行一次事務(wù)日志備份,否則無法還原文件和文件組備份。
18.5.5
從現(xiàn)有的備份創(chuàng)建新的數(shù)據(jù)庫
通常數(shù)據(jù)庫設(shè)計員都會在本地計算機(jī)上設(shè)計并調(diào)試數(shù)據(jù)庫,在數(shù)據(jù)庫初
始化完畢之后再上傳到服務(wù)器上。在前面曾經(jīng)提到用可以先將數(shù)據(jù)庫文件分離,然后將其傳到服務(wù)器上再附加。使用這種方法附加的數(shù)據(jù)庫不能改名。在sql
Server
2005中還可以先將本地計算機(jī)上的數(shù)據(jù)庫備份,再通過備份文件在服務(wù)器上創(chuàng)建一個新的數(shù)據(jù)庫,此時新數(shù)據(jù)庫的數(shù)據(jù)文件和數(shù)據(jù)庫名都可以和原來的不一樣。
其方法為:
(1)啟動【sql server Management Studio】,在【對象資源管理器里】選項【數(shù)據(jù)庫實例名】à【數(shù)據(jù)庫】。
(2)右擊數(shù)據(jù)庫,在彈出的快捷菜單里選擇【還原數(shù)據(jù)庫】選項,彈出如圖18.12所示【還原數(shù)據(jù)庫】對話框,不過該對話框里【目標(biāo)數(shù)據(jù)庫】下拉列表框和【源數(shù)據(jù)庫】列表框里都是空白的。
(3)在【目標(biāo)數(shù)據(jù)庫】下拉列表框處輸入新的數(shù)據(jù)庫名。
(4)選擇【源設(shè)備】單選框,并選擇備份文件,然后在【選擇用于還原的備份集】區(qū)域里選擇用于還原的備份集。
(5)單擊【選項】標(biāo)簽,進(jìn)入如圖18.14所示對話框,修改該對話框的【將數(shù)據(jù)庫文件還原為】區(qū)域里的文件【還原為】的位置。
(6)完成后單擊【確定】按鈕完成新建數(shù)據(jù)庫的操作。
完成后的新數(shù)據(jù)庫擁有新的數(shù)據(jù)庫名、新的數(shù)據(jù)庫文件以及數(shù)據(jù)庫文件存儲的新位置。
轉(zhuǎn)載于:https://www.cnblogs.com/yhb199/archive/2008/06/18/1224425.html
總結(jié)
以上是生活随笔為你收集整理的如何在SQL Server 2005中还原数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]该学Java或.NET?
- 下一篇: BlazeDS入门教程-很详细-赞原创作