第14章以進為退數據庫與恢復_第1頁
第14章以進為退數據庫與恢復_第2頁
第14章以進為退數據庫與恢復_第3頁
第14章以進為退數據庫與恢復_第4頁
第14章以進為退數據庫與恢復_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第14章數據庫備份與恢復一個數據庫管理員,為了保證數據庫里的數據萬無一失,必須要定期對數據庫進行備份,一旦數據庫出現了問題,可以從備份的文件里最大程度地還原數據。本章就來講解SQLServer備份的類型、恢復的模式、如何備份數據庫、如何還原數據庫、備份設備的管理及自動備份的相關內容14.1備份與恢復簡介相信大多數人都會同意數據庫里的數據要比數據庫本身要重要得多,但是因為種種原因,如磁盤故障、計算機硬件故障、用戶操作失誤等,都有可能會損壞數據。為了保證在發(fā)生這些意外的時候可以最大限度地挽救數據,數據庫管理員必須要經常備份數據庫里的數據。SQLServer2008提供了強大的備份和還原的功能。14.1.1備份類型完整備份可能比較好理解,例如說,在2013年1月1日早上8點進行了完整備份,那么將來在還原時,就可以恢復到2013年1月1日早上8點時的數據庫狀態(tài)。差異備份是備份完整備份后的數據變動情況。例如在2013年1月1日早上8點進行了完整備份后,在1月2日和1月3日又進行差異備份,那么在1月2日的差異備份里記錄的是從1月1日到1月2日這一段時間里的數據變動情況;而在1月3日的差異備份里記錄的是從1月1日到1月3日之一段時間里的數據變動情況。因此,如果要還原到1月3日的數據,只要先還原1月1日做的完整備份,再還原1月3日做的差異備份就可以了。事務日志備份是以事務日志文件作為備份對象,相當于將數據庫里的每一個操作都記錄下來了。假設在2013年1月1日早上8點進行了完整備份后,到1月2日早上8點為止,數據庫里的數據變動了一百次,如果此時做了差異備份,那么差異備份記錄的是第一百次數據變動后的數據庫狀態(tài),而如果此時做了事務日志備份,備份的將是這一百次的數據變動情況。14.1.2恢復模式前面章節(jié)里多次提到過事務日志,每次提到事務日志時,都會說事務日志會記錄數據庫中每一次的數據變動。事實上并不是所有數據庫都需要記錄每一次的數據操作。如果每個操作都要記錄的話,數據庫不但要寫數據文件,而且還要寫日志文件,在操作大量數據時(如導入數據),會降低菘獾男閱堋TSQLServer2008可以使用“恢復模式”來設置事務日志的操作方法。14.1.3如何備份數據庫在了解了什么是數據庫備份和恢復之后,并不是可以馬上動手備份或恢復數據庫,在備份或恢復數據庫時,要先考慮幾個問題:(1)什么時候備份數據庫?備份數據庫會占用系統資源,很顯然,在很多人都在使用數據庫時備份數據不是一個明智的選擇。(2)隔多久備份一次數據庫?每天數據庫里改變的數據有多少?如果一天只有數十條數據改變,卻天天備份數據庫,這也不是一個明智的選擇。(3)用什么方式備份數據庫?每次備份數據庫都用完整模式,還是先用一次完整模式后再用幾次差異備份模式?(4)將數據庫備份到哪里?是磁盤中,還是磁帶中?(5)一旦數據發(fā)生問題,恢復數據要花多少時間?數據能恢復到哪個時間狀態(tài)?14.1.4數據庫備份到哪里在SQLServer2008中,可以將數據庫備份到磁盤中或磁帶中。如果是備份到磁盤中,可以有兩種形式:一種是文件的形式,一種是備份設備的形式。無論是哪種形式,在磁盤中的體現都是文件的形式。14.2在SQLServerManagementStudio中備份數據庫使用SQLServerManagementStudio可以備份數據庫,包括完整備份、差異備份、事務日志備份以及文件和文件組備份,備份方式大同小異。示例:下面以備份AdventureWorks數據庫為例,介紹如何使用SQLServerManagementStudio完整備份數據庫。14.3用T-SQL語言備份數據庫T-SQL語言里提供了BACKUPDATABASE語句來備份數據庫,用該語句可以完成完整、差異、文件和文件組備份。如果要備份事務日志則要用BACKUPLOG語句。雖然BACKUPDATABASE語句可以進行完整、差異、文件和文件組備份,但是在完整備份、差異備份與文件和文件組備份的語法上有一點點出入,下面分別介紹幾種類型的備份方法。14.3.1完整備份與差異備份示例:將AdventureWorks數據庫備份到名為“AdventureWorksBackup”的備份設備上,其步驟如下:(1)單擊“開始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,啟動SQLServerManagementStudio工具。在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(2)在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(3)建立一個示例數據庫,在打開的查詢編輯器中輸入以下代碼:(4)單擊“執(zhí)行”按鈕。14.3.2備份文件和文件組示例:將AdventureWorks數據庫中的“AdventureWorks_Data”文件備份到名為“New_AdventureWorksBackup”的備份設備上,其步驟如下(1)單擊“開始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,啟動SQLServerManagementStudio工具。在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(2)在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(3)建立一個示例數據庫,在打開的查詢編輯器中輸入以下代碼:(4)單擊“執(zhí)行”按鈕。14.3.3事務日志備份示例:將AdventureWorks數據庫的事務日志備份到名為“New_AdventureWorksBackup”的備份設備上,其代碼為:(1)單擊“開始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,啟動SQLServerManagementStudio工具。在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(2)在SQLServerManagementStudio工具中,單擊“新建查詢”按鈕,打開一個“新建查詢”窗口。(3)建立一個示例數據庫,在打開的查詢編輯器中輸入以下代碼:(4)單擊“執(zhí)行”按鈕。14.4備份設備管理在前面章節(jié)里介紹過怎么樣去創(chuàng)建備份設備。當將數據庫備份到備份設備之后,要妥善管理好備份設備。備份設備盡量不要與數據庫系統放在同一臺服務器上,以免硬件發(fā)生故障時備份數據也保不住。如果可能的話,可以將備份設備刻錄到光盤上。14.4.1查看備份設備的內容由于一個備份設備可以存儲多個數據庫的備份數據,也可以存儲同一個數據庫的多次備份的數據,因此,在某些時候(如還原數據庫前)會需要查看一下備份設備里的包含有哪些內容。示例:在SQLServerManagementStudio查看備份設備里的內容的步驟如下:(1)啟動SQLServerManagementStudio,在“對象資源管理器”窗口里展開“數據庫實例|服務器對象”,展開“備份設備”節(jié)點。(2)右鍵單擊要查看內容的備份設備名,在彈出的快捷菜單里選擇“屬性”菜單命令。(3)彈出“備份設備—設備名稱”的對話框,在該對話框里選擇“介質內容”選項,在該對話框里可以該備份設備里包含的數據庫備份數據,如備份時的備份名稱、備份類型、備份的數據庫、備份時間、過期時間等等。(4)查看完畢后,單擊“確定”退出該對話框。14.4.2通過備份設備來備份數據庫在上面的章節(jié)里介紹了備份數據庫的一種方法,該方法是右擊數據庫名,在彈出的快捷菜單里選擇“任務”菜單下的“備份”子菜單命令,然后完成備份數據庫的操作。在SQLServer2008里,還可以直接在備份設備上備份數據庫其方法步驟參考如下。(1)啟動SQLServerManagementStudio,在“對象資源管理器”窗口里展開樹型目錄“數據庫實例|服務器對象”,展開“備份設備”節(jié)點。(2)右擊要創(chuàng)建數據庫備份的備份設備,在彈出的快菜單里選擇“備份數據庫”。(3)彈出對話框的“目標”區(qū)域里已經自動添加了備份設備,這個備份設備就是第(2)步中右鍵單擊備份設備。(4)按照第14.2章節(jié)中的操作完成剩下的備份操作。14.4.3驗證備份的內容備份數據庫的“選項”對話框,可以選擇“可靠性”區(qū)域中的“完成后驗證備份”和“寫入介質前檢查校驗和”兩個選項來檢查備份后的數據是否有誤,避免在恢復數據庫時才發(fā)現備份的文件有誤或無法讀取,引起不必要的損失。然而通過BACKUP語句來備份的數據庫時,并沒有驗證備份文件的功能,如果要驗證備份文件是否有誤,只能用RESTOREVERIFYONLY語句來驗證。在SQLServer2008中的RESTOREVERIFYONLY語句功能已經得到了增強,不但可以驗證備份集是否完整、整個備份是否可讀,還可以對數據執(zhí)行額外的檢查,從而提高發(fā)現錯誤的概率。其目標是盡可能接近實際的還原操作。14.4.4刪除備份設備示例:當備份設備不要需要使用時,可以將其刪除,在SQLServerManagementStudio里刪除備份設備的方法如下:(1)啟動SQLServerManagementStudio,在“對象資源管理器”窗口里展開樹型目錄數據庫實例,展開服務器對象,展開“備份設備”節(jié)點。(2)右擊要刪除的備份設備名,在彈出的快捷菜單里選擇“刪除”菜單命令。(3)彈出“刪除對象”對框話,在該對話框里單擊“確定”按鈕完成操作。14.5在SQLServerManagementStudio中還原數據庫不管愿不愿意,一個數據庫管理員或多或少都會遇到要還原數據庫的操作。有時是因為數據庫的軟硬件出了故障,有時是因為做了大量的誤操作,需要將數據庫還原到誤操作之前的狀態(tài)。不過不管是因為什么原因,在還原數據庫時都必需要了解還原的方式和一些注意事項。14.5.1還原數據庫的方式有幾種數據庫備份的方式就將會有幾種還原數據庫的方式:完整備份的還原:差異備份的還原:事務日志備份的還原:文件和文件組備份的還原:14.5.2還原數據庫前要注意的事項在還原數據庫之前,要注意以下兩點:檢查備份設備或文件:在還原數據庫之前,首先要找到要還原的備份文件或備份設備,并檢查備份文件或備份設備里的備份集是否正確無誤,如使用前面介紹的“RESTOREVERIFYONLY”語句。查看數據庫的使用狀態(tài):在還原數據庫之前,要先查看數據庫是否還有其他人在使用,如果還有其他人正在使用,將無法還原數據庫。14.5.3還原數據庫備份示例:下面以還原數據庫AdventureWorks為例,講解在SQLServerManagementStudio里還原數據的方法:(1)啟動SQLServerManagementStudio,在“對象資源管理器”中展開數據庫實例,展開“數據庫”目錄,右鍵單擊示例數據庫AdventureWorks,從彈出的快捷菜單里選擇“任務|還原|數據庫”菜單命令。(2)彈出“還原數據庫”對話框。(3)如果沒有其他的需要,設置完第二步后可以單擊“確定”按鈕進行還原操作,(4)設置完畢后,單擊“確定”按鈕完成還原操作。14.5.4還原文件和文件組備份示例:還原文件和文件組備份與還原完整備份、差異備份和事務日志備份有點區(qū)別:(1)啟動SQLServerManagementStudio,在“對象資源管理器”中展開數據庫實例,展開“數據庫”目錄,右鍵單擊示例數據庫AdventureWorks,從彈出的快捷菜單里選擇“任務|還原|文件和文件組”菜單命令。(2)彈出“還原文件和文件組”對話框。(3)選擇完畢后可以單擊“確定”按鈕完成還原操作,也可以選擇“選項”選項項進行進一步設置,其設置與上面介紹的相同。14.5.5從現有的備份創(chuàng)建新的數據庫通常數據庫設計員都會在本地計算機上設計并調試數據庫,在數據庫初始化完畢之后再上傳到服務器上。在前面曾經提到用可以先將數據庫文件分離,然后將其傳到服務器上再附加。使用這種方法附加的數據庫不能改名。14.6用T-SQL語言還原數據庫T-SQL語言里提供了RESTOREDATABASE語句來恢復數據庫備份,用該語句可以恢復完整備份、差異備份、文件和文件組備份。如果要還原事務日志備份則還可以用RESTORELOG語句。雖然RESTOREDATABASE語句可以恢復完整備份、差異備份、文件和文件組備份,但是在恢復完整備份、差異備份與文件和文件組備份的語法上有一點點出入,下面分別介紹幾種類型備份的還原方法。14.6.1還原完整備份示例:用名為“AdventureWorksBackup”的備份設備來還原AdventureWorks數據庫,在本例中,沒有使用指定備份設備里的哪一個備份集來還原數據庫備份,那么默認使用備份設備里的第一個備份集還原數據庫。如果要指定用哪個備份集來還原數據庫,則要使用file參數指定。14.6.2還原差異備份還原差異備份的語法與還原完整備份的語法是一樣的,只是在還原差異備份時,必須要先還原完整備份再還原差異備份,因此還原差異備份必須要分為兩步完成。完整備份與差異備份數據在同一個備份文件或備份設備中,也有可能是在不同的備份文件或備份設備中。如果在同一個備份文件蟣阜萆璞鋼校蟣匭胍file參數來指定備份集。無論是備份集是不是在同一個備份文件(備份設備)中,除了最后一個還原操作,其他所有還原操作都必須要加上NORECOVERY或STANDBY參數。14.6.3還原事務日志備份SQLServer2008中已經將事務日志備份看成和完整備份、差異備份一樣的備份集,因此,還原事務日志備份也可以和還原差異備份一樣,只要知道它在備份文件或備份設備里是第幾個文件集即可。與還原差異備份相同,還原事務日志備份必須要先還原在其之前的完整備份,除了最后一個還原操作,其他所有還原操作都必須要加上NORECOVERY或STANDBY參數。14.6.4還原文件和文件組備份還原文件和文件組備份也可以使用RESTOREDATABASE語句,但是必須要在數據庫名與FROM之間加上“FILE”或“FILEGROUP”參數來指定要還原的文件或文件組。通常來說,在還原文件和文件組備份之后,還要再還原其他備份來獲得最近的數據庫狀態(tài)。14.6.5將數據庫還原到某個時間點有關“時間點”在上面章節(jié)里提到過一點點,下面舉例詳細地介紹怎么將數據庫還原到某個時間點。假設一個數據庫,在上午8點做過一次完整備份、10點做過一次事務日志備份,現在發(fā)現在9點15分時的一次數據更新是錯誤的,那么能不能將數據恢復到9點14分時的數據庫狀態(tài),還是只能恢復到10點所做的事務日志備份時的狀態(tài)呢?事務日志的作用就是記錄每一次數據的修改記錄,所以從理論上來說,是可以恢復到任何一次操作之前的狀態(tài)。9點15分時的數據是錯誤的,那就將其恢復到9點14分的數據吧。14.6.6將文件還原到新位置上使用RESTOREDATABASE語句也可以利用備份文件創(chuàng)建一個新的數據庫。示例:用名為“AdventureWorksBackup”的備份設備的第17個備份集來創(chuàng)建一個名為“AdventureWorks_test”的新數據庫,

14.7建立自動備份的維護計劃既然數據庫備份如此重要,作為一個數據庫管理員就不得不花大量的時間去給數據庫做備份。當一個數據庫里數據更新得比較頻繁時,那么一天幾次備份是必不可少的,如果每次都要數據庫管理員手動備份數據庫,那將是一個負擔不堪的工作任務。14.8本章小結SQLServer2008中的恢復模式分為三種:完整恢復模式、大容量日志恢復模式和簡單恢復模式。恢復模式會影響日志的寫入方式和恢復方式。SQLServer2008提供了四種備份數據庫的方式:完整備份、差異備份、事務日志備份以及文件和文件組備份。備份數據庫要充分使用以上不同方式的組合,使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論