熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 15:25:15  來源: Oracle 

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

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

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

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

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

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

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

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

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

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

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

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

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

  招數三測試測試再測試

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

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

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

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

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

  以上幾個要求就是筆者日常工作中在備份還原測試方面對自己提出的幾個要求大家若認為覺得合理的話則也可以這麼去做


From:http://tw.wingwit.com/Article/program/Oracle/201311/16673.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.