摘要:數(shù)據(jù)庫分發(fā)技術(shù)不僅給企業(yè)提供了安全的數(shù)據(jù)備份,而且保證的業(yè)務(wù)的有效、持續(xù)進(jìn)行,更加深入的進(jìn)行數(shù)據(jù)挖掘。Oracle數(shù)據(jù)庫在數(shù)據(jù)分發(fā)技術(shù)方面已非常成熟,也形成了有體系、多層次的軟件技術(shù)。
關(guān)鍵詞:數(shù)據(jù)分發(fā);數(shù)據(jù)備份;數(shù)據(jù)分析應(yīng)用
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 20-0000-02
為了降低經(jīng)營(yíng)管理成本、保證業(yè)務(wù)的持續(xù)性、減少信息傳遞的環(huán)節(jié)、提供統(tǒng)一的業(yè)務(wù)平臺(tái),數(shù)據(jù)和業(yè)務(wù)大集中就成了必然趨勢(shì)。但是,隨著數(shù)據(jù)的大集中,問題也隨之而來,比如數(shù)據(jù)庫負(fù)載問題、數(shù)據(jù)的邏輯容災(zāi)和災(zāi)難恢復(fù)、網(wǎng)絡(luò)的安全保證、下級(jí)機(jī)構(gòu)的個(gè)性化分析應(yīng)用業(yè)務(wù)等。數(shù)據(jù)庫復(fù)制分發(fā)技術(shù)不僅很好地將備份數(shù)據(jù)分散于各分支機(jī)構(gòu),同時(shí)還能在不增加總機(jī)構(gòu)服務(wù)器壓力的情況下給基層單位提供真實(shí)有用的數(shù)據(jù)用于個(gè)性化應(yīng)用。
基于Oracle數(shù)據(jù)庫的數(shù)據(jù)分發(fā)技術(shù)有exp/imp(導(dǎo)入導(dǎo)出)技術(shù)、物化視圖技術(shù)、流復(fù)制(Streams Replication)和備庫(Dataguard)。
1 exp/imp(導(dǎo)入導(dǎo)出)技術(shù)
imp/exp是oracle數(shù)據(jù)還原與備份功能,它是oracle的內(nèi)置函數(shù)。Exp命令可以把數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫服務(wù)器導(dǎo)出到本地的dmp文件,imp命令可以把dmp文件從本地導(dǎo)入到遠(yuǎn)處的數(shù)據(jù)庫服務(wù)器中。
exp/imp(導(dǎo)入導(dǎo)出)技術(shù)主要有以下優(yōu)點(diǎn):
(1)屬于oracle數(shù)據(jù)庫自帶命令,簡(jiǎn)單易學(xué)、處理方便。(2)由于屬邏輯備份/恢復(fù),可以跨平臺(tái)使用。(3)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫都可以處在正常運(yùn)行狀態(tài)下進(jìn)行。(4)不受時(shí)間、地域的約束。(5)對(duì)網(wǎng)絡(luò)要求也不高
exp/imp(導(dǎo)入導(dǎo)出)技術(shù)主要有以下缺點(diǎn):
(1)由于是oracle數(shù)據(jù)庫自帶的簡(jiǎn)單命令,只能處理少量數(shù)據(jù)。(2)只能通過手動(dòng)方式進(jìn)行,所以時(shí)間間隔較大。(3)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的一致性無保障。
2 物化視圖技術(shù)
物化視圖也是通過調(diào)用oracle的一些系統(tǒng)函數(shù)的方式來實(shí)現(xiàn)的。物化視圖先建立物化視圖日志,然后讀取日志的方式復(fù)制數(shù)據(jù)的,包括一個(gè)查詢結(jié)果的數(shù)據(jù)庫對(duì)像,它是遠(yuǎn)程數(shù)據(jù)的本地副本,或者用來生成基于數(shù)據(jù)表求和的匯總表。物化視圖存儲(chǔ)基于遠(yuǎn)程表的數(shù)據(jù),也可以稱為快照。物化視圖可以查詢表,視圖和其它的物化視圖。通常情況下,物化視圖被稱為主表(在復(fù)制期間)或明細(xì)表(在數(shù)據(jù)倉庫中)。對(duì)于復(fù)制,物化視圖允許你在本地維護(hù)遠(yuǎn)程數(shù)據(jù)的副本,這些副本是只讀的。如果你想修改本地副本,必須用高級(jí)復(fù)制的功能。當(dāng)你想從一個(gè)表或視圖中抽取數(shù)據(jù)時(shí),你可以用從物化視圖中抽取。對(duì)于數(shù)據(jù)倉庫,創(chuàng)建的物化視圖通常情況下是聚合視圖,單一表聚合視圖和連接視圖。
2.1 物化視圖技術(shù)主要有以下優(yōu)點(diǎn)
(1)物化視圖的最大的優(yōu)勢(shì)是可以提高性能:Oracle的物化視圖提供了強(qiáng)大的功能,可以用于預(yù)先計(jì)算并保存表連接或聚集等耗時(shí)較多的操作的結(jié)果,這樣,在執(zhí)行查詢時(shí),就可以避免進(jìn)行這些耗時(shí)的操作。(2)物化視圖可以建立索引并進(jìn)行統(tǒng)計(jì)分析等方式以進(jìn)一步提高目標(biāo)數(shù)據(jù)庫的查詢性能。(3)通過預(yù)先計(jì)算好答案存儲(chǔ)起來,可以大大地減少機(jī)器的負(fù)載:A.更少的物理讀--掃描更少的數(shù)據(jù);B.更少的寫--不用經(jīng)常排序和聚集;C.減少CPU的消耗--不用對(duì)數(shù)據(jù)進(jìn)行聚集計(jì)算和函數(shù)調(diào)用;D.顯著地加快響應(yīng)時(shí)間--在使用物化視圖查詢數(shù)據(jù)時(shí)會(huì)很快的返回查詢結(jié)果。
2.2 物化視圖技術(shù)主要有以下缺點(diǎn)
(1)物化視圖用于只讀或者“精讀”環(huán)境下工作最好,不用于聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP)環(huán)境,在事實(shí)表等更新時(shí)會(huì)導(dǎo)致物化視圖行鎖,從而影響系統(tǒng)并發(fā)性。(2)物化視圖有出現(xiàn)無法快速刷新,導(dǎo)致查詢數(shù)據(jù)不準(zhǔn)確的現(xiàn)象。(3)Rowid物化視圖(創(chuàng)建的物化視圖通常情況下有主鍵,rowid,和子查詢視圖)只有一個(gè)單一的主表,不能包括下面任何一項(xiàng):A.Distinct或者聚合函數(shù);B.Group by,子查詢,連接和SET操作。(4)物化視圖會(huì)增加對(duì)磁盤資源的需求,即需要永久分配的硬盤空間給物化視圖來存儲(chǔ)數(shù)據(jù)。(5)物化視圖的工作原理受一些可能的約束,比如主鍵,外鍵等。
3 Streams數(shù)據(jù)同步技術(shù)
Streams是Oracle為提高數(shù)據(jù)庫的高可用性和數(shù)據(jù)的分發(fā)和共享功能而設(shè)計(jì)的,Streams利用高級(jí)隊(duì)列技術(shù),通過用LogMiner挖掘日志文件生成變更的邏輯記錄,然后將這些變更應(yīng)用到目標(biāo)數(shù)據(jù)庫上,從而實(shí)現(xiàn)數(shù)據(jù)庫之間或一個(gè)數(shù)據(jù)庫內(nèi)部的數(shù)據(jù)同步。
3.1 Streams數(shù)據(jù)同步技術(shù)有以下優(yōu)勢(shì)
(1)可支持一對(duì)多、多對(duì)一和雙向復(fù)制,可用于數(shù)據(jù)分發(fā)和共享,且對(duì)網(wǎng)絡(luò)的要求不高;(2)可以進(jìn)行局部復(fù)制、異構(gòu)復(fù)制、遠(yuǎn)程容災(zāi),并可在復(fù)制過程中對(duì)數(shù)據(jù)進(jìn)行過濾和轉(zhuǎn)換,使之滿足不同的需要;(3)Oracle數(shù)據(jù)庫自身內(nèi)置的功能,與每個(gè)Oracle新版本的新特性都完全兼容;(4)可支持非Oracle數(shù)據(jù)庫和Oracle數(shù)據(jù)庫之間的數(shù)據(jù)同步;(5)目標(biāo)數(shù)據(jù)庫處于打開狀態(tài),可以在保持?jǐn)?shù)據(jù)同步的同時(shí)執(zhí)行查詢等操作,分擔(dān)源數(shù)據(jù)庫的壓力。
3.2 Streams數(shù)據(jù)同步技術(shù)有以下缺點(diǎn)
(1)配置維護(hù)較復(fù)雜,需要較高的技術(shù)水平;(2)在非Downstream復(fù)制中,對(duì)源數(shù)據(jù)庫壓力較大;如果使用Downstream復(fù)制,則增加了配置的復(fù)雜性且需要通過網(wǎng)絡(luò)傳輸整個(gè)日志文件,對(duì)網(wǎng)絡(luò)帶寬要求較高;(3)不能支持某些特定的數(shù)據(jù)對(duì)象和數(shù)據(jù)類型,且不能保證數(shù)據(jù)的零丟失。
4 DataGuard數(shù)據(jù)同步技術(shù)
DataGuard是Oracle數(shù)據(jù)庫自帶的數(shù)據(jù)同步功能,基本原理是將日志文件從原數(shù)據(jù)庫傳輸?shù)侥繕?biāo)數(shù)據(jù)庫,然后在目標(biāo)數(shù)據(jù)庫上應(yīng)用這些日志文件,從而使目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫保持同步。
4.1 DataGuard數(shù)據(jù)同步技術(shù)有以下優(yōu)
(1)Oracle數(shù)據(jù)庫自身內(nèi)置的功能,與每個(gè)Oracle新版本的新特性都完全兼容;(2)在最大保護(hù)模式下,可確保數(shù)據(jù)的零丟失;(3)數(shù)據(jù)庫處于打開狀態(tài),可以在保持?jǐn)?shù)據(jù)同步的同時(shí)執(zhí)行查詢等操作,
4.2 DataGuard數(shù)據(jù)同步技術(shù)的劣勢(shì)體現(xiàn)在以下幾個(gè)方面
(1)由于傳輸整個(gè)日志文件且要停止應(yīng)用日志,因此需要較高的網(wǎng)絡(luò)帶寬,也將使目標(biāo)庫與源數(shù)據(jù)不能保持同步;(2)數(shù)據(jù)庫不能支持某些特定的數(shù)據(jù)對(duì)象和數(shù)據(jù)類型;(3)不支持一對(duì)多復(fù)制及雙向復(fù)制,因此無法應(yīng)用于信息集成的場(chǎng)合;(4)只能復(fù)制整個(gè)數(shù)據(jù)庫,不能選擇某個(gè)schema或表空間進(jìn)行單獨(dú)復(fù)制;(5)不支持異構(gòu)的系統(tǒng)環(huán)境,需要相同的操作系統(tǒng)版本和數(shù)據(jù)庫版本
采用dataguard技術(shù),配置與管理比較簡(jiǎn)單,數(shù)據(jù)的安全性相當(dāng)有保障,物理備用庫可以在最短的時(shí)間完成故障切換,邏輯備用庫在保障數(shù)據(jù)安全的同時(shí), 也可以承擔(dān)大量的報(bào)表等業(yè)務(wù)。因此,dataguard在高可用及容災(zāi)方面一般是dba的首選。
參考文獻(xiàn):
[1]郭晶.Oracle9i數(shù)據(jù)庫高級(jí)管理[M].電子工業(yè)出版社.
[2]徐秀華,文必龍,畢碩本.Oracle 9i高級(jí)復(fù)制技術(shù)及其應(yīng)用
[作者簡(jiǎn)介]
曾榮華(1977-)男,江西寧都人,贛州市地方稅務(wù)局?jǐn)?shù)據(jù)庫工程師,本科,學(xué)士,研究方向:數(shù)據(jù)庫應(yīng)用。