數據庫原理與應用(MySQL版) 課件 第12章 數據庫恢復技術_第1頁
數據庫原理與應用(MySQL版) 課件 第12章 數據庫恢復技術_第2頁
數據庫原理與應用(MySQL版) 課件 第12章 數據庫恢復技術_第3頁
數據庫原理與應用(MySQL版) 課件 第12章 數據庫恢復技術_第4頁
數據庫原理與應用(MySQL版) 課件 第12章 數據庫恢復技術_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第12章

數據庫恢復技術

數據庫原理與應用1本章內容12.1恢復的基本概念12.2數據庫故障的種類12.3數據庫恢復的類型12.4數據庫恢復的檢查點技術12.5MySQL的備份和恢復方法

212.1恢復的基本概念數據庫恢復是指當數據庫發生故障時,將數據庫恢復到正確(一致性)狀態的過程。故障可能是軟、硬件錯誤引起的系統崩潰,例如存儲介質故障,或者是數據庫訪問程序的邏輯錯誤等應用軟件錯誤。恢復是將數據庫從一個給定狀態(通常是不一致的)恢復到先前的一致性狀態。312.1恢復的基本概念數據庫恢復是基于事務的原子性特性。事務是一個完整的工作單元,它所包含的操作必須都被應用,并且產生一個一致的數據庫狀態。412.1恢復的基本概念恢復機制有兩個關鍵的問題:第一,如何建立備份數據;第二,如何利用備份數據進行恢復。數據轉儲(也稱為數據庫備份)是數據庫恢復中采用的基本技術。5數據轉儲轉儲就是數據庫管理員定期地將整個數據庫復制到輔助存儲設備上,比如磁盤、光盤。當數據庫遭到破壞后可以利用轉儲的數據庫進行恢復,但這種方法只能將數據庫恢復到轉儲時的狀態。如果想恢復到故障發生時的狀態,則必須利用轉儲之后的事務日志,并重新執行日志中的事務。612.1恢復的基本概念轉儲分為靜態轉儲和動態轉儲兩種。靜態轉儲是在系統中無運行事務時進行轉儲操作。即在轉儲操作開始時數據庫處于一致性狀態,而在轉儲期間不允許對數據庫進行任何操作。動態轉儲是不用等待正在運行的事務結束就可以進行,而且在轉儲過程中也允許運行新的事務,因此轉儲過程中不會降低數據庫的可用性。但不能保證轉儲結束后的數據庫副本是正確的。712.2數據庫故障的種類數據庫故障是指導致數據庫值出現錯誤描述狀態的情況。數據庫系統中可能發生的故障種類很多,大致可以分為如下幾類:事務內部的故障系統故障其它故障812.3數據庫恢復的類型無論出現何種類型的故障,都必須終止或提交事務,以維護數據完整性。事務日志在數據庫恢復中起重要的作用,它使數據庫在發生故障時能回到一致性狀態。事務是數據庫系統恢復的基本單元。恢復管理器保證發生故障時事務的原子性和持久性。9事務的恢復類型事務的恢復類型有兩種:向前恢復和向后恢復。向前恢復(或重做):用于物理損壞情形的恢復過程。向后恢復(或撤銷):用于數據庫正常操作過程中發生錯誤時的恢復過程。1012.4數據庫恢復的檢查點技術在利用日志進行數據庫恢復時,恢復子系統必須搜索日志,以確定哪些需要重做,哪些需要撤銷。這樣做有兩個問題:一是搜索整個日志將耗費大量的時間,二是很多需要重做處理的事務實際上可能已經將它們的更新結果寫到了數據庫中,而恢復子系統又重新執行了這些操作,同樣浪費了大量時間。

11檢查點技術為解決這些問題,發展了具有檢查點的恢復技術。這種技術在日志文件中增加兩個新的記錄——檢查點(checkpoint)記錄和重新開始記錄,并讓恢復子系統在登記日志文件期間動態地維護日志。檢查點記錄的內容包括:建立檢查點時刻所有正在執行的事務列表;這些事務最近一個日志記錄的地址。12檢查點技術(續)

動態維護日志文件的方法是周期性地執行建立檢查點和保存數據庫狀態的操作,具體步驟是:將日志緩沖區中的所有日志記錄寫入到磁盤日志文件上。在日志文件中寫入一個檢查點記錄,該記錄包含所有在檢查點運行的事務的標識。將數據緩沖區中所有修改過的數據寫入到磁盤數據庫中。將檢查點記錄在日志文件中的地址寫入一個重新開始文件,以便在發生系統故障而重啟時可以利用該文件找到日志文件中的檢查點記錄地址。1312.5MySQL的備份和恢復方法

數據庫備份是指對數據庫中的數據和結構進行備份,以便在需要的時候可以恢復和重建數據庫。備份的目的是為了防止數據庫中的數據丟失或損壞。數據庫備份是防止數據庫中的數據丟失或損壞的一個有效手段。1412.5MySQL的備份和恢復方法MySQL的數據庫備份分為邏輯備份和物理備份。邏輯備份:將數據庫中的數據以SQL語句的方式導出成文件的形式。物理備份:利用命令(如cp、tar、scp等)直接將數據庫的數據文件復制一份或多份,分別存放到其它地方,以達到備份的目的。MySQL數據庫一般采用邏輯備份。1512.5.1MySQL數據庫備份mysqldump是MySQL自帶的邏輯備份工具,它的備份原理是通過相關協議連接到MySQL數據庫,將需要備份的數據查詢出來,然后將查詢出的數據轉換成對應的INSERT語句。當需要還原這些數據時,只需執行這些INSERT語句。16用命令行方式進行數據備份備份數據庫中全部表的結構及表數據的命令如下:mysqldump[--host=數據庫主機名]-u用戶名-p數據庫名>備份文件名

用戶名:用于連接數據庫的用戶名;數據庫名:要備份的數據庫的名稱;備份文件名:保存備份內容的文件名,可以自行指定;--host=數據庫主機名:要備份的數據庫所在的主機名。如果是備份本機數據,可以省略。17數據備份示例例12-1本地登錄用戶testuser具有備份數據權限,用此用戶將“db_borrows”數據庫備份到e:\bak文件夾,備份文件名為:books20230808.sql。mysqldump-utestuser-pdb_borrows>e:\bak\books20230808.sql備份數據庫需要用戶具有process權限,可以通過如下授權語句進行授權:

GRANTPROCESSON*.*TO用戶名;18備份指定的數據庫表結構及表數據mysqldump-u用戶名-p密碼

數據庫名

表名1[表名2表名3...]>備份文件名例12-2設本地登錄用戶testuser具有備份數據權限,用此用戶將“db_borrows”數據庫的students表和books表備份到e:\bak文件夾,文件名為:books20230808_1.sql。mysqldump-utestuser-pdb_borrowsstudentsbooks>e:\bak\books20230808_1.sql1912.5.2MySQL數據庫恢復使用備份文件恢復數據表結構和數據:mysql-u用戶名-p數據庫表名<備份文件名使用source語句恢復數據庫登錄MySQL服務器后,可以通過source語句從備份文件恢復數據庫:source備份文件名;

20使用備份文件恢復數據庫示例例12-3利用例12-2備份的e:\bak\books20230808.sql文件,恢復“db_borrows”數據庫。mysql-uroot-pdb_borrows<e:\bak

溫馨提示

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

評論

0/150

提交評論