古詩詞大全網 - 四字成語 - 三招助妳做好Oracle數據庫備份測試

三招助妳做好Oracle數據庫備份測試

 數據庫備份是保障數據庫安全的重要手段之壹 絕大部分數據庫管理員都已經發現對數據庫進行備份的重要性 甚至對其具有很大的依賴性 為此數據庫管理員必需肯定備份策略確實可靠 壹個沒有經過測試的備份策略其實比沒有進行備份更加糟糕 因為它會給各位數據庫管理員壹種假的安全感

 但是筆者發現不少的數據庫管理員在遇到服務器故障時 卻不時的會遇到無法順利利用故障文件恢復數據庫或者數據庫備份文件不完整等問題 這主要是因為大家只註重數據庫的備份策略 但是卻忽視了數據庫備份文件的測試策略 如果備份文件不完整或者出現錯誤的話 那麽及時備份策略制定的再好 也是竹籃子打水壹場空 為此筆者在這裏鄭重建議大家 數據庫備份測試策略與數據庫備份策略壹樣的重要 那麽做為Oracle數據庫管理員 該如何做好這方面的測試工作呢?對此筆者有壹家幾個招數 或許能夠幫助大家解決這方面的問題

  招數壹 模擬各種現實中可能出現的問題

 很多原因會導致數據庫服務器罷工 而這些罷工很有可能造成數據庫中現有數據的損壞 為此數據庫管理員必需憑借自己的經驗列舉出現實中可能出現的故障情況 然後針對這些可能發生的故障 去測試現有備份策略能否有效的應對

 如筆者給企業部署完Oracle數據庫之後 壹般都會模擬各種現實中可能出現的問題 然後針對這些問題進行壹壹測試 如筆者會在壹個更新事務處理的過程中 突然關閉電源 然後再重新啟動數據庫服務器 查看這次斷電事故對服務器可能造成哪些影響?能否利用現有的備份文件與日誌文件把數據庫中的數據恢復到斷電的那壹個點上?如筆者還會測試用戶錯誤的更新了大量的數據 並且已經遞交了事務 此時需要測試看看能否利用重做日至文件來恢復更新之前的數據?如企業如果采用了磁盤陣列的話 那麽筆者還需要測試磁盤陣列的有效性 如把某壹塊硬盤拿掉 添加上壹塊新的硬盤 看看其數據庫服務器能否正常恢復數據 總之壹句話 通過模擬各種失敗以及從這些失敗中進行恢復 看看能否恢復到故障發生時的點 這些測試工作將會給數據庫管理員獲得書本上沒有的無價經驗

 具體來說 筆者認為數據庫管理員在模擬失敗時 以下幾個失敗的原因不能夠放過 壹是服務器突然斷電 這可能導致配置文件的錯誤導致無法訪問或者數據的丟失;二是重做日誌發生損壞 這可能導致數據庫管理員無法把數據恢復到故障發生時的點;三是硬盤發生故障而導致數據丟失 這主要是要測試備份文件異地存放的有效性;四是數據批量更新的錯誤處理 這主要是測試數據庫管理員在進行批量更新之前是否有先對數據庫進行備份的習慣 等等 數據庫管理員只有預先模擬現實中各種可能出現的問題 並得到解決方案 只有如此 在真正遇到這些問題的時候 數據庫管理員才能夠臨危不亂 迅速解決故障

 當然這些測試最好是能夠在另外壹臺主機上進行測試 在生產服務器上進行這些破壞性測試的話 可不是壹個明智的做法

  招數二 需要詳細記錄備份與還原測試的數據

 筆者建議數據庫管理員 無論妳做了哪些測試 測試的工作是否充分 都需要壹五壹十的記錄下相關的備份與還原測試數據 因為這些故障可能隨時發生 到那個時候可沒有時間讓數據庫管理員去研究分析該如何處理 那時如果數據庫管理員有類似文檔的話 那麽只要按照相關文檔去處理 就可以減少中間思考的時間 可以迅速利用備份文件與日誌文檔進行數據庫恢復作業

 具體來說 筆者認為數據庫管理員在測試的時候需要記錄如下內容

 壹是需要記錄遇到故障時還原所需要用到的文件以及基本的操作步驟 如當發生硬盤故障時 此時需要恢復故障硬盤中的數據 需要用到哪些文件(可能需要用到保存在其他硬盤上的備份文件與重做日誌文件) 以及壹些操作步驟 記錄這些內容有利於數據庫管理員在遇到問題的時候迅速找到這些文件並且熟練的應用這些文件進行數據庫的恢復作業

 二是需要記錄備份或者恢復過程中遇到的意外事件 雖然只是模擬失敗 但是這個故障以及解決故障過程中出現的意外事件 在實際工作中很有可能會出現 而數據庫管理員在遇到這些意外事件時能否輕松應對則是考驗數據庫管理員能力的地方 筆者在日常工作中 對於這些意外事件無論大小都會壹壹的進行記錄 並且對於如何解決這些意外也會做相關的說明 要知道 這些內容可是數據庫管理員的無價之寶 因為這些東西在任何教科書上或者講座上都是學不到的 只要在模擬過程中經歷了壹次失敗 數據庫管理員就應該把當時的情況以及如果處理這種意外事件的解決方案加入到妳的工作筆記中 必須切記 意外事件往往不會只發生壹次 它很有可能在未來的某個時刻再次發生 養成及時更新自己的工作筆記的習慣 有利於數據庫管理員提高自身的水平 提高應對意外事件的能力

 三是要勤於跟其他這方面的專家進行交流 如筆者經常會逛各種論壇 在論壇上 有些數據庫管理員會把自己遇到的問題在上面列出來 有不少就是在備份或者恢復過程中出現的壹些意外事件 這些意外事件有些是數據庫管理員以前遇到過的 而有些則是由於工作經驗限制沒有碰見過的 但是很有可能在以後的工作中為碰到 為此數據庫管理員需要預先去了解 收集這些別人碰到的問題 並在可能的情況下模擬這些意外事件 並尋求解決方案 因為別人遇到的意外情況 很可能我們自己在下次也可能會遇到 防範與未然 提早想好解決措施 有利於我們在遇到這些問題時 迅速采取有力的措施解決

  招數三 測試 測試 再測試

 俗話說 熟能生巧 如果數據庫管理員了解了意外事件 也知道該如何處理 但是如果因為不熟悉相關的操作 則很可能會因為操作不當而造成新的意外事件或者造成不可挽回的損失 所以數據庫管理員在工作比較空的時候 需要對這些解決方案進行測試 壹來是看看隨著數據庫版本的升級 這些解決方案是否仍然有效;二是提高自己操作的熟練程度 確保以後在遇到類似故障時能夠萬無壹失的進行操作

 為了達到這個目的 筆者對自己提出了如下幾個要求

 壹是當數據庫新版本出來之後 需要對工作筆記中記錄下的解決方案進行測試 以判斷這些解決方案是否過期 沒有過期最好 如果過期了的話 則必須解決它 如需要考慮這些意外事件在新版中是否仍然會出現 如果仍然會出現的話 則就要在新版本功能的基礎上尋找新的解決方案 有些意外事件則可能會隨著數據庫版本的升級而被解決掉 故數據庫管理需要隨著數據庫版本的升級而不斷的進行測試 以提高相關解決方案的時效性

 二是給企業部署完成新的解決方案之後 需要挑選壹些重要的內容進行測試 如筆者給企業部署完成Oracle數據庫(采用磁盤陣列) 如果要模擬所有的失敗情況並測試相關對解決方案是否可行是不現實的 因為這需要花費很長的時間 得不償失 此時筆者會挑選壹些重要的或者經常發生的意外情況 並測試相關的解決方案是否可行 同時 這也是對企業用戶的壹種培訓 以提高他們獨立自主解決問題的能力 如對於上面這個案例 筆者會跟數企業用戶壹起 進行磁盤陣列有效性的測試 如換壹塊新的硬盤之後看看數據庫服務器是否會自動恢復相關的數據 把企業用戶培養起來了 那麽我們數據庫管理員也可以輕松很多

 三是對於壹些新的解決方案也需要進行測試 如筆者平時比較喜歡逛論壇 在論壇上有人提出壹個問題 後面有很多數據庫管理員會把相關的方案寫出來 這些方案有些可能是數據庫管理員已經知道了的;有些則是他們還沒有想到的 此時數據庫管理員需要對新的方案進行測試 因為也許這個新的解決方案能夠在更短時間內解決故障

lishixinzhi/Article/program/Oracle/201311/16673