溫偉強(qiáng)
摘 要 Oracle分布式數(shù)據(jù)庫是一個(gè)C/S體系結(jié)構(gòu)的系統(tǒng)。在客戶眼中所面對(duì)的只是一臺(tái)計(jì)算機(jī),但是卻是分布在整個(gè)網(wǎng)絡(luò)上的服務(wù)器為其提供服務(wù)。因此了解Oracle分布式數(shù)據(jù)庫和對(duì)其應(yīng)用進(jìn)行研究具有非常廣闊的前景。
【關(guān)鍵詞】Oracle 分布式數(shù)據(jù)庫 應(yīng)用研究
1 Oracle分布式數(shù)據(jù)庫的現(xiàn)狀
Oracle分布式數(shù)據(jù)庫是目前最主流的C/S或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫,同時(shí)也是世界上使用最多、范圍最廣的數(shù)據(jù)庫之一。
Oracle分布式數(shù)據(jù)庫是由若干個(gè)服務(wù)器組成,其中每個(gè)服務(wù)器間都擁有自己的數(shù)據(jù)庫及其數(shù)據(jù)庫管理系統(tǒng),它們通過網(wǎng)絡(luò)連接到一起,從物理結(jié)構(gòu)上看是分布式的,但從邏輯結(jié)構(gòu)上看是屬于同一系統(tǒng)的,而客戶的實(shí)際體驗(yàn)也和同一個(gè)系統(tǒng)無異。
(1)訪問完全透明。因?yàn)榉植际綌?shù)據(jù)庫是屬于同一系統(tǒng)的,所以用戶訪問數(shù)據(jù)庫時(shí),不需關(guān)心、也不用去關(guān)心具體的數(shù)據(jù)庫所在的位置,只需關(guān)心能夠像訪問本地計(jì)算機(jī)一樣去訪問就可以了。只要所使用的計(jì)算機(jī)聯(lián)網(wǎng),知道如何去搜索數(shù)據(jù),那么數(shù)據(jù)就和在眼前沒有任何分別,整個(gè)的訪問過程也是透明的。
(2)分布式處理事務(wù)與管理控制。遠(yuǎn)程訪問數(shù)據(jù)時(shí),要經(jīng)過多個(gè)服務(wù)器處理,才能將數(shù)據(jù)返回到本地計(jì)算機(jī)中。而多個(gè)站點(diǎn)相互協(xié)作處理提交的作業(yè),可以充分利用多臺(tái)主機(jī)的處理能力,合理分配網(wǎng)絡(luò)上的計(jì)算機(jī)資源,達(dá)到性能優(yōu)化的目的。允許分布在不同區(qū)域的人員對(duì)其自身的數(shù)據(jù)庫進(jìn)行控制。
(3)均衡網(wǎng)絡(luò)負(fù)載和響應(yīng)時(shí)間加快。分布式數(shù)據(jù)庫中,能夠保存遠(yuǎn)程數(shù)據(jù)的備份,這樣下次進(jìn)行訪問時(shí)就不需再次連接到遠(yuǎn)程服務(wù)器上,而是在本地備份上就能夠直接訪問資源,減少了網(wǎng)絡(luò)流量,均衡了網(wǎng)絡(luò)負(fù)載。當(dāng)讀取的數(shù)據(jù)在本地計(jì)算機(jī)中時(shí),就可以由用戶所使用的計(jì)算機(jī)執(zhí)行,響應(yīng)時(shí)間更快。讀取數(shù)據(jù)時(shí),客戶端可以從多個(gè)服務(wù)器中讀取,優(yōu)先選擇響應(yīng)最快的服務(wù)器,從而提高了數(shù)據(jù)訪問速度。
(4)高可靠性,可用性好。分布式數(shù)據(jù)庫由于由若干個(gè)站點(diǎn)構(gòu)成,因此出現(xiàn)故障時(shí)也只會(huì)在局部幾個(gè)站點(diǎn)出現(xiàn)故障,而不會(huì)影響到所有站點(diǎn)。從這點(diǎn)上能夠看出,分布式數(shù)據(jù)庫比傳統(tǒng)數(shù)據(jù)庫的可靠性更高。從原有數(shù)據(jù)庫的基礎(chǔ)上進(jìn)行擴(kuò)展就可以形成一個(gè)分布式數(shù)據(jù)庫,這比重建一個(gè)新的數(shù)據(jù)庫系統(tǒng)要簡單、容易很多。這樣不僅節(jié)約了投資成本,也提高了對(duì)原有數(shù)據(jù)庫的利用率,降低了因?yàn)樾陆〝?shù)據(jù)庫造成的數(shù)據(jù)丟失、損壞等現(xiàn)象發(fā)生的可能性。
2 Oracle分布式數(shù)據(jù)庫存在的問題
(1)安全性和保密性。由于本地計(jì)算機(jī)用戶知道遠(yuǎn)程數(shù)據(jù)庫用戶的口令,且本地用戶通過訪問遠(yuǎn)程表,就可以賦予和遠(yuǎn)程表擁有者相同的權(quán)限,可以對(duì)數(shù)據(jù)進(jìn)行隨意的修改、破壞。分布式數(shù)據(jù)庫的數(shù)據(jù)是存放在不同地區(qū)的不同計(jì)算機(jī)上,通過網(wǎng)絡(luò)來實(shí)現(xiàn)控制,人為攻擊數(shù)據(jù)庫,如黑客入侵等引起的安全問題,數(shù)據(jù)共享過程中存在的安全隱患以及網(wǎng)絡(luò)本身就存在安全性和保密性較低的特點(diǎn),因此存放的數(shù)據(jù)安全性得不到保障。
(2)故障率高。因?yàn)閿?shù)據(jù)幾乎全部都分布在遠(yuǎn)程網(wǎng)絡(luò)上,想要進(jìn)行讀取時(shí)也必須通過遠(yuǎn)程網(wǎng)絡(luò)來完成,而當(dāng)遇到網(wǎng)絡(luò)傳輸速率(即網(wǎng)速)不快的情況時(shí),系統(tǒng)進(jìn)行響應(yīng)的時(shí)間會(huì)變慢。當(dāng)遇到故障發(fā)生后,系統(tǒng)想要進(jìn)行恢復(fù)因其自身系統(tǒng)的復(fù)雜性也存在一定的困難,因此可靠性有待進(jìn)一步提高。因此i數(shù)據(jù)存放時(shí)要將數(shù)據(jù)和事務(wù)日志這兩者進(jìn)行分開存儲(chǔ),如若存放在一起,當(dāng)計(jì)算機(jī)因故障無法運(yùn)行時(shí),那么相應(yīng)的數(shù)據(jù)也就無法通過事務(wù)日志進(jìn)行恢復(fù)了,可以大大提高數(shù)據(jù)的可用性。
(3)數(shù)據(jù)的存取復(fù)雜。目前來說,在分布式數(shù)據(jù)庫進(jìn)行存取數(shù)據(jù)操作相對(duì)于集中式數(shù)據(jù)庫而言,更復(fù)雜,系統(tǒng)開銷更大,因?yàn)樗枰獙⑺樵兊降臄?shù)據(jù)通過多個(gè)服務(wù)器返回到本地計(jì)算機(jī)中去。而原來在集中式系統(tǒng)中存取數(shù)據(jù)的技術(shù)又不適用于現(xiàn)有的分布式數(shù)據(jù)庫系統(tǒng)中。原本在一個(gè)服務(wù)器上的數(shù)據(jù),現(xiàn)在要通過網(wǎng)絡(luò)在若干個(gè)服務(wù)器上進(jìn)行存取,達(dá)到數(shù)據(jù)共享的目的,無疑對(duì)系統(tǒng)的性能要求更高。
3 Oracle分布式數(shù)據(jù)庫系統(tǒng)優(yōu)化的解決方案
3.1 編寫具有健壯性的代碼
分布式數(shù)據(jù)庫中的數(shù)據(jù)時(shí)海量,而面對(duì)這些海量數(shù)據(jù)進(jìn)行處理就必須使用程序來查找,如搜索引擎等。尤其是面對(duì)復(fù)雜、無序的數(shù)據(jù)進(jìn)行處理時(shí),更需要在保證所查詢數(shù)據(jù)的準(zhǔn)確性之外,還要保證數(shù)據(jù)處理效率。
3.2 建立緩存機(jī)制和使用臨時(shí)表、中間表
當(dāng)數(shù)據(jù)量增加時(shí),緩存的大小制約著數(shù)據(jù)處理的成敗,同時(shí)也要考慮將數(shù)據(jù)進(jìn)行匯總,把大表轉(zhuǎn)換成小表,切換成一個(gè)個(gè)的帶索引小表,最后通過一定的規(guī)則進(jìn)行合并。這樣不僅可以使查詢效率加快,不需要直接到每個(gè)服務(wù)器中去查找數(shù)據(jù),只需要借助于每個(gè)表項(xiàng)的索引就能夠查找到所需數(shù)據(jù),也會(huì)降低可能產(chǎn)生的風(fēng)險(xiǎn)。
3.3 提高分布式數(shù)據(jù)庫的安全性
(1)根據(jù)安全性級(jí)別設(shè)置安全機(jī)制。不同的數(shù)據(jù)庫的安全級(jí)別是不同的,要根據(jù)實(shí)際數(shù)據(jù)庫所需的安全性級(jí)別來設(shè)置數(shù)據(jù)庫。如一般性的站點(diǎn)可采取對(duì)數(shù)據(jù)庫訪問者進(jìn)行分類對(duì)待,給每一類分別以不同的操作權(quán)限。安全性較高的站點(diǎn)可以在數(shù)據(jù)庫中使用加密機(jī)制,來保障數(shù)據(jù)庫的安全。設(shè)計(jì)人員在部署數(shù)據(jù)庫時(shí),就應(yīng)該先尋找數(shù)據(jù)庫服務(wù)器中可能因修改而產(chǎn)生的漏洞和弱點(diǎn),時(shí)刻注意保護(hù)數(shù)據(jù)庫的安全。
(2)物理層上保護(hù)。內(nèi)部安全和外部安全同等重要。保護(hù)數(shù)據(jù)不受入侵者的物理破壞,保護(hù)設(shè)備的正常運(yùn)行,保護(hù)不受洪水、電力等的破壞。按照要求制定具體措施,對(duì)部門內(nèi)部人員賦予安全等級(jí)。
(3)加強(qiáng)數(shù)據(jù)審計(jì)??梢酝ㄟ^對(duì)系統(tǒng)日志的擴(kuò)充來記錄用戶和相關(guān)操作的信息,一般要求數(shù)據(jù)庫管理系統(tǒng)能夠?qū)⑺械牟僮饔涗浵聛恚到y(tǒng)保留一個(gè)日志文件,用于事后調(diào)查和分析。
(4)數(shù)據(jù)一致性。數(shù)據(jù)的一致性也屬于安全問題,在日常運(yùn)行過程中會(huì)受到各種各樣的人為或非人為的破壞。為了解決這一問題,DBMS一般都要提供恰當(dāng)?shù)南到y(tǒng)控制、備份和恢復(fù)過程等。
4 結(jié)束語
Oracle分布式數(shù)據(jù)庫使用起來既方便又快捷,不僅提升了使用效率,也實(shí)現(xiàn)了異地存儲(chǔ)。對(duì)于Oracle分布式數(shù)據(jù)庫的應(yīng)用還有待于進(jìn)行進(jìn)一步的研究。
參考文獻(xiàn)
[1]趙小航.分布式數(shù)據(jù)庫系統(tǒng)安全隱患及其對(duì)策[J].科技信息,2009(12).
[2]陳永杰,郭巍,楊芳南,陳旭東.Oracle9i高級(jí)復(fù)制在綜合網(wǎng)管中的應(yīng)用研究[J].中國科技信息,2007(06).
[3]劉洪昱.ORACLE數(shù)據(jù)傳輸技術(shù)在保險(xiǎn)信息系統(tǒng)上線過程中的應(yīng)用[D].上海交通大學(xué),2012.
作者單位
樂凱膠片股份有限公司 河北省保定市 071054