摘 要:文章在分析了集中數(shù)據(jù)庫存在的一些缺點和不足的前提下,并針對分布式數(shù)據(jù)庫所具有的特點和優(yōu)勢,得出一個結(jié)論即數(shù)據(jù)的同步技術(shù)是將分布式數(shù)據(jù)轉(zhuǎn)變?yōu)閿?shù)據(jù)共享的關(guān)鍵。在文章中對Oracle數(shù)據(jù)庫進(jìn)行了簡要的介紹,并重點分析了Oracle數(shù)據(jù)同步技術(shù)在醫(yī)院HIS系統(tǒng)中的應(yīng)用。
關(guān)鍵詞:Oracle;數(shù)據(jù)同步;Oracle數(shù)據(jù)庫
在信息管理過程中,數(shù)據(jù)庫作為一種重要的工具而被廣泛的使用。數(shù)據(jù)庫系統(tǒng)是在六十年代出現(xiàn)的,至今已經(jīng)有三十多年的發(fā)展和成長歷史,在這短短的幾十年里,數(shù)據(jù)庫經(jīng)歷了第一代的網(wǎng)狀、屋次數(shù)據(jù)庫,第二代的關(guān)系數(shù)據(jù)庫系統(tǒng)以及目前使用最為廣泛的以面向?qū)ο鬄橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫的出現(xiàn)給眾多的領(lǐng)域發(fā)展帶來極大的便利,在過去傳統(tǒng)的HIS系統(tǒng)中,最常使用的是集中式數(shù)據(jù)庫,集中式數(shù)據(jù)庫最主要的優(yōu)點是便于維護,其缺點是可靠性較差。
Oracle數(shù)據(jù)庫是美國的甲骨文公司首先提出的一種以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品。是目前最為流行的客戶/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫之一。Oracle數(shù)據(jù)庫具有完整的數(shù)據(jù)管理系統(tǒng)功能,同時它作為分布式數(shù)據(jù)庫又可以實現(xiàn)分布式處理的功能。其實,早在二十世紀(jì)起始年代末到八十年代之間,就已經(jīng)出現(xiàn)了一些分布式數(shù)據(jù)庫的原型系統(tǒng),如美國加利福尼亞大學(xué)的分布式Ingresl31和IBM的R*系統(tǒng)等,這些使用較為廣泛的數(shù)據(jù)庫系統(tǒng)的共同特點是可以允許一個數(shù)據(jù)在多個服務(wù)器中共享,也就是說只需要一個本地的服務(wù)器就可以對位于不同地點的服務(wù)器上的數(shù)據(jù)進(jìn)行讀取,同時也可以對所有的數(shù)據(jù)進(jìn)行拷貝,在這一前提下,可以將存在于分布式數(shù)據(jù)庫系統(tǒng)中的所有服務(wù)器都進(jìn)行本地數(shù)據(jù)庫數(shù)據(jù)的讀取。使用Oracle數(shù)據(jù)庫的復(fù)制技術(shù)來實現(xiàn)分布式數(shù)據(jù)庫系統(tǒng),這和集中式數(shù)據(jù)相比具有更加穩(wěn)定的可靠性,而且也可以對數(shù)據(jù)庫進(jìn)行實時的備份,以能夠進(jìn)一步的改善和提高數(shù)據(jù)庫服務(wù)器的性能,并減少服務(wù)器處理數(shù)據(jù)時的反應(yīng)時間。
只要在一種機型上學(xué)會了對Oracle數(shù)據(jù)庫知識的使用,則可以在各種類型的機器上使用。對Oracle數(shù)據(jù)庫使用的方便性主要是取決于Oracle數(shù)據(jù)庫所具有的以下特點:首先,Oracle數(shù)據(jù)庫具有強大的、完整的數(shù)據(jù)管理功能,包括可以對數(shù)據(jù)進(jìn)行適時的共享;含有大量的數(shù)據(jù)信息;可以長久的對數(shù)據(jù)進(jìn)行保存;數(shù)據(jù)具有極強的可靠性。其次,具有分布式處理功能,主要是隨著Oracle數(shù)據(jù)庫技術(shù)的不斷更新?lián)Q代,技術(shù)穩(wěn)定性、可靠性以及應(yīng)用性更加完善,使得分布式數(shù)據(jù)庫的功能更加的完善,而且,通過Oracle數(shù)據(jù)庫可以實現(xiàn)對數(shù)據(jù)庫的靈活操作。再次,完備關(guān)系的產(chǎn)品,這主要包含四個方面的內(nèi)容:數(shù)據(jù)庫物理性和邏輯性之間具有相對獨立的準(zhǔn)則;保證訪問的準(zhǔn)則;視圖不斷更新的準(zhǔn)則;信息準(zhǔn)則。除了以上幾點特點外,Oracle數(shù)據(jù)庫的優(yōu)點也使得其在HIS中具有廣泛的應(yīng)用,這些優(yōu)點包括:具有很強的實用性;具有很強的穩(wěn)定性;能夠保證數(shù)據(jù)的安全性以及良好的可擴展性。
1 基于Oracle高級復(fù)制的數(shù)據(jù)同步技術(shù)的研究
Oracle的高級復(fù)制是一個維護,例如引索、表和視圖等數(shù)據(jù)庫和復(fù)制存在于由多個數(shù)據(jù)庫服務(wù)器組成的分布式數(shù)據(jù)系統(tǒng)中數(shù)據(jù)的過程。Oracle的高級復(fù)制技術(shù)的首次提出是在Oracle7.1.6版中,而在這之前的版本中,僅僅是一些有關(guān)“只讀實體化視圖”這一基本數(shù)據(jù)復(fù)制技術(shù)。隨著科技的不斷進(jìn)步,以及為了能夠?qū)崿F(xiàn)更好的適應(yīng)未來更多的應(yīng)用場合,Oracle也逐漸的提出了越來越多的高級復(fù)制技術(shù),主要包括實體化視圖等。
2 基于Oracle高級復(fù)制的數(shù)據(jù)同步技術(shù)
VARCHAR2和NUMBER等標(biāo)準(zhǔn)的數(shù)據(jù)類型,可以在Oracle數(shù)據(jù)庫中進(jìn)行多個復(fù)制位點之間的實時數(shù)據(jù)傳送。在某些條件下,例如一個遠(yuǎn)程的站點不能夠被有效的利用,那么傳播更改的延遲RPC將會被儲存在本地列表中,并被延時執(zhí)行。在進(jìn)行多個主機間的數(shù)據(jù)庫復(fù)制時,我們需要注意以下三個方面來保證數(shù)據(jù)庫中數(shù)據(jù)的完整性,以及保證在數(shù)據(jù)進(jìn)行近實時傳播時為其提供充足的性能,這三方面需要注意的是:盡可能的獲得和利用有效的拷貝更改;通過并行的方式最大化傳播性能;在數(shù)據(jù)庫的傳輸發(fā)生改變時,必須能夠?qū)l(fā)送的數(shù)據(jù)總量最小。值得一提的是,Oracle的更改、獲得以及應(yīng)用機制能夠完全的和Oracle服務(wù)整合到一起,這就使得管理變得更加方便快捷。Oracle的傳輸機制是利用許多個會話使得每個位于不同的物理遠(yuǎn)程站點能夠合并到一起,而且,可以十分有效的利用事務(wù)之間相互關(guān)系來維持事務(wù)的完整性。
3 基于Oracle流的數(shù)據(jù)同步技術(shù)
Oracle流也是一種可以實現(xiàn)信息共享的數(shù)據(jù)庫技術(shù),其首次是在Oracle9.2.1版本中出現(xiàn)。Oracle應(yīng)用于高級數(shù)據(jù)復(fù)制和拷貝中的進(jìn)程可以概括為三個基本的步驟:(1)捕獲進(jìn)程;捕獲進(jìn)程可以對捕獲到的源數(shù)據(jù)庫對象進(jìn)行適當(dāng)?shù)母模瑢⒉东@后的數(shù)據(jù)格式轉(zhuǎn)變?yōu)長CRs,然后將其放入到隊列中;(2)傳播進(jìn)程;傳播進(jìn)程可以把已經(jīng)達(dá)到數(shù)據(jù)庫隊列中再次傳送到目的數(shù)據(jù)庫的隊列中;(3)應(yīng)用進(jìn)程;其作用是將傳播過來的LCRs格式的數(shù)據(jù)作用到相應(yīng)的數(shù)據(jù)庫對象上,進(jìn)而實現(xiàn)數(shù)據(jù)的同步。
捕獲進(jìn)程最大的優(yōu)點即能夠在幾乎不對原有的系統(tǒng)造成干擾的前提下,可以有效將來源于本地文件中獲得的數(shù)據(jù)庫對象的DML進(jìn)行更改,并將其轉(zhuǎn)化為LCRs格式,并放入到本地隊列中存儲。重要的是這種捕獲進(jìn)程可以在整個數(shù)據(jù)庫中發(fā)生。捕獲進(jìn)程能夠捕獲的數(shù)據(jù)類型有CHAR、DATE、RAW、TIMESTAMP等,捕獲進(jìn)程還可以對一些操作型的數(shù)據(jù)進(jìn)行捕獲,例如DELETE、INSERT等。Oracle的數(shù)據(jù)傳播進(jìn)程并非把所有的捕獲到的數(shù)據(jù)結(jié)果傳輸?shù)剿械臄?shù)據(jù)庫,而是通過定向穿透使得多個或者少數(shù)的系統(tǒng)隊列直接到達(dá)訂閱系統(tǒng),這樣的傳輸方式可以有效的避免網(wǎng)絡(luò)通信量過多造成的擁堵以及可以有效的簡化網(wǎng)絡(luò)路由。
一個APPLYCOORDINATOR和一個FETCH SERVER模塊以及一個或多個APPLY SERVERS共同組成了Oracle數(shù)據(jù)庫的應(yīng)用進(jìn)程。FETCH SERVER模塊可以將捕獲后得到的LCRS改變成事務(wù);而APPLYCOORDINATOR則是主要負(fù)責(zé)協(xié)調(diào)DML級和依賴事務(wù)之間的時序安排;APPLY SERVERS的作用是可以有效的用于數(shù)據(jù)庫的應(yīng)用更改。在一些特定情況下,可以針對每個數(shù)據(jù)庫建立多個應(yīng)用進(jìn)程,在這些不同的進(jìn)程之間可以通過制定好的規(guī)則來區(qū)別不同數(shù)據(jù)庫來源的LCRS。
通過上述對Oracle數(shù)據(jù)庫技術(shù)以及Oracle流技術(shù)的數(shù)據(jù)同步的分析,證實了這些技術(shù)可以用于數(shù)據(jù)的備份,而且也同樣也可以用于構(gòu)建分布式的HIS。
參考文獻(xiàn)
[1]談永奇,侯道勇.基于Oracle的數(shù)據(jù)復(fù)制技術(shù)在HIS中的應(yīng)用[J].醫(yī)療衛(wèi)生裝備,2010,31(10):66-67.
[2]劉志敏.Oracle數(shù)據(jù)庫應(yīng)用管理解決方案[M].北京:電子工業(yè)出版社,2002.
[3]張云帆.Oracle數(shù)據(jù)庫備份與恢復(fù)策略[J].計算機工程,2009,35 (15):85-87.
[4]張?zhí)旎?專家精講:Oracle數(shù)據(jù)庫管理與維護[M].北京:電子工業(yè)出版社.2009:258.
[5]王學(xué)海,劉德明.ORACLE數(shù)據(jù)庫的備份和斷點恢復(fù)[J].醫(yī)學(xué)信息,2008,5(05):596-597.