黃志強(qiáng) (長江大學(xué)石油工程學(xué)院,湖北 荊州 434023)
SQL Server在固井?dāng)?shù)據(jù)管理中的應(yīng)用
黃志強(qiáng) (長江大學(xué)石油工程學(xué)院,湖北 荊州 434023)
固井作業(yè)是鉆井工程的最后一個關(guān)鍵環(huán)節(jié),作業(yè)期間要處理大量的固井?dāng)?shù)據(jù),為了節(jié)約計(jì)算機(jī)資源和降低固井作業(yè)成本,關(guān)鍵在于快捷、有效地存儲、查詢和處理數(shù)據(jù)。SQL Server是Microsoft推出的數(shù)據(jù)管理對象,具有強(qiáng)大的數(shù)據(jù)管理和處理功能。介紹了建立固井?dāng)?shù)據(jù)庫的必要性,分析了SQL Server在管理固井?dāng)?shù)據(jù)方面的可行性和優(yōu)越性,詳細(xì)闡述了SQL Server對固井?dāng)?shù)據(jù)的存儲、查詢及固井?dāng)?shù)據(jù)庫的備份與還原過程。
SQL Server;數(shù)據(jù)管理;固井施工;數(shù)據(jù)庫
隨著現(xiàn)代固井技術(shù)的發(fā)展,固井工程涉及的數(shù)據(jù)越來越多,數(shù)據(jù)處理的工作量也相應(yīng)增加,原有的數(shù)據(jù)管理方法已不能有效地進(jìn)行數(shù)據(jù)更新與維護(hù)。另外,傳統(tǒng)的基于文件和人工的管理方式,給數(shù)據(jù)的保密工作帶來了隱患。因此,如何利用現(xiàn)有技術(shù)更加經(jīng)濟(jì)有效地管理固井?dāng)?shù)據(jù)已成為提高固井作業(yè)效率的關(guān)鍵所在。
SQL(Structured Query Language) Server是中小型數(shù)據(jù)管理軟件,可比較容易地使用與數(shù)據(jù)庫有關(guān)的各種對象,越來越多的單位也開始開發(fā)基于該數(shù)據(jù)庫的固井?dāng)?shù)據(jù)管理系統(tǒng)。下面,筆者介紹SQL Server在固井?dāng)?shù)據(jù)管理中的應(yīng)用。
大量固井工程數(shù)據(jù)的管理給現(xiàn)場設(shè)計(jì)與施工人員帶來了諸多不便,建立固井?dāng)?shù)據(jù)庫進(jìn)行統(tǒng)一管理,可提高固井作業(yè)效率,支撐專家系統(tǒng)實(shí)現(xiàn)在線診斷,提高固井施工的自動化、遠(yuǎn)程化、智能化。固井?dāng)?shù)據(jù)庫的建立與管理,能為固井作業(yè)人員快捷、方便地提供決策所需的數(shù)據(jù)和信息,為固井工作者的正確決策提供有力支持,并降低固井成本。
2.1可行性
SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操作、數(shù)據(jù)定義、數(shù)據(jù)控制功能于一體,語言風(fēng)格統(tǒng)一,可以獨(dú)立完成數(shù)據(jù)庫生命周期的全部活動,它能夠滿足用戶建立數(shù)據(jù)庫、定義關(guān)系模式、插入數(shù)據(jù)、查詢、更新、維護(hù)、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作要求,為數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)提供了良好的環(huán)境。用戶在數(shù)據(jù)庫系統(tǒng)投入運(yùn)行后,還可根據(jù)需要隨時逐步修改模式。
2.2SQLServer管理固井?dāng)?shù)據(jù)的優(yōu)越性
固井作業(yè)是一項(xiàng)復(fù)雜的系統(tǒng)工程,對于固井過程中可能遇到的復(fù)雜情況,固井施工人員只能通過數(shù)據(jù)和經(jīng)驗(yàn)來進(jìn)行計(jì)算和判斷,所以在處理突發(fā)事件時,需要及時并全面地從數(shù)據(jù)庫中查找所需要的數(shù)據(jù), SQL Server更能突出在數(shù)據(jù)管理上的優(yōu)越性。
1) 實(shí)現(xiàn)內(nèi)存合理配置 存儲大量的固井?dāng)?shù)據(jù)時需占用大量的數(shù)據(jù)空間,SQL采用動態(tài)的存儲分配,分配給其正在運(yùn)行的計(jì)算機(jī)內(nèi)所有可用的物理內(nèi)存,節(jié)約了計(jì)算機(jī)資源,提高了資源的利用率。
2) 實(shí)現(xiàn)資源共享 數(shù)據(jù)管理員授權(quán)給每個子機(jī),固井作業(yè)過程中的相關(guān)部門可以實(shí)現(xiàn)資源共享,相互協(xié)作,高效率地完成固井作業(yè),而且固井作業(yè)隊(duì)和總公司可通過無線網(wǎng)絡(luò)實(shí)現(xiàn)資源共享[1],如圖1所示。
圖1 數(shù)據(jù)無線傳輸示意圖
3) 實(shí)現(xiàn)數(shù)據(jù)備份和還原 SQL Server為用戶提供了數(shù)據(jù)備份與還原功能,若運(yùn)行SQL Server的服務(wù)器出現(xiàn)故障,或者數(shù)據(jù)庫遭到某種程度的損壞,可以通過備份副本重新創(chuàng)建或還原數(shù)據(jù)庫。
3.1固井?dāng)?shù)據(jù)的存儲過程
圖2 固井?dāng)?shù)據(jù)表關(guān)系模型圖
在SQL數(shù)據(jù)庫中存儲數(shù)據(jù),首先應(yīng)建立相應(yīng)的數(shù)據(jù)表,添加相應(yīng)的字段,設(shè)置字段的屬性[2]。圖2為一口井的固井?dāng)?shù)據(jù)表關(guān)系模型圖,PK為該數(shù)據(jù)表的內(nèi)鍵,即數(shù)據(jù)表的主鍵;PK1是外鍵,即數(shù)據(jù)表與數(shù)據(jù)表之間的關(guān)聯(lián)鍵。
數(shù)據(jù)表的定義和字段的添加,可在SQL的可視化窗體中實(shí)現(xiàn),不需用SQL語言操作。數(shù)據(jù)的存儲,即往SQL數(shù)據(jù)表中添加數(shù)據(jù)記錄,方法有4種:①把一個SQL數(shù)據(jù)庫中的數(shù)據(jù)表轉(zhuǎn)存到另一個數(shù)據(jù)庫中;②通過SQL Server的可視化窗體直接添加數(shù)據(jù);③把Access數(shù)據(jù)表中的數(shù)據(jù)導(dǎo)入到SQL數(shù)據(jù)庫中;④從應(yīng)用軟件界面上直接存儲。
3.2固井?dāng)?shù)據(jù)的查詢過程
SQL結(jié)構(gòu)化查詢語言可實(shí)現(xiàn)高效數(shù)據(jù)查詢,查詢功能是數(shù)據(jù)庫管理系統(tǒng)的核心功能。在固井作業(yè)中方便快捷地查詢數(shù)據(jù),可提高工作人員的效率,該技術(shù)已成為現(xiàn)代軟件開發(fā)者考慮的主要問題。尤其在處理突發(fā)事件時,及時地查詢相關(guān)資料,設(shè)計(jì)出解決方案或做出正確的決策。以便解決問題,防止問題繼續(xù)惡化。
數(shù)據(jù)的查詢有2種:一種是單表查詢,另一種是多表查詢(嵌套查詢)。例如,在固井作業(yè)過程中要實(shí)現(xiàn)2種查詢:①查詢表層套管的管串結(jié)構(gòu);②查詢表層套管的水泥漿配方。
查詢表層套管的管串結(jié)構(gòu)只涉及到一個數(shù)據(jù)表,為單表查詢:SELECT * FROM lt;套管結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)表gt; WHERE 條件 = 表層套管;由圖2可知,查詢表層套管的水泥漿配方須通過多表查詢才能實(shí)現(xiàn):SELECT * FROM lt;水泥配方數(shù)據(jù)表gt; WHERE 水泥名稱 IN (SELECT水泥名稱FROM lt;水泥性能數(shù)據(jù)表gt; WHERE 注入次序 IN (SELECT 注入次序 FROM lt;注水泥施工數(shù)據(jù)表gt; WHERE套管層次 = 表層套管))。
3.3固井?dāng)?shù)據(jù)庫的備份、還原過程
1)備份數(shù)據(jù)庫 固井?dāng)?shù)據(jù)庫的備份是非常必要的,雖然SQL數(shù)據(jù)庫系統(tǒng)中采取了各種保護(hù)措施來防止數(shù)據(jù)庫的安全性和完整性被破壞,但是計(jì)算機(jī)硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞仍是不可避免的,輕則影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則導(dǎo)致數(shù)據(jù)庫中部分或全部數(shù)據(jù)丟失。因此,應(yīng)在相隔不太長的時間內(nèi)備份數(shù)據(jù)庫,以保障數(shù)據(jù)的完整性。其步驟如下:
1)打開SQL企業(yè)管理器,在控制臺根目錄中依次點(diǎn)開Microsoft SQL Server。
2)QL Server組→雙擊打開服務(wù)器→雙擊打開數(shù)據(jù)庫目錄。
圖3 數(shù)據(jù)備份和還原
3)選擇數(shù)據(jù)庫名稱→然后單擊右鍵→所有任務(wù)→選擇備份數(shù)據(jù)庫,如圖3所示。
4)在備份選項(xiàng)中選擇“完全備份”,如果存在默認(rèn)路徑和名稱則選中名稱點(diǎn)擊“刪除”,然后點(diǎn)擊“添加”;如果不存在默認(rèn)路徑和名稱則直接選擇“添加”,接著指定路徑和文件名,指定后點(diǎn)擊“確定”返回備份窗口,接著點(diǎn)擊“確定”進(jìn)行備份。
2)還原數(shù)據(jù)庫 還原數(shù)據(jù)也稱恢復(fù)數(shù)據(jù),是把固井?dāng)?shù)據(jù)庫遭受破壞前所備份的數(shù)據(jù)恢復(fù)到當(dāng)前執(zhí)行的進(jìn)程中。當(dāng)系統(tǒng)運(yùn)行中發(fā)生故障時,利用數(shù)據(jù)庫備份文件可將固井?dāng)?shù)據(jù)庫恢復(fù)到故障發(fā)生前的某一個狀態(tài),不同的故障其恢復(fù)策略和恢復(fù)方法也不一樣。
1)事務(wù)故障的恢復(fù)。反向掃描文件日志,查找該事務(wù)的更新操縱并對其進(jìn)行逆操縱,繼續(xù)掃描直到次事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)完成。
2)系統(tǒng)故障的恢復(fù)。此故障由系統(tǒng)在重新啟動時自動完成,不需要用戶干預(yù)。
3)介質(zhì)故障的恢復(fù)。如圖3中所示的“還原數(shù)據(jù)庫”,找到備份的數(shù)據(jù)庫副本,直接添加即可完成故障的恢復(fù)。
1)應(yīng)用SQL Server對固井?dāng)?shù)據(jù)進(jìn)行管理,提高了數(shù)據(jù)操作與維護(hù)方面的性能,加強(qiáng)了數(shù)據(jù)保密性,也提高了固井作業(yè)效率。
2)SQL Server通過創(chuàng)建固井?dāng)?shù)據(jù)表和建立數(shù)據(jù)表關(guān)系模型,實(shí)現(xiàn)對固井?dāng)?shù)據(jù)的分類存儲、單表查詢、多表查詢等功能。
3)對固井?dāng)?shù)據(jù)庫進(jìn)行備份至關(guān)重要,在恢復(fù)數(shù)據(jù)時首先應(yīng)判別故障的類型,然后采取相應(yīng)有效的故障恢復(fù)方法。
[1]楊健龍,張寧生,劉茜.無線傳輸有線接入鉆井?dāng)?shù)據(jù)庫管理系統(tǒng)[J].石油工業(yè)計(jì)算機(jī)應(yīng)用,2007,(3):6~9.
[2]SY/T6192-1996,石油鉆井工程信息代碼[S].
[編輯] 李啟棟
TE256
A
1673-1409(2009)01-N072-03
2008-12-28
國家油氣重大專項(xiàng)課題(2008ZX05021-006)。
黃志強(qiáng)(1964-),男,1984年大學(xué)畢業(yè),碩士,副教授,現(xiàn)主要從事油氣井鉆井完井技術(shù)方面的研究工作。