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