石玉松
摘要:通過對廠礦兩級多套數(shù)據(jù)庫的長期跟蹤監(jiān)測,分析用戶訪問行為,找出并認(rèn)真研究影響數(shù)據(jù)庫穩(wěn)定運(yùn)行的關(guān)鍵因素,創(chuàng)建出“數(shù)據(jù)庫雙維度靶向管控方法”,適用于數(shù)據(jù)庫管理中的事前預(yù)防、事中處置和事后追溯的介入性全周期管理。通過應(yīng)用概要文件控制技術(shù)配合分級實(shí)施策略,實(shí)現(xiàn)橫向維度上基于數(shù)據(jù)庫用戶級的訪問控制;通過應(yīng)用數(shù)據(jù)庫級觸發(fā)器技術(shù)配合行為自動鑒別功能,實(shí)現(xiàn)縱向維度上基于單機(jī)IP級的訪問控制;將兩個維度的管控方案進(jìn)行聯(lián)合,形成了較為完整、有效的數(shù)據(jù)庫管控體系,實(shí)現(xiàn)對數(shù)據(jù)庫各類訪問行為的精確定位、精準(zhǔn)把控、精細(xì)管理。既可保證數(shù)據(jù)庫運(yùn)行的安全、平穩(wěn)、高效,還可構(gòu)建出健康、良好的數(shù)據(jù)訪問秩序。對于本地化及云中心的數(shù)據(jù)管理提供成熟經(jīng)驗(yàn)和技術(shù)解決方案。
主題詞:數(shù)據(jù)庫;雙維度靶向管控;訪問秩序
中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)11-0033-03
1 背景及意義
隨著采油廠數(shù)據(jù)中心的建設(shè)規(guī)模、用戶量級和數(shù)據(jù)量級不斷增大,且近年來新技術(shù)的應(yīng)用、新業(yè)務(wù)的上線以及移動端的興起,使數(shù)據(jù)庫的訪問量和數(shù)據(jù)交互頻率產(chǎn)生了巨大的增長,對服務(wù)器的運(yùn)行穩(wěn)定性也提出了更高的要求,那么如何在新形勢下確保數(shù)據(jù)庫的安全、平穩(wěn)、高效,成為一項(xiàng)重要的研究課題。
生產(chǎn)數(shù)據(jù)庫系統(tǒng)不僅與廠內(nèi)各大應(yīng)用系統(tǒng)直接相連,多套數(shù)據(jù)庫間也保持緊密的數(shù)據(jù)交互,而且與廠外各單位的數(shù)據(jù)庫也保持著緊密的數(shù)據(jù)往來關(guān)系,那么如何形成良好的訪問秩序,是實(shí)現(xiàn)數(shù)據(jù)庫平穩(wěn)運(yùn)行的前提。本文著重闡述數(shù)據(jù)庫雙維度靶向管控方法的建設(shè)思路、技術(shù)要點(diǎn)、認(rèn)識及應(yīng)用效果。
2 數(shù)據(jù)中心運(yùn)行狀況分析
2.1建設(shè)規(guī)模大,需要建立更良好的運(yùn)行秩序
廠級數(shù)據(jù)中心共建設(shè)有廠、礦兩級各類功能數(shù)據(jù)庫多套,其中廠級按照專業(yè)門類主要劃分為油藏工程數(shù)據(jù)庫、采油工程數(shù)據(jù)庫和經(jīng)營管理數(shù)據(jù)庫,礦級按照主要生產(chǎn)行政單位也建設(shè)數(shù)據(jù)庫多套。多套數(shù)據(jù)庫間已經(jīng)形成了較為完整的協(xié)同工作模式,相互依托,相輔相成,然而從長期發(fā)展來看,仍然需要良好運(yùn)行秩序的支持,才能使整體數(shù)據(jù)庫系統(tǒng)保持穩(wěn)定的運(yùn)行狀態(tài)。
2.2運(yùn)行規(guī)模大,需要形成更規(guī)范的調(diào)用秩序
由于管理環(huán)節(jié)多、管理鏈條長,信息技術(shù)在各生產(chǎn)環(huán)節(jié)中應(yīng)用的比例逐年增高,數(shù)據(jù)庫間的數(shù)據(jù)交互也越發(fā)頻繁。尤其是近年來與測試、作業(yè)、錄井等廠外用戶的數(shù)據(jù)庫建立了數(shù)據(jù)共享通道,允許跨單位直連的數(shù)據(jù)訪問,使數(shù)據(jù)調(diào)用關(guān)系越發(fā)復(fù)雜,需要建立起規(guī)范的數(shù)據(jù)調(diào)用秩序,以確保數(shù)據(jù)庫系統(tǒng)安全運(yùn)行。
2.3應(yīng)用規(guī)模大,需要構(gòu)建更完善的訪問秩序
依托于數(shù)據(jù)中心,目前在用的應(yīng)用軟件近百余項(xiàng),包括方案調(diào)整、措施優(yōu)選、形勢分析、油田生產(chǎn)、運(yùn)行控制、指揮決策等業(yè)務(wù),以及辦公自動化、計(jì)劃、經(jīng)營、基建投資、物資管理等業(yè)務(wù)。形成了多元化、多業(yè)務(wù)、多層級的應(yīng)用系統(tǒng)生態(tài)環(huán)境。
近年來新上線運(yùn)行的應(yīng)用系統(tǒng)無論從規(guī)模上、交互實(shí)時性要求上以及數(shù)據(jù)變化頻率上都表現(xiàn)出了新的運(yùn)行特點(diǎn)。隨著“油氣水井站數(shù)字化工程的實(shí)施推進(jìn)”“移動端應(yīng)用的加速發(fā)展”“非結(jié)構(gòu)化數(shù)據(jù)的深化應(yīng)用”以及“傳統(tǒng)業(yè)務(wù)數(shù)據(jù)的穩(wěn)定增長”,預(yù)計(jì)未來5年內(nèi)數(shù)據(jù)庫訪問量還將產(chǎn)生高速的增長,這就需要更為嚴(yán)格的應(yīng)用訪問秩序。
3 用戶訪問行為的分析與研究
用戶的訪問行為可分為正常訪問和非正常訪問兩大類。目前,各大數(shù)據(jù)庫系統(tǒng)的資源狀況可以滿足全廠用戶的正常訪問需求,但隨著新應(yīng)用帶入的新訪問請求,服務(wù)器負(fù)載仍在逐年遞增,峰值已接近高位警戒線。此時,如果出現(xiàn)非正常訪問行為就會直接影響數(shù)據(jù)庫運(yùn)行安全,嚴(yán)重時將導(dǎo)致數(shù)據(jù)庫宕機(jī),服務(wù)中斷??梢钥闯?,非正常訪問行為與數(shù)據(jù)庫運(yùn)行安全之間存在著突出的矛盾點(diǎn)。本文著重討論如何實(shí)現(xiàn)對正常訪問行為透明而對非正常訪問行為可精確識別管控的具體方法。
用戶的非正常訪問行為有很多種,看似雜亂無章,但通過長期監(jiān)測分析發(fā)現(xiàn),還是有章可循的,大致可分為以下幾種常見類型:
跨服務(wù)器數(shù)據(jù)調(diào)用時由于采用服務(wù)器專用鏈路,增加了監(jiān)管難度,無有效手段管控。
用戶的不良操作習(xí)慣,造成連接資源長期無效占用,導(dǎo)致運(yùn)行資源的浪費(fèi)。
軟件算法的隱性缺陷,會存在一定程度的未知風(fēng)險,造成服務(wù)器進(jìn)程死鎖或資源耗竭。
資源請求不嚴(yán)謹(jǐn),超量搶占CPU、IO及內(nèi)存等公共資源,造成服務(wù)器的高負(fù)載。
當(dāng)前服務(wù)器運(yùn)行資源已經(jīng)處于高位,某些情況下峰值已經(jīng)超過總運(yùn)行資源的70%,無法承受非正常訪問行為帶來的沖擊。而在上述情況發(fā)生以后,管理上并無特效的技術(shù)手段支持,通常是采取邏輯切斷、用戶鎖定,嚴(yán)重時需要重啟服務(wù)器。所以迫切需要研究一套有針對性的解決方案,具備行為自動識別、判定與處置能力,確保數(shù)據(jù)庫系統(tǒng)各項(xiàng)功能平穩(wěn)運(yùn)行。
4 度靶向管控方法的實(shí)現(xiàn)
4.1基于數(shù)據(jù)庫用戶級的管控方案
用戶管理作為數(shù)據(jù)庫管理單元中的重要組成部分,承擔(dān)著重要的任務(wù)。通常來說,一個數(shù)據(jù)庫用戶會對應(yīng)一套應(yīng)用系統(tǒng),形成明確的對應(yīng)關(guān)系,并且負(fù)責(zé)人明晰,是數(shù)據(jù)庫管理中重要的抓手。
利用概要文件各種參數(shù)及值的設(shè)定,實(shí)現(xiàn)對硬件系統(tǒng)和數(shù)據(jù)庫資源及內(nèi)核資源的使用限定。不同數(shù)據(jù)庫用戶擔(dān)負(fù)著不同的任務(wù),執(zhí)行不同的SQL語句,所需要的資源也不盡相同,可以利用概要文件對資源進(jìn)行精確分配與控制。
重要參數(shù)項(xiàng)如下:
CPU_PER_SESSION:限制每個會話可以占用的CPU時間總量。如果會話超過這一設(shè)定,則會強(qiáng)制用戶做出選擇(提交事務(wù)或退回事務(wù))。
CPU_PER_CALL:限制每個數(shù)據(jù)庫調(diào)用可以占用的CPU時間。精確到每個SQL語句的解析、執(zhí)行過程。
CONNECT_TIME:限定會話的最大連接時間。
IDLE_TIME:限定會話的最大空閑時間。
SESSIONS_PER_USER:限制一個用戶可以并發(fā)執(zhí)行的會話數(shù)量。
LOGICAL_READS_PER_SESSION:限制一個會話可以執(zhí)行的邏輯讀取塊數(shù)。
LOGICAL_READS_PER_CALL:限制每個數(shù)據(jù)庫調(diào)用可以執(zhí)行的邏輯讀取塊數(shù)。
注:邏輯讀的限定相對于執(zhí)行時間更為準(zhǔn)確,因?yàn)槠洳皇芟到y(tǒng)負(fù)載的變化影響,但邏輯讀的閾值確定相對復(fù)雜,不直觀,設(shè)定難度較大。
PRIVATE_SGA:限制分配給UGA(User Globel Area 用戶全局區(qū))的SGA內(nèi)存數(shù)量。
COMPOSITE_LIMIT:限定一個用戶會話可以消耗資源的總限額。
值得說明的一點(diǎn)是,概要文件雖然通過設(shè)定并與用戶關(guān)聯(lián)對接,但默認(rèn)情況下它并不生效,需要DBA手動開啟才能生效,這是使用概要文件的重要環(huán)節(jié)。
4.2基于單機(jī)IP級的管控方案
基于IP級別的數(shù)據(jù)庫管控是客戶端訪問管理中十分重要的環(huán)節(jié),一直以來始終缺乏有效的管理手段,尤其是對于投用年限較早的C/S架構(gòu)的應(yīng)用程序,程序文件分散在用戶各自的計(jì)算機(jī)終端,有的用戶會“備份”多個應(yīng)用程序版本,存放在硬盤、U盤中,導(dǎo)致應(yīng)用程序版本混亂,如果應(yīng)用本身沒有做好版本控制,這將給數(shù)據(jù)庫訪問安全帶來隱患,而且在服務(wù)端對其控制的效果也始終不理想。
基于IP管控的核心關(guān)鍵在于IP地址的獲取與鎖定。由于數(shù)據(jù)庫自帶的系統(tǒng)性能視圖V$SESSION中并沒有記錄準(zhǔn)確的IP地址信息,只記錄了計(jì)算機(jī)名、系統(tǒng)用戶名等模糊信息,不能實(shí)現(xiàn)精確定位,所以此類參數(shù)無法使用。
通過研究發(fā)現(xiàn),可利用DBMS_APPLICATION_INFO包中的SET_CLIENT_INFO方法獲取到準(zhǔn)確來訪IP。采用庫級觸發(fā)器與DBMS_APPLICATION_INFO結(jié)合的方式將IP地址回寫到系統(tǒng)V$SESSION視圖中,從而實(shí)現(xiàn)對每個來訪進(jìn)程的IP獲取,這也為整體方案的實(shí)施奠定了基礎(chǔ)。
在所有Oracle進(jìn)程中分為后臺服務(wù)進(jìn)程、服務(wù)器共享訪問進(jìn)程、用戶客戶端訪問進(jìn)程三大類,我們此次研究的對象只針對后兩類訪問進(jìn)程進(jìn)行討論。
構(gòu)建完整的程序架構(gòu)體系(敏感信息使用*代替):
*_LOGON_IP_CONTROL:主控制單元。數(shù)據(jù)庫級觸發(fā)器,主要負(fù)責(zé)用戶IP的獲取與回寫操作以及用戶非正常訪問行為的識別與隔離功能。
*_SESSION_COUNT_LIST:用戶并發(fā)數(shù)統(tǒng)計(jì)功能。系統(tǒng)級視圖,主要對IP進(jìn)行分組統(tǒng)計(jì),為主控制單元提供并發(fā)數(shù)的判定依據(jù)。
*_SESSION_INFO:用戶進(jìn)程詳細(xì)信息。系統(tǒng)級視圖,主要提供詳細(xì)的用戶登錄訪問信息,為主控制單元及日志功能提供信息來源。
*_LOGIN_BWL:黑白名單控制模塊。實(shí)體表,主要用來對用戶實(shí)施分級管理,是主控制單元執(zhí)行控制行為的關(guān)鍵依據(jù)。
*_LOGIN_LOG:監(jiān)控日志模塊。實(shí)體表,主要用來記錄主控制單元的各項(xiàng)操作痕跡以及用戶行為的留痕。具備分級日志功能,可根據(jù)實(shí)際需要切換日志記錄的粗細(xì)粒度。
管控策略設(shè)定的合理性將直接決定著該方法的實(shí)際效果。如果策略設(shè)定過于嚴(yán)格,則有可能對正常用戶訪問造成影響,降低數(shù)據(jù)庫訪問的穩(wěn)定性。如果策略設(shè)定的過于松散,則有可能無法準(zhǔn)確識別非正常訪問行為,更無法對其進(jìn)行管控,服務(wù)器運(yùn)行風(fēng)險得不到有效控制。只有充分考慮不同日期、不同時間段以及不同負(fù)載壓力下,用戶訪問量的變化情況,進(jìn)行綜合考慮,并允許對不同IP進(jìn)行靈活的閾值設(shè)定,才能達(dá)到預(yù)期的管控效果。
4.3雙維度聯(lián)合管控的必要性
通過以上兩套管控方案均可以對數(shù)據(jù)庫的訪問行為進(jìn)行有效管控,但每個方案都有管理側(cè)重點(diǎn),也有管理盲區(qū)。通過分析發(fā)現(xiàn),兩套方案存在很強(qiáng)的互補(bǔ)性,所以將兩套方案融合才能形成合力,實(shí)現(xiàn)橫向維度上基于數(shù)據(jù)庫用戶級別的管控、縱向維度上基于單機(jī)IP級別的管控,雙維度的聯(lián)合實(shí)現(xiàn)了更為精細(xì)、精確、精準(zhǔn)的數(shù)據(jù)庫管理。
5 優(yōu)勢與效果
5.1有利于對資源實(shí)施頂層監(jiān)管
對于用戶而言,數(shù)據(jù)庫資源對其是透明的,容易在無意間造成資源浪費(fèi),服務(wù)器需要為無效連接支付更多資源保障,無疑對數(shù)據(jù)庫運(yùn)行會帶來影響,同時也會搶占其他用戶的正常訪問,所以“雙維度靶向管控”手段是實(shí)施頂層監(jiān)管的利器。
5.2有助于安全風(fēng)險采取規(guī)避措施
對于程序而言,或多或少都會存在一定的BUG。而且某些隱性的BUG只有在特定條件下才會被觸發(fā),場景還原比較困難,問題的定位就會更加模糊。此時為了確保數(shù)據(jù)庫有能力對隱性BUG風(fēng)險進(jìn)行安全規(guī)避,利用好“雙維度靶向管控”手段是關(guān)鍵,縮小風(fēng)險用戶的資源支配量,將風(fēng)險禁錮在較小的范圍內(nèi),實(shí)現(xiàn)隱性風(fēng)險的受控、可控。
5.3 有益于穩(wěn)定運(yùn)行提供技術(shù)保障
“雙維度靶向管控”適用于事前預(yù)防、事中處置及事后追溯的介入性全周期管理。按照多套數(shù)據(jù)庫服務(wù)器每天訪問總數(shù)萬次的粗略估算,半年來至少監(jiān)測守護(hù)了近兩萬次的訪問量,累計(jì)阻隔非正常訪問五千余次。
在當(dāng)前數(shù)據(jù)需求多變、訪問壓力逐年遞增的趨勢下,我廠數(shù)據(jù)庫系統(tǒng)始終保持著健康有序的良性發(fā)展,數(shù)據(jù)庫在線時率保持在99%以上,為全廠提供著穩(wěn)定、高效的數(shù)據(jù)訪問服務(wù),并形成了良好的秩序環(huán)境。
6 總結(jié)
本文詳細(xì)闡述了“數(shù)據(jù)庫雙維度靶向管控”方法的研究與實(shí)施思路和具體做法,都是經(jīng)過長期探索試驗(yàn)、工作實(shí)踐總結(jié)而出,并在長期的數(shù)據(jù)庫管理過程中不斷修正完善的,現(xiàn)已形成了較為完整的管控體系,成為提升數(shù)據(jù)庫管理質(zhì)量的有效手段。該方法不僅適用于本地環(huán)境,對云數(shù)據(jù)中心管理也值得推廣應(yīng)用。由于云資源管理更加規(guī)范嚴(yán)格,所以實(shí)施此項(xiàng)措施有利于在云環(huán)境下完成數(shù)據(jù)庫的精細(xì)化管理。
參考文獻(xiàn):
[1] 姜姍,任靖娟,高志宇.基于聚類優(yōu)化的大型網(wǎng)絡(luò)數(shù)據(jù)庫挖掘系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2020,43(6):175-177,182.
[2] 黃志,李濤,宋瑤,等.基于Json的小型異構(gòu)數(shù)據(jù)庫同步策略研究[J].氣象研究與應(yīng)用,2020,41(1):48-53.
[3] 楊國清.關(guān)系數(shù)據(jù)庫中樹形結(jié)構(gòu)的矩陣算法研究[J].計(jì)算機(jī)時代,2020(3):50-52,56.
[4] 史吉超.淺談施工企業(yè)成本數(shù)據(jù)庫建設(shè)[J].智能城市,2020,6(5):75-76.
[5] 楊春麗.計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫安全管理技術(shù)的優(yōu)化分析[J].河北農(nóng)機(jī),2020(3):44.
【通聯(lián)編輯:唐一東】