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

數據泵備份之外的一些“副作用”

2013-11-13 22:15:05  來源: Oracle 

  數據泵是Oracle最近幾個版本中才引進的一項技術其主要用來對數據庫進行邏輯備份與恢復其主要包括expdp與imppd兩個實用程序數據庫傳統的備份基本上都是物理備份包括聯機備份與脫機備份等等但是數據泵在Oracle數據庫中為其實現了邏輯備份

  邏輯備份簡單的說就是將數據庫中的數據導出到一個轉儲文件中保存邏輯備份比物理備份具有更大的靈活性如根據需要數據庫管理員可以備份一個表空間中的數據也可以備份一個方案對象甚至只是某些特定表中的數據在還原的時候也可以針對不同的轉儲文件來恢復相關的數據可見數據泵提供的邏輯備份要比物理備份靈活的多不過筆者今天要談的不是數據泵邏輯備份的靈活性而是要談談通過數據泵對數據庫進行導入導出的幾個很有用的副作用在這些副作用的幫助下數據庫管理員可以節省大量的工作

  副作用一消除磁盤碎片

  在數據庫使用過程中難免為對保存在其中的數據進行刪刪減減這些操作難免會在硬盤中造成比較多的硬盤碎片如果在這台服務器中還部署了其他的應用服務那麼碎片會更多而這些硬盤碎片會在很大程度上影響數據庫的運行性能此時盡量消除硬盤碎片也是提高數據庫性能的一個很好的方法

  在Windows等操作系統中也有碎片整理工具但是這個操作系統提供的工具並能夠有效消除數據庫中的存儲碎片因為數據庫中的存儲碎片是由於數據塊大小存儲結構不合理的數據類型等等多個方面所造成的而操作系統與數據庫系統畢竟是兩個不同的應用系統為此通過操作系統提供的硬盤碎片處理程序往往很難消除數據庫系統中的磁盤碎片那麼在數據庫中該如何解決這個磁盤碎片問題呢?

  在以前版本的數據庫中數據庫管理員可能對此只能夠干瞪眼不過在Oracle G以後的數據庫中借助數據泵的作用就可以輕松的解決這個問題如利用數據泵實用程序先將數據庫中的數據全部導出然後再進行恢復在恢復的過程中Oracle數據庫系統會重新組織表的存儲結構減少表中的連接並有效的消除磁盤碎片從而可以在很大程度上提高數據庫的性能特別是對於那些變動性比較大的Oracke數據庫最好定時的利用數據泵工具進行導入導出的工作這有利於其提高數據庫的性能不過在使用數據泵導入導出數據的時候最好能夠選擇企業用戶不用數據庫的時候雖然這個導入導出花不了多少時間(以各存儲G左右的數據庫為例大概分鐘可以完成整個導入導出工作)但是如果在這個中間用戶對數據庫進行了修改那麼這個修改的數據就可能會丟失所以在進行這項工作的時候能夠斷開用戶與數據庫的連接是最好的

  副作用二可以在不同的操作系統之間進行數據遷移

  有時候企業可能需要在不同的操作系統之間進行數據庫的遷移如筆者前段時間就負責過類似的項目企業原先是在微軟的操作系統上部署Oracle數據庫系統的不過那時候企業采用的是盜版的操作系統由於微軟盜版打擊力度逐漸增強企業擔心總有一天會波及到他們;同時這個服務器系統穩定性也不是很高時不時的會跟企業用戶鬧點小矛盾為此企業准備乘早向Linux操作系統轉移其首要的目標就是把現在的一些服務器部署在Linux操作系統上所以需要把Oracle數據庫從Windows操作系統向Linux操作系統轉移

  要實現這個轉移在以前的數據庫版本中可能比較難但是在G等以後的數據庫版本中就變得很簡單了因為數據泵備份與恢復工具可以將數據庫中的數據存儲在一個轉儲文件中而這個轉儲文件是一個二進制形式的文件不受操作系統的影響為此在Windows操作系統平台中利用數據泵工具把數據導出保存在轉儲文件(二進制文件)中然後再在Linux操作系統上安裝好Oracle數據庫系統再利用數據泵工具把存儲在轉儲文件中的數據導入到數據庫中即可由於利用二進制文件來存儲數據為此不會因為操作系統平台而出現不能夠導入的情況這主要是因為二進制的文件中不會包含操作系統的信息所以在不同的操作系統平台上的Oracle數據庫之間可以直接導入導出數據可見數據泵對於在不同操作系統平台之間進行數據庫遷移是非常有用的

  副作用三用來進行數據庫的升級

  筆者前段時間遇到過一個項目要將Oracle數據庫從G升級到G在這個升級的過程中數據庫本身的升級難度並不是很大主要的問題是如何將數據進行升級因為兩個不同版本的數據庫系統新版本會對舊版本的數據庫系統進行一些必要的改善即使其兼容性再好如果直接利用聯機備份或者脫機備份得到的備份文件進行恢復的話仍然是不行的即使其能夠恢復成功但是在恢復的過程中會提示一些警告或者出錯信息這些內容會影響到以後數據庫運行的穩定性為此在數據庫進行升級的過程中利用備份文件來進行恢復數據並不是理想的方法

  筆者最認為最理想的方法是將數據表一張張的導入不過由於Oracle數據庫的內容比較多這個導起來比較麻煩筆者以前在進行數據庫升級時就寫過一個腳本語句即使在腳本語句的幫助下也很難一步到位完成不同版本之間的數據遷移工作而這次從G升級到G的時候筆者直接采用數據泵工具就順利完成了數據的遷移工作其實操作很簡單將低版本數據庫中的數據利用數據泵工具全部導出保存在轉儲文件中然後再利用數據泵工具將數據導入導高版本的數據庫中在導入的過程中數據泵實用工具會對某些內容進行自動的調整以符合新版本新特性的需要最用的是在數據泵工具的幫助下可以實現一次性導出與導入這可以讓數據庫管理員省下不少的心

  另外數據泵不僅可以幫助數據庫管理員將數據庫從低版本升級到高版本中如果有需要將數據庫的內容遷移到低版本中則數據泵也可以幫助管理員完成這方面的任務不過此時數據泵還需要其他一些輔助工具的幫助才行

  副作用四在不同方案之間實現數據的轉移

  有時候數據庫管理員可能需要在不同的方案之間實現數據的轉移如在數據庫中有兩個方案A與B其中方案A是企業正在使用的方案;而方案B是一個測試方案有時候設計開發了一個新功能需要在方案B下先進行測試不過為了保證測試方案的准確性需要把方案B中的數據保持最新即跟方案A中的數據進行同步此時數據庫管理員就需要把方案A中的數據轉移到方案B中

  此時數據庫管理員可以利用數據泵實用工具將方案A中的數據導出到轉儲文件中然後再將這個轉儲文件中的內容通過數據泵實用工具導入導方案B中從而完成在不同的數據庫對象之間進行數據遷移的任務此時數據恢復(其實准確的說應該是數據導入而不是數據恢復)不會因為方案名不同而拒絕恢復

  可見在數據泵工具的幫助下在不同方案對象之間進行數據的遷移變得非常的簡單所以數據庫管理員以後在進行測試的時候要保持測試方案對象與被測試對象的數據同步不再是難事

  總之數據泵實用工具是Oracle G G兩個數據庫版中很實用的一個管理工具之一其不僅可以用來完成傳統的數據備份需要而且其衍生出來的那些副作用還可以幫助我們管理員做好日常的維護工作從某種方面來說這些副作用可能比其本身數據備份功能還要來的重要對我們管理員更加有吸引力充分利用這些副作用可以大幅度的減少我們數據庫日常維護的工作量


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

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