国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

數(shù)據(jù)泵備份之外的一些“副作用”
2009-06-04   IT專家網(wǎng)

     數(shù)據(jù)泵是Oracle最近幾個版本中才引進(jìn)的一項技術(shù),其主要用來對數(shù)據(jù)庫進(jìn)行邏輯備份與恢復(fù)。其主要包括expdp與imppd兩個實用程序。數(shù)據(jù)庫傳統(tǒng)的備份基本上都是物理備份,包括聯(lián)機(jī)備份與脫機(jī)備份等等。但是數(shù)據(jù)泵在Oracle數(shù)據(jù)庫中為其實現(xiàn)了邏輯備份。

  邏輯備份簡單的說,就是將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到一個轉(zhuǎn)儲文件中保存。邏輯備份比物理備份具有更大的靈活性。如根據(jù)需要,數(shù)據(jù)庫管理員可以備份一個表空間中的數(shù)據(jù),也可以備份一個方案對象、甚至只是某些特定表中的數(shù)據(jù)。在還原的時候,也可以針對不同的轉(zhuǎn)儲文件來恢復(fù)相關(guān)的數(shù)據(jù)。可見,數(shù)據(jù)泵提供的邏輯備份要比物理備份靈活的多。不過筆者今天要談的不是數(shù)據(jù)泵邏輯備份的靈活性,而是要談?wù)勍ㄟ^數(shù)據(jù)泵對數(shù)據(jù)庫進(jìn)行導(dǎo)入導(dǎo)出的幾個很有用的“副作用”。在這些副作用的幫助下,數(shù)據(jù)庫管理員可以節(jié)省大量的工作。

  副作用一:消除磁盤碎片。

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

  在Windows等操作系統(tǒng)中也有碎片整理工具。但是這個操作系統(tǒng)提供的工具并能夠有效消除數(shù)據(jù)庫中的存儲碎片。因為數(shù)據(jù)庫中的存儲碎片是由于數(shù)據(jù)塊大小、存儲結(jié)構(gòu)、不合理的數(shù)據(jù)類型等等多個方面所造成的。而操作系統(tǒng)與數(shù)據(jù)庫系統(tǒng)畢竟是兩個不同的應(yīng)用系統(tǒng),為此通過操作系統(tǒng)提供的硬盤碎片處理程序往往很難消除數(shù)據(jù)庫系統(tǒng)中的磁盤碎片。那么在數(shù)據(jù)庫中該如何解決這個磁盤碎片問題呢?

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

  副作用二:可以在不同的操作系統(tǒng)之間進(jìn)行數(shù)據(jù)遷移。

  有時候企業(yè)可能需要在不同的操作系統(tǒng)之間進(jìn)行數(shù)據(jù)庫的遷移。如筆者前段時間,就負(fù)責(zé)過類似的項目。企業(yè)原先是在微軟的操作系統(tǒng)上部署Oracle數(shù)據(jù)庫系統(tǒng)的。不過那時候企業(yè)采用的是盜版的操作系統(tǒng)。由于微軟盜版打擊力度逐漸增強(qiáng),企業(yè)擔(dān)心總有一天會波及到他們;同時這個服務(wù)器系統(tǒng)穩(wěn)定性也不是很高,時不時的會跟企業(yè)用戶鬧點小矛盾。為此企業(yè)準(zhǔn)備乘早向Linux操作系統(tǒng)轉(zhuǎn)移。其首要的目標(biāo)就是把現(xiàn)在的一些服務(wù)器部署在Linux操作系統(tǒng)上。所以需要把Oracle數(shù)據(jù)庫從Windows操作系統(tǒng)向Linux操作系統(tǒng)轉(zhuǎn)移。

  要實現(xiàn)這個轉(zhuǎn)移在以前的數(shù)據(jù)庫版本中可能比較難。但是在10G等以后的數(shù)據(jù)庫版本中就變得很簡單了。因為數(shù)據(jù)泵備份與恢復(fù)工具可以將數(shù)據(jù)庫中的數(shù)據(jù)存儲在一個轉(zhuǎn)儲文件中。而這個轉(zhuǎn)儲文件是一個二進(jìn)制形式的文件,不受操作系統(tǒng)的影響。為此在Windows操作系統(tǒng)平臺中,利用數(shù)據(jù)泵工具把數(shù)據(jù)導(dǎo)出保存在轉(zhuǎn)儲文件(二進(jìn)制文件)中。然后再在Linux操作系統(tǒng)上安裝好Oracle數(shù)據(jù)庫系統(tǒng),再利用數(shù)據(jù)泵工具把存儲在轉(zhuǎn)儲文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中即可。由于利用二進(jìn)制文件來存儲數(shù)據(jù),為此不會因為操作系統(tǒng)平臺而出現(xiàn)不能夠?qū)氲那闆r。這主要是因為二進(jìn)制的文件中不會包含操作系統(tǒng)的信息。所以在不同的操作系統(tǒng)平臺上的Oracle數(shù)據(jù)庫之間可以直接導(dǎo)入導(dǎo)出數(shù)據(jù)。可見,數(shù)據(jù)泵對于在不同操作系統(tǒng)平臺之間進(jìn)行數(shù)據(jù)庫遷移是非常有用的。

  副作用三:用來進(jìn)行數(shù)據(jù)庫的升級。

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

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

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

  副作用四:在不同方案之間實現(xiàn)數(shù)據(jù)的轉(zhuǎn)移。#p#分頁標(biāo)題#e#

  有時候數(shù)據(jù)庫管理員可能需要在不同的方案之間實現(xiàn)數(shù)據(jù)的轉(zhuǎn)移。如在數(shù)據(jù)庫中有兩個方案A與B。其中方案A是企業(yè)正在使用的方案;而方案B是一個測試方案。有時候設(shè)計開發(fā)了一個新功能,需要在方案B下先進(jìn)行測試。不過為了保證測試方案的準(zhǔn)確性,需要把方案B中的數(shù)據(jù)保持最新,即跟方案A中的數(shù)據(jù)進(jìn)行同步。此時數(shù)據(jù)庫管理員就需要把方案A中的數(shù)據(jù)轉(zhuǎn)移到方案B中。

  此時數(shù)據(jù)庫管理員可以利用數(shù)據(jù)泵實用工具將方案A中的數(shù)據(jù)導(dǎo)出到轉(zhuǎn)儲文件中。然后再將這個轉(zhuǎn)儲文件中的內(nèi)容通過數(shù)據(jù)泵實用工具導(dǎo)入導(dǎo)方案B中。從而完成在不同的數(shù)據(jù)庫對象之間進(jìn)行數(shù)據(jù)遷移的任務(wù)。此時數(shù)據(jù)恢復(fù)(其實準(zhǔn)確的說,應(yīng)該是數(shù)據(jù)導(dǎo)入,而不是數(shù)據(jù)恢復(fù)),不會因為方案名不同,而拒絕恢復(fù)。

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

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

熱詞搜索:

上一篇:MySQL數(shù)據(jù)庫在Linux下二進(jìn)制日志恢復(fù)方法
下一篇:來自SSH的兩個新的數(shù)據(jù)安全解決方案

分享到: 收藏
主站蜘蛛池模板: 宁强县| 彭阳县| 秭归县| 武清区| 南华县| 新蔡县| 明光市| 拜泉县| 日喀则市| 厦门市| 池州市| 万源市| 油尖旺区| 枣阳市| 鹤庆县| 吉林市| 寻甸| 博湖县| 醴陵市| 海原县| 余江县| 黔西县| 鄂温| 正镶白旗| 海丰县| 南郑县| 随州市| 中西区| 镇原县| 万山特区| 江门市| 昔阳县| 奎屯市| 武隆县| 乐平市| 慈利县| 社会| 广平县| 法库县| 光泽县| 商都县|