所謂“備份”是指保存資料庫檔案的有效副本,可以用來將資料庫恢復初始狀態。對於資料庫來說,需要複製的不僅僅是用戶數據,還包括一些重要的資料庫組件,如控制檔案、數據檔案等。在發生數據丟失或應用程式錯誤時,可以利用備份來重新建立應用程式所需的數據與環境。
資料庫系統恢復是指將資料庫返回到需要的狀態。在某些情況下,這可能會丟失一些數據。例如,如果一位資料庫管理員不小心將大量數據載入到一個錯誤的表中,並且沒有什麼簡單的方法來識別和刪除數據,那么DBA就需要將資料庫重新設定(或恢復)到以前的某個時刻,那時的數據是正確的。
數據備份的最終目標是災難後數據恢復,數據恢復關係到系統在經歷癱瘓後能否迅速恢復及代價的大小,其在整個數據備份及恢復中占有相當重要的地位。資料庫恢復也可分為物理備份恢復和邏輯恢復。
基本介紹
- 中文名:LBS資料庫備份與恢復
- 外文名:LBS database backup and recovery
資料庫系統故障,非媒體故障,媒體故障,資料庫備份,備份的分類,備份策略,資料庫系統恢復,物理備份恢復,邏輯恢復,
資料庫系統故障
資料庫套用系統故障的發生是不可預知的災難性事件。LBS資料庫系統可能發生的故障通常分為兩大類:非媒體故障和媒體故障。大多數類型的非媒體故障都可以由資料庫後台進程自動恢復的,而媒體故障則需要資料庫管理員確定必要的恢復過程。
非媒體故障
非媒體故障包括進程故障、實例故障、語句故障和用戶錯誤進程故障。
進程故障是當用來與資料庫伺服器互動的應用程式生成了一個內部程式錯誤,或者用戶沒有正確註銷伺服器而執行了異常終止的故障。
實例故障是在電源斷電、承載資料庫伺服器的計算機出現了故障,或者發出的命令使用異常終止選項關閉了資料庫,導致在沒有更新並關閉資料庫檔案的情況下關閉實例的故障。
語句故障是當已經提交到資料庫伺服器進行處理的SQL或PL/SQL語句中存在語法錯誤的時候發生的語句故障。此時,只需要重新提交沒有語法錯誤的語句就可以解決語句故障。
用戶錯誤是指用戶錯誤地更改了數據或表時引起的故障。用戶錯誤一般需要資料庫管理員來解決。
媒體故障
媒體故障通常是由於檔案丟失或破壞,或者控制器卡出現故障而導致的。當控制器卡出現故障時,計算機不能讀取或寫入通過這個驅動器訪問的資料庫檔案。因為在很長的一段時間內,所有用戶都將無法訪問資料庫,所以媒體故障比非媒體故障更嚴重。在所有的情況下,資料庫管理員都需要執行恢復過程才能使資料庫再次變得可用。媒體故障可分為系統物理故障和自然災害。
系統物理故障,即硬體故障,主要是系統設備運行損耗、存儲介質失效、運行環境(溫度、濕度、灰塵等)對計算機設備的影響、電源供給系統故障以及人為的破壞等。
自然災害也會導致系統故障和數據損失。雖然自然災害與其他因素相比發生的頻率並不高,但其產生的後果更為嚴重。
資料庫備份
備份的分類
備份可以分為物理備份和邏輯備份兩種類型。物理備份是實際物理資料庫檔案從一處複製到另一處的備份,其又可以分為冷備份和熱備份。邏輯備份是利用SQL語句從資料庫中抽取數據並存入檔案中。
(1)物理備份
物理備份就是資料庫檔案的複製,需要進行部分資料庫(包括數據檔案、歸檔重做日誌以及控制檔案等)備份,是在資料庫備份與恢復策略中最常用的一種備份方式。物理備份可分為冷備份和熱備份兩種方式。
冷備份即脫機備份,是在關閉資料庫的情況下,用戶通過作業系統copy命令將資料庫相關檔案進行備份,定期的冷備份及完整的歸檔重做日誌和當前日誌能將資料庫恢復到任何一個時間點。
熱備份即在線上備份,是在資料庫打開並提供給用戶訪問的基礎上,使用在線上備份工具對資料庫相關檔案備份,定期的熱備份和完整的歸檔重做日誌及當前日誌也能將資料庫恢復到任何一個時間點。
(2)邏輯備份
邏輯備份是在資料庫打開的狀態下,使用相應的工具(如Oracle的Export等)執行SQL語句的方式備份資料庫中的對象(如表、索引、函式等),然後寫入一個二進制檔案中。在需要恢復的時候,可利用Import等工具從這個二進制檔案中讀取數據,並通過執行SQL語句的方式將它們寫入到資料庫中。
此時,邏輯數據恢復的並不是作業系統物理檔案,而是邏輯數據(如表、索引、函式等)。與物理備份相比,通過備份導出的資料庫和數據檔案是完全脫離的關係,並可以被導入到其他資料庫,或者運行於其他操作平台的資料庫中,因此可以說邏輯備份有更大的靈活性;但在操作上比物理備份較為複雜,因此在資料庫的備份與恢復策略中,邏輯備份通常作為物理備份的一種補充方式。
備份策略
備份策略指確定需要備份的內容、備份時間及備份方式,用戶應根據自己的實際情況來制定不同的備份策略,主要有4種:一是完全備份,即備份系統中所有的數據;二是增量備份,即只備份上次備份以後有變化的數據;三是差分備份,即只備份上次完全備份以後有變化的數據;四是按需備份,即根據臨時需要有選擇地進行數據備份。
完全備份所需時間最長,但恢復時間最短,操作簡便,當系統中數據量不大時,採用完全備份最可靠,但是隨著數據量的不斷增大,無法每次都對系統完全備份,而採用完全備份、增量備份、差分備份相結合對系統數據備份。各種備份數據量不同:完全備份>差分備份>增量備份,在實際操作過程中,應根據各備份方式的特點以靈活使用。
資料庫系統恢復
物理備份恢復
物理備份恢復要經歷重建數據檔案和介質恢復兩個過程。重建數據檔案即將備份的數據檔案恢復到原先的位置,並使用歸檔日誌和當前日誌進行介質恢復,以使數據檔案與資料庫的其他數據檔案保持一致。物理備份恢復也就是通常我們所說的資料庫修復,這項操作主要是在作業系統級別完成。
邏輯恢復
邏輯恢復是指使用相應的工具(如Oracle的Import等)將由Export導出的檔案導入資料庫中,進行數據恢復。
無論採用何種方法,資料庫恢復都是一個不可逆的過程,因此要慎重,常用的做法是做好現場保護,及在恢復前,備份當前狀態後再進行恢復,保證在恢復操作失敗的情況下,能夠回到恢復前的狀態。
對資料庫進行物理備份,保留的只是資料庫在機械備份時刻的一個副本。通過資料庫物理恢復可將資料庫恢復到進行備份的那一狀態。如果系統要求較高,需要將資料庫恢復到系統出現問題那一時刻,就必須通過套用歸檔重做日誌和在線上重做的方式進行資料庫恢復。即先將資料庫恢復到進行備份那個時刻,然後再在此基礎上,通過重做數據而恢復從備份時刻開始到故障發生之前這一段時間所做的數據更改操作,使資料庫恢復到系統出現問題之前的狀態。
對於恢復策略來說,資料庫管理員的目標是增加“平均故障間隔時間”並減少“平均修復時間”。用戶可以通過檢查資源需求或警報日誌和追蹤檔案中包含的出錯信息,預見可能導致用戶無法使用資料庫的故障並且執行預防性的硬體維護。要想減少“平均修復時間”,可以經常對資料庫執行備份,從而為各種資料庫故障做好準備,如果經常備份整個資料庫,那么需要從存檔的重做日誌檔案中套用的事務就更少,恢復過程會更快。