国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Oracle數(shù)據(jù)庫性能優(yōu)化及監(jiān)控系統(tǒng)的設(shè)計實現(xiàn)

2019-05-24 14:12武文斌
電腦知識與技術(shù) 2019年7期
關(guān)鍵詞:性能優(yōu)化監(jiān)控系統(tǒng)

武文斌

摘要:Oracle數(shù)據(jù)庫是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,能夠?qū)ο到y(tǒng)提供穩(wěn)健的支持。隨著Oracle數(shù)據(jù)庫應(yīng)用的不斷深入,Oracle數(shù)據(jù)庫維護和性能優(yōu)化至關(guān)重要。本文從Oracle數(shù)據(jù)庫性能優(yōu)化的視角出發(fā),結(jié)合研究現(xiàn)狀,從一個全新的角度對Oracle數(shù)據(jù)庫性能優(yōu)化與實時監(jiān)控技術(shù)進行研究,并提出針對性的建議。

關(guān)鍵詞:Oracle數(shù)據(jù)庫;性能優(yōu)化;監(jiān)控系統(tǒng)

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2019)07-0003-02

從當前IT系統(tǒng)的現(xiàn)狀來看,大型應(yīng)用系統(tǒng)多基于大型關(guān)系型數(shù)據(jù)庫,但關(guān)系型數(shù)據(jù)庫會隨著聯(lián)機用戶的持續(xù)增加而對應(yīng)用系統(tǒng)性能造成制約,并且基于關(guān)系型數(shù)據(jù)庫的大型應(yīng)用系統(tǒng)性能的提升是硬件系統(tǒng)擴容,但通常費用較為昂貴。在這種背景下,Oracle數(shù)據(jù)庫以其使用方便、可移植性好、功能強大的優(yōu)點,能夠?qū)Ξ斍按笥脩舯尘跋碌膽?yīng)用系統(tǒng)提供穩(wěn)健的支持,因此Oracle數(shù)據(jù)庫的性能優(yōu)化和監(jiān)控分析具有重大的現(xiàn)實意義。

1 Oracle數(shù)據(jù)庫概述

Oracle數(shù)據(jù)庫是以高級結(jié)構(gòu)化查詢語言為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,在系統(tǒng)應(yīng)用中,隨著數(shù)據(jù)量的不斷增大,Oracle數(shù)據(jù)庫需要加以優(yōu)化調(diào)整才能發(fā)揮應(yīng)有功效。對Oracle數(shù)據(jù)庫性能進行優(yōu)化調(diào)整就需要先了解其體系結(jié)構(gòu),即物理結(jié)構(gòu)、進程結(jié)構(gòu)、內(nèi)存結(jié)構(gòu)、邏輯結(jié)構(gòu)。物理結(jié)構(gòu)是指組成數(shù)據(jù)庫的操作系統(tǒng)物理文件,包括控制文件、參數(shù)文件、數(shù)據(jù)文件、歸檔日志文件和重做日志文件;進程結(jié)構(gòu)包括后臺進程、用戶進程和服務(wù)器進程;內(nèi)存結(jié)構(gòu)包括Java池、程序全局區(qū)、排序區(qū)、系統(tǒng)全局區(qū)、大池;邏輯結(jié)構(gòu)包括數(shù)據(jù)塊、區(qū)、段、表空間、模式對象。

對Oracle數(shù)據(jù)庫性能進行優(yōu)化調(diào)整通常是在兩個階段,即設(shè)計階段和數(shù)據(jù)庫運行階段,設(shè)計階段的優(yōu)化調(diào)整集中于物理結(jié)構(gòu)和邏輯結(jié)構(gòu),數(shù)據(jù)庫運行階段優(yōu)化調(diào)整集中于應(yīng)用程序、網(wǎng)絡(luò)性能、數(shù)據(jù)庫環(huán)境以及操作系統(tǒng)。操作系統(tǒng)的優(yōu)化調(diào)整方法一般包括控制分頁、減少內(nèi)存交換、使SGA留駐內(nèi)存。對Oracle數(shù)據(jù)庫性能優(yōu)化調(diào)整時需要先明確哪些因素有較大的影響,因此需對Oracle數(shù)據(jù)庫監(jiān)控對象進行分析,包括CPU、I/O、內(nèi)存、會話、回退段、Oracle模式對象。

2 Oracle數(shù)據(jù)庫性能優(yōu)化

(1)內(nèi)存優(yōu)化

在Oracle數(shù)據(jù)庫性能優(yōu)化的內(nèi)存優(yōu)化調(diào)整一般是調(diào)整系統(tǒng)全局區(qū)(SGA)。

①共享池調(diào)整:執(zhí)行select namespace, gethitratio from v$librarycache,gethitratio若在95%以下則需注意調(diào)整;重裝率大于1%需調(diào)整共享池大?。蛔值涓咚倬彺婷新式Y(jié)果小于85%則需增加共享池的大小。

②重做日志緩沖區(qū)調(diào)整:查詢重做日志緩沖區(qū)的效率,如果其值不斷增大,則需增加log_buffer的大小。

③緩沖區(qū)高速緩存調(diào)整:Oracle數(shù)據(jù)庫運行時,為縮短響應(yīng)時間,提高相應(yīng)效率,應(yīng)盡可能從緩沖區(qū)高速緩存中尋找數(shù)據(jù),這需監(jiān)控緩沖區(qū)高速緩存的命中率,如果命中率低于90%,則需增加db_cache_size的值。

(2)I/O優(yōu)化

為提升Oracle數(shù)據(jù)庫性能,應(yīng)盡量減少磁盤I/O,并使用本地管理表空間,進而平衡I/O,平衡多個磁盤驅(qū)動器的負荷。具體優(yōu)化策略包括:①同一表空間多個數(shù)據(jù)文件存放于不同磁盤;②訪問量大的數(shù)據(jù)文件應(yīng)在獨立磁盤上進行存放;③用戶數(shù)據(jù)一般不放在system表空間,而是單獨創(chuàng)建表空間;④創(chuàng)建臨時表空間用于排序操作,創(chuàng)建單獨的回滾段表空間,是數(shù)據(jù)庫碎片不散落在多個表空間;⑤創(chuàng)建單獨的索引表空間,其區(qū)分磁盤存放索引數(shù)據(jù)與表數(shù)據(jù);⑥為減少磁盤競爭,重做日志文件單獨存放,盡量不要與數(shù)據(jù)文件存于統(tǒng)一磁盤,且重做日志文件要足夠大。

(3)CPU優(yōu)化

應(yīng)用系統(tǒng)與應(yīng)用軟件性能不僅受I/O影響,還受CPU約束。工作高峰時CUP使用率要求在90%以下,如空閑時CPU使用率依然很高,則需調(diào)整優(yōu)化CPU,增加CPU資源。通過查看v$sysstat數(shù)據(jù)字典中的用戶態(tài)CPU時間和操作態(tài)CPU時間,查看當前連接Oracle數(shù)據(jù)庫各個會話占用CPU時間,若操作系統(tǒng)占用CPU時間在90%以上則說明正常,否則說明服務(wù)器CPU被其他程序占用過多,造成CPU資源不足。這是需要分析SQL語句,對低效率的SQL語句和鎖沖突進行調(diào)整優(yōu)化,或增加Oracle參數(shù)高速緩存的光標數(shù)的值。

(4)網(wǎng)絡(luò)性能優(yōu)化

網(wǎng)絡(luò)性能是影響Oracle數(shù)據(jù)庫性能的又一重要因素,優(yōu)化調(diào)整的策略則主要是減少網(wǎng)上數(shù)據(jù)流量。Oracle中的網(wǎng)絡(luò)協(xié)議是Net 8或SQL*Net,其為客戶端和Oracle服務(wù)器提供透明連通性。為減少網(wǎng)絡(luò)信息流量,確保網(wǎng)絡(luò)吞吐量的快速性,需測出網(wǎng)絡(luò)增加的延遲。Oracle數(shù)據(jù)庫系統(tǒng)提供了v$session_wait、v$session_event和v$sesstat三個動態(tài)性能表。

在v$session_event中用信息間等待時間評估網(wǎng)絡(luò)效率,在v$session_wait中用等待事件與Oracle做出的回應(yīng)評估網(wǎng)絡(luò)效率,在v$sesstat中查看接收和發(fā)送到客戶端的字節(jié)數(shù),以及客戶端做出的請求數(shù)目,來評估網(wǎng)絡(luò)效率。

3 Oracle數(shù)據(jù)庫監(jiān)控系統(tǒng)設(shè)計實現(xiàn)

(1)需求分析與總體框架

隨著網(wǎng)絡(luò)的快速發(fā)展,客戶訪問數(shù)量越來越大,對系統(tǒng)性能要求越來越高,因此Oracle數(shù)據(jù)庫實時監(jiān)控系統(tǒng)對Oracle數(shù)據(jù)庫系統(tǒng)而言十分必要,是調(diào)整優(yōu)化Oracle數(shù)據(jù)庫性能的重要子系統(tǒng)。由于訪問客戶數(shù)量的增大,在原有硬件系統(tǒng)的基礎(chǔ)上,系統(tǒng)負荷量越來越大,進而影響Oracle數(shù)據(jù)庫系統(tǒng)性能,通過Oracle數(shù)據(jù)庫實時監(jiān)控系統(tǒng)對數(shù)據(jù)庫性能進行實時監(jiān)控,能夠為其調(diào)整優(yōu)化提供支持。

Oracle數(shù)據(jù)庫監(jiān)控系統(tǒng)基于J2EE分布式構(gòu)件技術(shù)實現(xiàn),采用B/S三層架構(gòu),保證系統(tǒng)擴展性和跨平臺性。監(jiān)控系統(tǒng)的設(shè)計要遵循“開-閉”原則,關(guān)鍵是抽象化,實現(xiàn)對擴展開放。Oracle數(shù)據(jù)庫實時監(jiān)控系統(tǒng)應(yīng)用Struts開發(fā)框架,分為客戶端、業(yè)務(wù)邏輯層、數(shù)據(jù)庫服務(wù)器層三部分??蛻舳擞脩艚缑嫣峁┛梢暬涌?,支持IE和Applet等。業(yè)務(wù)邏輯層將數(shù)據(jù)訪問和業(yè)務(wù)流程控制分開,前端是遠程方法調(diào)用服務(wù)器、Servlet/JSP等應(yīng)用,后臺是數(shù)據(jù)采樣過程。數(shù)據(jù)庫服務(wù)器層負責(zé)數(shù)據(jù)庫管理,并相應(yīng)應(yīng)用服務(wù)器的數(shù)據(jù)請求。

(2)模塊設(shè)計

Oracle數(shù)據(jù)庫實時監(jiān)控系統(tǒng)功能模塊設(shè)計主要涉及模塊獨立和信息隱藏兩方面,實現(xiàn)參數(shù)配置、報警模塊、數(shù)據(jù)訪問、數(shù)據(jù)采集功能。數(shù)據(jù)采集主要包括以下五個部分:

數(shù)據(jù)庫預(yù)覽:實現(xiàn)對后臺數(shù)據(jù)庫性能指標的概覽,比如CPU和內(nèi)存使用情況、進程以及磁盤存儲、SGA等信息;

性能參數(shù)指標監(jiān)控:監(jiān)控主要性能指標包括排序區(qū)情況、重做日志活動、字典高速緩存命中率、緩沖區(qū)命中率、回滾段、庫高速緩存命中率等。性能指標監(jiān)控處理流程為“監(jiān)控獲取性能參數(shù)值→與標準值比較→判斷是否超過閾值→報警并給出優(yōu)化建議→存儲參數(shù)值”;

存儲指標監(jiān)控:目標對象為Oracle數(shù)據(jù)庫存儲動態(tài),因此監(jiān)控性能指標包括SGA分配、數(shù)據(jù)文件、表空間等常用項目;

數(shù)據(jù)庫問題管理:DBA實現(xiàn)對Oracle數(shù)據(jù)庫常規(guī)問題的檢查,包括有問題的SQL、文件I/O、等待事件和鎖表信息;

對象管理:包括SGA、索引、數(shù)據(jù)庫表、同義詞、序列、視圖等。

(3)數(shù)據(jù)庫設(shè)計

為減輕Oracle數(shù)據(jù)庫中監(jiān)控系統(tǒng)對整個系統(tǒng)的影響,監(jiān)控系統(tǒng)的數(shù)據(jù)庫單獨存放系統(tǒng)數(shù)據(jù)和歷史性能數(shù)據(jù),要求具備快速讀取、安全存放能力。監(jiān)控系統(tǒng)數(shù)據(jù)設(shè)計需遵循標準和規(guī)范化原則,考慮如下內(nèi)容:數(shù)據(jù)結(jié)構(gòu)要符合規(guī)范,是業(yè)務(wù)處理邏輯更清晰;對數(shù)據(jù)操作應(yīng)盡量簡化,避免過多的表連續(xù)等關(guān)聯(lián)操作;對相關(guān)聯(lián)的表添加約束條件,簡化程序?qū)?shù)值處理的流程。

以監(jiān)控對象為中心,設(shè)計一個目標實體作為各種待監(jiān)控目標的主表,核心對象的表主要包括Target目錄表、數(shù)據(jù)庫目標表、主機目標表、監(jiān)控項目表、報警閾值表、實時整數(shù)監(jiān)控數(shù)據(jù)表、歷史整數(shù)監(jiān)控數(shù)據(jù)表、系統(tǒng)用戶表、系統(tǒng)資源配置表等。

在數(shù)據(jù)庫配置中,所有表及相關(guān)索引在服務(wù)器端程序初始化配置時創(chuàng)建,通過編輯sysDB.config文件中的數(shù)據(jù)庫配置參數(shù),即可在調(diào)用initSysDB.sh腳本時通過讀取sysDB.config文件中參數(shù)自動在系統(tǒng)數(shù)據(jù)庫中創(chuàng)建系統(tǒng)數(shù)據(jù)庫中相關(guān)對象。sysDB.config文件中主要參數(shù)賦值可根據(jù)實際系統(tǒng)數(shù)據(jù)庫創(chuàng)建情況進行修改。在配置系統(tǒng)數(shù)據(jù)庫用戶時先創(chuàng)建用戶,并賦予其connect,resource權(quán)限。在Oracle監(jiān)控系統(tǒng)數(shù)據(jù)庫中創(chuàng)建添加、刪除和查詢PLSQL存儲過程,充分發(fā)揮數(shù)據(jù)庫對數(shù)據(jù)的處理能力。

(4)監(jiān)控系統(tǒng)功能實現(xiàn)

從Oracle數(shù)據(jù)庫監(jiān)控系統(tǒng)運行的流程設(shè)計可知,監(jiān)控功能的實現(xiàn)需要目標端程序和服務(wù)器端程序共同協(xié)作才能完成。程序使用DBTarget對象定義了被監(jiān)控的目標數(shù)據(jù)庫,ServerTarget對象定義了被監(jiān)控的目標主機。在ServerTarget類和DBTarget類中均通過Monit()方法完成對目標端操作哦系統(tǒng)層監(jiān)控參數(shù)和數(shù)據(jù)庫實例的監(jiān)控數(shù)據(jù)收集。

目標端操作系統(tǒng)狀態(tài)監(jiān)控程序流程為:收集Oracle數(shù)據(jù)庫系統(tǒng)運行數(shù)據(jù)→與服務(wù)器程序建立通信→數(shù)據(jù)傳輸→是否更新監(jiān)控參數(shù)→更新收集參數(shù)→是否停止監(jiān)控→結(jié)束。

目標Oracle數(shù)據(jù)庫狀態(tài)監(jiān)控流程:連接Oracle數(shù)據(jù)庫→訪問目標Oracle數(shù)據(jù)庫→收集目標Oracle數(shù)據(jù)庫運行數(shù)據(jù)→與服務(wù)器建立通信→數(shù)據(jù)傳輸→是否更新監(jiān)控參數(shù)→更新收集參數(shù)→是否停止監(jiān)控→結(jié)束。

在完成監(jiān)控系統(tǒng)功能流程后,確定數(shù)據(jù)庫信息獲取的實現(xiàn)方式,包括成員函數(shù),然后實現(xiàn)表空間監(jiān)控,最后設(shè)計系統(tǒng)人機交互界面,最終完成監(jiān)控系統(tǒng)。

參考文獻:

[1] 劉夢甜.Oracle數(shù)據(jù)庫性能監(jiān)控與分析系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2017(4).

[2] 黃杰生.基于ORACLE的數(shù)據(jù)庫性能優(yōu)化設(shè)計[J].電子技術(shù)與軟件工程,2018(10).

[3] 楊瑩.基于Oracle數(shù)據(jù)庫大數(shù)據(jù)的檢索優(yōu)化分析與設(shè)計[J].數(shù)碼世界,2017(4).

[4] 余欽泉.ORACLE數(shù)據(jù)庫的運行狀況管理系統(tǒng)的設(shè)計與實現(xiàn)[D].廈門大學(xué),2016.

【通聯(lián)編輯:唐一東】

猜你喜歡
性能優(yōu)化監(jiān)控系統(tǒng)
SQL Server數(shù)據(jù)庫性能優(yōu)化的幾點分析