毛永剛
大慶油田油氣田開發軟件項目經理部 黑龍江 大慶 163000
目前我國石油企業的數據庫的發展方向是勘探開發生產專業數據集成化、一體化方向,實現企業數據資產的集中,現在更有一種趨勢就是建立統一的油田數據中心。像這樣具有技術密集型特征的產業,石油企業中的各個生產部門既做到內部專業化分工精細而且在地理位置上做到分散,這些就是造成業務數據分散的客觀原因;在業務方面,它們既要理清各自的數據,又要彼此交換數據,如何應對數據的分散、做到兩方數據可以同步、做到數據中心數據能夠匯總到一起,這就是關于油田數據庫建設讓人頭疼的地方,但是一個事務的出現為讓我們覺得我們還有可能解決這個問題,那就是分布式數據庫系統技術。本文就此問題討論了如何實現不同數據庫之間的資料交換和數據同步并有效的利用分布式數據庫技術。
將分布式技術和數據庫技術相結合起來就構成了分布式數據庫技術。從大意上講就是,物理方面分散在計算機網絡的各個節點,而邏輯上卻是一個數據集合并在同一個系統上,這就是分布式數據庫。它讓不同區域的數據可以共享成為現實。其中數據方位的分布式透明性是其最重要的特點,說白了也就是我們可不考慮數據的分布情況,可以放心訪問數據,程序的正確性不會因為數據庫之間的數據轉移而受影響。此外,數據庫結點的自治是分布式數據庫的強調點而不是強調集中控制系統。在分布式數據庫中有一個必要的特性那就是數據冗余。關于數據冗余的特點,一方面讓系統的更有效的運行,另一方面讓局部數據更加具有可用性,確保在某數據庫節點出現事故時,不會影響到系統的應用。當前,Omacle和SQLServer是比較常用的兩個分布式數據庫[1]。
我們利用分布式數據庫就可以依據用戶提出的需求去組織數據的分布,同時對數據關系進行分片。數據和數據存儲可以通過復制、分片、復制+分片等方法進行數據交換。指被用來維護關系的幾個相同的副本,將這些副本在不同的數據庫結點進行存儲就是復制。將關系分化為幾個片段,將不同數據庫節點在各個片段上進行存儲就是分片,水平分片、垂直分片、混合分片是當前主要的分片方式。將關系分劃為幾個片段,每個片段的幾個副本都會被系統維護技術復制+分片。
石油的企業里大慶油田算是一個典型例子,企業應該開始建設數據中心,因為有多個采油廠、專業技術公司都為其提供數據來源,其中涉及錄井、鉆井、采油、試油、測井、作業等不同專業單位,這些單位平時在干業務上都是各自處理各自的數據,但是因為要還進行數據交換故需要在數據中心總庫和各采油廠、專業化公司的分庫與之間建立專業數據庫,而且各采油廠與專業化公司分庫之間也要進行數據交換,另外,應用項目庫還要由總庫提供數據支持。總的來說,在石油企業中,內部的數據進行交換會很復雜,所以統一規則是很有必要的,這是系統實現數據共享的前提。
為了確保順利實現數據的交換,首先要確定關于數據中心業務數據庫的標準和必須全部統一單位編碼、數據采集規范,做到全局數據的兩個特性:完整性和一致性。二者,為順應存儲和交換實際數據的需要,并要全部統一數據庫類型,就必須統一采用Oracle數據庫。在數據庫實施過程中,總庫、分庫會被自下而上而構成分布式數據庫系統,各個分庫依舊存放本單位的數據,總庫的數據庫就是存放所有單位的數據,并且要檢查數據完整性和一致性,這個方法會有一點數據冗余,優點是同一數據會在不同場地存儲多個副本,提升了局部應用的效率,并使得系統更加可靠而且變得更加有用。我們在增加新采集時只用增加一個數據庫節點,實現了對當前系統做到最小影響,這是用于拓展系統[2]。
數據存儲主要的主要內容是數據的組織。系統按照不同的應用的需求依據其提供的不同的數據關系而去采用不同的分片方式:①關于總庫和分庫之間的數據關系里,由于總部數據中心業務數據的子集是采油廠、專業公司的數據,因為要做到通過并運算實現關系重構,所以采用了水平分片。②關于采油廠、專業公司之間的數據關系里,采油廠業務數據的子集是專業公司中部分數據,同樣也運用了水平分片的方式。③關于應用項目數據庫與總庫的數據關系里,這是按照應用需求來劃分數據的,故而需運用垂直分片的方式。
(1)Oracle數據同步技術
Oracle的數據庫中的同步數據功能主要包含了三種類型:基本復制、高級復制、和混合復制,另外多主節點復制和可更新復制快照復制又可以作為高級復制的分支。如果需要在數據庫節點一復制的數據庫表產生變化(插入、刪除或者更新等),則Oracle則將這種變化放在一個延遲事務隊列(DEFTRAN)中,這就是采用了任務隊列機制。Oracle會在一個特定的時間或者是某個特定時間間隔后將延遲事務隊列中的變化“推”到數據庫節點2。在傳播過程中發生錯誤之后,我們則將在錯誤隊列DE-FERROR中找到該錯誤。
(2)數據同步設計與實現
在數據中心實際建設過程中,因為總庫負責進行數據管理和分析,分庫的作用僅僅是存放本部門的數據,由于此原因統一將數據的源數據庫是分庫,目標數據庫被定義為總庫,業務數據的同步的方法就是復制,總庫將接收到分庫剛剛更新的信息。當前企業之間的數據交換就是運用此類方法[3]。
油田數據中心建設要是應用了Oracle數據庫技術,一定可以有利于數據分散和集中管理的矛盾的解決,使數據的共享和交換成為現實。這對油田信息化建設具有非凡的意義。