軟件項(xiàng)目維護(hù)方案(參考示例)_第1頁
軟件項(xiàng)目維護(hù)方案(參考示例)_第2頁
軟件項(xiàng)目維護(hù)方案(參考示例)_第3頁
軟件項(xiàng)目維護(hù)方案(參考示例)_第4頁
軟件項(xiàng)目維護(hù)方案(參考示例)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、v1.0可編輯可修改軟件項(xiàng)目維護(hù)方案121 .項(xiàng)目背景及目標(biāo)1.1. 項(xiàng)目背景在國家政策的指導(dǎo)和幫助下,信息化也越來越發(fā)揮出十分重要的作用。XXXX 不斷加大信息化管理工作力度,積極實(shí)施“上網(wǎng)工程”,大力推進(jìn)全市局域網(wǎng)建 設(shè),加快辦公自動(dòng)化系統(tǒng)進(jìn)程,信息技術(shù)在改革中發(fā)揮了重要的支撐作用,為充分發(fā)揮政府公共職能,促進(jìn)依法理財(cái)、科學(xué)理財(cái),提供了重要的信息技術(shù)保障。近年來建設(shè)各系統(tǒng)隨著數(shù)據(jù)量的逐年增加, 陸續(xù)出現(xiàn)了性能問題,有必要進(jìn)行數(shù) 據(jù)庫系統(tǒng)的升級(jí)及性能優(yōu)化,以確保應(yīng)用系統(tǒng)的正常運(yùn)行,為單位員工提供更好 的信息服務(wù)。1.2. 項(xiàng)目目標(biāo) 對(duì)各系統(tǒng)數(shù)據(jù)庫進(jìn)行補(bǔ)丁升級(jí)服務(wù),安裝補(bǔ)丁前制定詳細(xì)的升級(jí)計(jì)劃

2、和應(yīng)急 回退計(jì)劃。 完成各系統(tǒng)數(shù)據(jù)庫的性能調(diào)優(yōu)工作。 各業(yè)務(wù)持續(xù)性得到有效的保證。2 .需求分析XXXXXXX目,我公司有多年的行業(yè)經(jīng)驗(yàn)。具有對(duì)運(yùn)維服務(wù)對(duì)象進(jìn)行適時(shí)監(jiān)測(cè)、 指標(biāo)分析、和及時(shí)修復(fù)的能力。Oracle產(chǎn)品日常運(yùn)行維護(hù)項(xiàng)目主要從如下幾個(gè)方面進(jìn)行:(1) .每天對(duì)ORACL數(shù)據(jù)庫的運(yùn)行狀態(tài),日志文件,備份情況,數(shù)據(jù)庫的空間 使用情況,系統(tǒng)資源的使用情況進(jìn)行查看,發(fā)現(xiàn)并解決問題。(2) .每周對(duì)數(shù)據(jù)庫對(duì)象的空間擴(kuò)展情況,數(shù)據(jù)的增長(zhǎng)情況進(jìn)行監(jiān)控,對(duì)數(shù)據(jù) 庫做健康查看,對(duì)數(shù)據(jù)庫對(duì)象的狀態(tài)做查看。(3) .查看表空間碎片,提出下一步空間管理計(jì)劃。對(duì) ORACL敢據(jù)庫狀態(tài)進(jìn) 行一次全面查看。(4

3、)由于這些數(shù)據(jù)庫系統(tǒng)承載著 XXXKE常重要的業(yè)務(wù)系統(tǒng)數(shù)據(jù),所以在日 常維護(hù)中需要非常仔細(xì),每周、每月、每季都需要有相應(yīng)的巡檢記錄,需要詳細(xì)記載以下一些內(nèi)容:監(jiān)控?cái)?shù)據(jù)庫對(duì)象的空間擴(kuò)展情況監(jiān)控?cái)?shù)據(jù)量的增長(zhǎng)情況系統(tǒng)健康查看,查看以下內(nèi)容:數(shù)據(jù)庫對(duì)象有效性查看查看是否有危害到安全策略的問題。查看alert 、Sqlnet等日志并歸檔報(bào)錯(cuò)日志分析表和索引查看對(duì)數(shù)據(jù)庫會(huì)產(chǎn)生危害的增長(zhǎng)速度查看表空間碎片數(shù)據(jù)庫性能調(diào)整預(yù)測(cè)數(shù)據(jù)庫將來的性能調(diào)整和維護(hù)工作后續(xù)空間3 .整體運(yùn)行維護(hù)服務(wù)方案3.1. Lifekeeper 維護(hù)3.1.1. 驗(yàn)證 LifeKeeper 的安裝查看已經(jīng)安裝的LifeKeeper軟件包

4、,可以使用命令:rpm qa|grep stee3.1.2. 啟動(dòng) LifeKeepera)啟動(dòng)LifeKeeper服務(wù)器進(jìn)程如果當(dāng)前您的系統(tǒng)沒有運(yùn)行LifeKeeper則在所有服務(wù)器上以root用戶身份輸入如下命令# /opt/LifeKeeper/bin/lkstartb)啟動(dòng)LifeKeeper GUI服務(wù)器進(jìn)程同樣以root用戶運(yùn)行命令# /opt/LifeKeeper/bin/lkGUIserver start注意:以上命令只需運(yùn)行一次,以后每次系統(tǒng)重新啟動(dòng)時(shí),LifeKeeper會(huì)自動(dòng)運(yùn)行上述進(jìn)程3.1.3. 有關(guān)的LifeKeeper軟件的其它管理任務(wù)a)停止LifeKeeper

5、 服務(wù)如果需要在服務(wù)器上永久停止 LifeKeeper服務(wù),可以輸入下列命令$LKROOT/bin/lkstop該命令同時(shí)會(huì)使所有LifeKeeper保護(hù)的資源處于退出服務(wù)狀態(tài),如果希望在停止LifeKeeper時(shí)保持資源/應(yīng)用的運(yùn)行,可以使用:$LKROOT/bin/lkstop -fb)查看LifeKeeper 進(jìn)程鍵入下列命令可以查看當(dāng)前運(yùn)行的所有LifeKeeper進(jìn)程列表ps -ef | grep LifeKeeper3.1.4. 啟動(dòng) LifeKeeperGUI 配置工具進(jìn)入LifeKeeper GUI管理工具可以通過運(yùn)行命令:/opt/LifeKeeper/bin/lkGUIap

6、p則出現(xiàn)LifeKeeper登錄界面:可以使用root用戶登錄,也可以使用新建的用戶進(jìn)行登錄3.1.5. 檢測(cè)LifeKeeper集群運(yùn)行狀態(tài)可以使用lcdstatus命令對(duì)LifeKeeper集群的當(dāng)前運(yùn)行狀態(tài)進(jìn)行查看,命令格lcdstatus 卜q -d 該程序向stdout輸出在LifeKeeper資源層次配置狀態(tài)和通信路徑的狀態(tài)選項(xiàng)-q表示輸出采用簡(jiǎn)略的形式(建議使用該選項(xiàng))選項(xiàng)-d表示要查看的主機(jī),缺X查看本機(jī)3.1.6. 管理LifeKeeper 中的資源注意:如果能運(yùn)行LifeKeeper GUI ,則使用其提供菜單命令執(zhí)行相應(yīng)操作;在 執(zhí)行命令行啟動(dòng)/停止資源前,一定先使用lc

7、dstatus命令確認(rèn)資源的實(shí)際狀態(tài) a)啟用資源(In-Service)可以使用命令:./perform_action -t -a restore將資源標(biāo)記名所對(duì)應(yīng)的資源在本機(jī)上投入服務(wù)(啟動(dòng))。如果該資源在命令使用前已經(jīng)在另一臺(tái)機(jī)器上處于運(yùn)行狀態(tài),則本命令執(zhí)行的結(jié)果相當(dāng)于執(zhí)行了一次手 工切換!如果該資源在命令使用前是處于停止?fàn)顟B(tài)(即在備機(jī)上執(zhí)行本命令),則本命令執(zhí)行的結(jié)果相當(dāng)于執(zhí)行了 一次手工切換b)停止資源(out-of-service)可以使用命令:./perform_action -t -a remove將資源標(biāo)記名所對(duì)應(yīng)的資源在本機(jī)上停止服務(wù)。如果該資源在命令使用前已經(jīng)在另一臺(tái)機(jī)器

8、上處于運(yùn)行狀態(tài),則本命令執(zhí)行不產(chǎn)生任何結(jié)果注意:在執(zhí)行命令行前后,一定先使用lcdstatus命令確認(rèn)資源的當(dāng)前狀態(tài)。命令停止/啟動(dòng)本地的資源命令中的是區(qū)分大小寫的一定要等待命令完成,注意命令的輸出。詳細(xì)用法見在線幫助手冊(cè)。3.2. SQL SERVER!護(hù)計(jì)算機(jī)系統(tǒng)各種軟、硬件故障、用戶誤操作以及惡意破壞是不可避免的 ,這 些影響到數(shù)據(jù)的正確性甚至造成數(shù)據(jù)損失、 服務(wù)器崩潰等致命后果。數(shù)據(jù)庫的備 份對(duì)保證系統(tǒng)的可靠性具有重要的作用。下面會(huì)根據(jù)執(zhí)行強(qiáng)度對(duì)維護(hù)任務(wù)及其相應(yīng)的程序進(jìn)行分類描述,執(zhí)行強(qiáng)度用不同的時(shí)間問隔定義,包括每天、每周、每月和每季度,能夠建立起良好的維護(hù) 實(shí)務(wù),確保SQL Ser

9、ver數(shù)據(jù)庫性能和安全。3.2.1. 每天的例行維護(hù)任務(wù)需要數(shù)據(jù)庫管理員密切關(guān)注的維護(hù)任務(wù), 最好每天都查看一下,這樣可以確 保系統(tǒng)的可靠性、可用性、運(yùn)行性能和安全。每天的例行維護(hù)任務(wù)包括:1、查看是不是所有被請(qǐng)求的SQL Server服務(wù)都正常運(yùn)行。2、查看日常備份日志中成功、警告或者失敗記錄。3、查看Windows事件日志有沒有錯(cuò)誤記錄。4、查看SQL Server日志有沒有安全警告記錄,例如非法登錄。5、執(zhí)行完全備份或差異備份。6、在設(shè)置了完全恢復(fù)模型或大容量日恢復(fù)模型的數(shù)據(jù)庫上執(zhí)行事務(wù)日志備 份任務(wù)。7、核實(shí)SQL Server作業(yè)沒有失敗。8、查看所有的數(shù)據(jù)庫文件和事務(wù)日志具有合適的

10、磁盤空間大小。9、至少要監(jiān)控處理器、內(nèi)存或者磁盤計(jì)數(shù)器沒有出現(xiàn)瓶頸。3.2.2. 每周的例行維護(hù)任務(wù)關(guān)注程度稍遜于每天的例行維護(hù)任務(wù), 最好每周進(jìn)行一次例行查看。每周的例行維護(hù)任務(wù)包括:1、執(zhí)行完全備份或差異備份。2、查看以前執(zhí)行的維護(hù)計(jì)劃報(bào)告。3、查看數(shù)據(jù)庫完整性。4、如果需要,執(zhí)行收縮數(shù)據(jù)庫任務(wù)。5、通過重新組織索引任務(wù)壓縮聚集和非聚集表和視圖。6、通過重新生成索引任務(wù)在數(shù)據(jù)頁和索引頁重新組織數(shù)據(jù)。7、更新所有用戶表和系統(tǒng)表的統(tǒng)計(jì)信息8、清除備份、還原、SQL Server代理作業(yè)和維護(hù)計(jì)劃等操作的歷史數(shù)據(jù)。9、如果需要,手動(dòng)增長(zhǎng)數(shù)據(jù)庫或事務(wù)日志文件10、清除執(zhí)行維護(hù)計(jì)劃殘留下來的文件。3

11、.2.3. 每月或每季度的維護(hù)任務(wù)有一些維護(hù)計(jì)劃不需要執(zhí)行得過于頻繁,可以每個(gè)月或每個(gè)季度執(zhí)行一次。但是請(qǐng)不要以為這些任務(wù)不需要天天執(zhí)行就無足輕重,這些任務(wù)可以確保數(shù)據(jù)庫環(huán)境的健康,所以不要輕視以下這些維護(hù)任務(wù):1、在測(cè)試環(huán)境中執(zhí)行備份還原操作。2、將歷史數(shù)據(jù)歸檔。3、分析收集的性能統(tǒng)計(jì)數(shù)據(jù),與基準(zhǔn)值相比較。3、查看并更新維護(hù)文檔。4、查看并安裝最新的SQL Server補(bǔ)丁和補(bǔ)丁包。5、如果運(yùn)行簇、數(shù)據(jù)庫鏡像或日志傳送,則監(jiān)測(cè)故障轉(zhuǎn)移。6、驗(yàn)證備份和還原進(jìn)程是否遵循已定義的服務(wù)等級(jí)協(xié)議。7、更新SQL Server構(gòu)建指南。8、更新SQL Server災(zāi)難恢復(fù)文檔。9、更新維護(hù)計(jì)劃列表10、

12、修改管理員口令。11、修改SQL Server服務(wù)帳戶口令3.3. WebLogic 維護(hù)3.3.1. 性能調(diào)優(yōu). 設(shè)定執(zhí)行隊(duì)列的溢出條件Weblogic Server提供給默認(rèn)的執(zhí)行隊(duì)列或用戶自定義的執(zhí)行隊(duì)列自定義溢 出條件的功能,當(dāng)滿足此溢出條件時(shí),服務(wù)器改變其狀態(tài)為“警告”狀態(tài),并且 額外的再分配一些線程去處理在隊(duì)列中的請(qǐng)求, 而達(dá)到降低隊(duì)列長(zhǎng)度的目的。通過啟動(dòng)管理控制臺(tái),在域(如: mydomain 服務(wù)器 server實(shí)例(如: myserver) Execute Queue 酉己置下面幾項(xiàng):隊(duì)列長(zhǎng)度:此值表示執(zhí)行隊(duì)列中可容納的最大請(qǐng)求數(shù),默認(rèn)值是65536,最后不要手

13、動(dòng)改變此值。隊(duì)列長(zhǎng)度閾值百分比:此值表示溢出條件,在此服務(wù)器指出隊(duì)列溢出之前可 以達(dá)到的隊(duì)列長(zhǎng)度大小的百分比。線程數(shù)增加:當(dāng)檢測(cè)到溢出條件時(shí),將增加到執(zhí)行隊(duì)列中的線程數(shù)量。 如果 CPU和內(nèi)存不是足夠的高,盡量不要改變默認(rèn)值“ 0”。因?yàn)?Weblogic 一旦增加 后不會(huì)自動(dòng)縮減,雖然最終可能確實(shí)起到了降低請(qǐng)求的作用,但在將來的運(yùn)行中將影響程序的性能。最大線程數(shù):為了防止創(chuàng)建過多的線程數(shù)量,可以通過設(shè)定最大的線程數(shù)進(jìn) 行控制。在實(shí)際的應(yīng)用場(chǎng)景中,應(yīng)根據(jù)具體情況適當(dāng)?shù)恼{(diào)整以上參數(shù)。. 設(shè)定隊(duì)列監(jiān)測(cè)行為Weblogic Server能夠自動(dòng)監(jiān)測(cè)到當(dāng)一個(gè)執(zhí)行線程變?yōu)椤白枞?。變?yōu)椤白?/p>

14、 塞”狀態(tài)的執(zhí)行線程將無法完成當(dāng)前的工作,也無法再執(zhí)行新請(qǐng)求。如果執(zhí)行隊(duì) 列中的所有執(zhí)行線程都變?yōu)椤白枞睜顟B(tài),Weblogic server可能改變狀態(tài)為“警 告,或“嚴(yán)重”狀態(tài)。如果 Weblogic server變?yōu)椤皣?yán)重”狀態(tài),可以通過 Node Manager來自動(dòng)關(guān)閉此服務(wù)器并重新啟動(dòng)它。具體請(qǐng)參考: Node ManagerCapabilities 文檔。通過啟動(dòng)管理控制臺(tái),在域(如:mydomairn 服務(wù)器 server實(shí)例(如:myserver) 配置調(diào)整下可配置下面幾項(xiàng):阻塞線程最長(zhǎng)時(shí)間:在此服務(wù)器將線程診斷為阻塞線程之前,線程必須連續(xù)工作的時(shí)間長(zhǎng)度(秒)。默認(rèn)情況下,W

15、ebLogic Server認(rèn)為線程在連續(xù)工作600 秒后成為阻塞線程。阻塞線程計(jì)時(shí)器間隔:WebLogic Server定期掃描線程以查看它們是否已經(jīng) 連續(xù)工作了 阻塞線程最長(zhǎng)時(shí)間”字段中指定的時(shí)間長(zhǎng)度的間隔時(shí)間(秒)。默認(rèn) 情況下,WebLogic Server將此時(shí)間間隔設(shè)置為600秒。.1. 盡量使用本地IO庫WebLogicServer有兩套套接字復(fù)用器:Java版和本地庫。采用小型本地庫 更有效,盡量激活Enable Native IO(默認(rèn)),此時(shí)UNIX默認(rèn)使用CPUs+1個(gè)線 程,Window下為雙倍CPU如果系統(tǒng)不能加載本地庫,將會(huì)拋出此時(shí)只能使用Java 套

16、接字復(fù)用器,可以調(diào)整socket readers 百分比,默認(rèn)為33%該參數(shù)可以在 Console Server Tuning Configuration配置欄里設(shè)置,配置完,重新啟動(dòng)WebLogic Server 即可。Prffjgcob | logging 1 MOrtiforma: | Dei)biWite | Se*Vice3 | Note |GsnBfd | Ouster | Keystar日與 & SSL DsplarnsMnt | Tuning H&etUiiktMiibxing | Rafiiate Startmis 口罩期自la哺 yw g tur. the grfcrmMK

17、 endof tn% sn%顯 M Enablai tiathr IIOSpecifies nhrtherihs swrwr 3g ngtw VOScKlitt fi4*ditn:|IT*口白rdsgg |b瞰的1 sru Utj 3 飆二上tnrMd& 卜曲如用!:曲*力后 的Tv前m的uS的的加觥r的品值(AiKflingiugjiBfrMd1 y aociatnMdFnra*iinciiMMaihi!spM(i 由M 丘然小學(xué) 5【/ 而.pi cnrtIMaplmuiii contigjro a rwr. uaw-dMcgdi。照cute qugg for 的白 with 叩由匕部加白

18、小口 ttns terwr. or to Mit an 0H sting axucute qu電g.q Hamtjweblogic kernel. DefauftTM nne oi lh。噂ciuii q前-& Oifeue LhiotIv將553曲The rminuri irumlMr of limJtaneais rmuHthi sbiw can hold in ins queus. Cli&ug Lenngrl; Ttireshokl Percent:甌Thi pereertngia of Ihe Qiuiu Ltnh 由n M reachsd belor9 h 寫 wiMar indi

19、catM an werftMXcndiiian tor 由0 口ep& Thread Count:Th* nunDr or trr&ads 甘 ei an&d to uiis 堂 ThrwMs. ilfKr*ssi:丁The number of m陽聆 m b- SOM 1 tc H r qmiF when 節(jié)后rflm 日加Ein occurs. Thr*d MMMufft:|:irnL|rn nuintiE af threa d Liat ih= 中占lie 匚3口 have this 1 自Li& prevents WafcL口如二 三s-er frcirn creefcns an we

20、rly Ihig+i ftread cDuit n the qugiue inespcriEe to 二口rtinual overflcm condiijons毋 Thradfl Mlriinyunn;一Th# ninlmurn! nunibar ofthat WetLoglc Seriw id I mainiiiln in tM qubimlThread PTiwityIliti pnDi J tfKr,3 *,.。0乂皿 wU If rtqu”一.WF*y重啟Server ,使新的執(zhí)行隊(duì)列設(shè)置生效. JDBM優(yōu).1,驅(qū)動(dòng)程序類型選擇Oracle提供thin驅(qū)動(dòng)和

21、oci驅(qū)動(dòng),從性能上來講,oci驅(qū)動(dòng)強(qiáng)于thin驅(qū)動(dòng), 特別是大數(shù)據(jù)量的操作。但在簡(jiǎn)單的數(shù)據(jù)庫操作中,性能相差不大,隨著thin驅(qū) 動(dòng)的不斷改進(jìn),這一弱勢(shì)將得到彌補(bǔ)。而thin驅(qū)動(dòng)的移植性明顯強(qiáng)于oci驅(qū)動(dòng)。 所以在通常情況下建議使用thin驅(qū)動(dòng).2. 調(diào)節(jié)連接池初始容量和最大容量JDBC Connection Pool的調(diào)優(yōu)受制于WebLogic Server線程數(shù)的設(shè)置和數(shù) 據(jù)庫進(jìn)程數(shù),游標(biāo)的大小。通常我們?cè)谝粋€(gè)線程中使用一個(gè)連接,所以連接數(shù)并不 是越多越好,為避免兩邊的資源消耗,建議設(shè)置連接池的最大值等于或者略小于 線程數(shù)。同時(shí)為了減少新建連接的開銷,將最小值和最大值設(shè)為一

22、致;值等于 WebLogic Server的執(zhí)行線程數(shù)。v1.0可編輯可修改Target arrf DedovMjintonnaC untr-ol|,njE | ConrwGt 汨n.Th月 陷我 dilcws VAJ is iJenr 臚由 tonnedion 白丁市承打式冷門 of ns JOB:. vcrrieclJcn poollhiltil C*pcllyJ-The number of uhiiGal chtabu- connedi ns ibdW n 0 口rd 二 pciMi 3? M inMger I口 口口egman 1行口kg this JDBC oonpection po

23、dMf iUimim Ciptclrv:ThB 01 an in urn nurnDer of ph k col dfltsbese ocm&cbooE; (belne6n l srd a porbve S2-bi inbegec) ihst thi 三 JLbl .cninertion pod tan containCapacity liicreinerrt.r-iA訐,iTAr方irH-sn arvig 口的 11237-dwm汽)m jidbc h門ne:ron pooi 二司*:陽歸目曰也 stsHrMMQsMTyp*.畫2The algantnm usod Tar mairuinin

24、g m prepared stateNrmiB ored n ine cacrw. LEU repiacog U19 路目鵬 recemystatermrts ,hTien 11m LdL/i曰itUi- J. PIXlu i弦的 武白f iL除1 juihIt同#/田,也inm電,途9袁ME*mt Cach Siz*.Trip nuiW&r ofpEpgh?d 314 v日iSte stenierrE r門Ed in 丘 csohr |Th T戶,/ inc白日2perfonrn=iirH j.3. 其他配置盡管JDBC Connection Pool提供了很多高級(jí)參數(shù),在開發(fā)

25、模式下比較有用, 但大部分在生產(chǎn)環(huán)境下不需調(diào)整。這里建議最好不要設(shè)置測(cè)試表,同時(shí)TestReserved Connections 和 Test Released Connections 也無需勾上。 當(dāng)然如果 你的數(shù)據(jù)庫不穩(wěn)定,時(shí)斷時(shí)續(xù),你就可能需要上述的參數(shù)打開L Tbs! Rearvfld CoiriEttioriSpecifies whether Wet Logic Sewr test: u comneztion before giving it t:5 由。dient. (You must specirfy aTKtTat Mame WwJr Test Created Conniect

26、ions: r. ., p 1 i - .ri l|i I : i! bi. - j 1 h .1 I bj 1 h 1 1 1-,山 111availabte in the pogl (Yqu must pecily Test Table Name, r Test Reles?ed CannectionsSpy- ifgq whkftiftr WebLojic值耳Is a ccinn6clion tiofore return ng it to ths JDBC 心口nn&cbcn pod | You 巾舊specify a Test Tble Nsm ). WE朋優(yōu)3.3.1.

27、4.2. 調(diào)整WEEB5用描述符WEEK用除代碼之外白調(diào)優(yōu)比較簡(jiǎn)單,僅僅是對(duì)一些WE葩用描述符的調(diào)整。首先關(guān)閉Session Monitoring Enabled, 僅僅在Cluster環(huán)境下設(shè)置Session復(fù) 制(優(yōu)先使用內(nèi)存復(fù)制),在保證應(yīng)用正常運(yùn)行的情況下,設(shè)置較短的Session超 13v1.0可編輯可修改時(shí)時(shí)間。同時(shí)生產(chǎn)環(huán)境下無需查看 Jsp和servlet : JSPPage Check Secs和 Servlet Reload Check Secs 均設(shè)為-1,關(guān)閉 JSP Keep Generated 和 JSP Verbose 對(duì)性能也有幫助。止匕外,還可以對(duì)jsp進(jìn)行預(yù)編

28、譯,有兩種方法:激活precompile 選項(xiàng);使用事先編譯,建議采用后者。. 其他調(diào)優(yōu)設(shè)置.2. WebLogic文件描述符大小調(diào)整首先設(shè)置WE機(jī)系統(tǒng)的ulimit 參數(shù)為unlimited ,然后設(shè)置WebLogic 中文件描述符的大小。在WL_HOME/bea/weblogic/common/bin中打開文件,修改設(shè)置文件描述 符大小的指令,將默認(rèn)的:ulimit- n 1024修改為:ulimit - n 81923.3.2.維護(hù)管理. 啟動(dòng) weblogic server啟動(dòng)管理服務(wù)器:執(zhí)行啟動(dòng)被管理服務(wù)器:執(zhí)行 servername adm

29、inurl. 停止 weblogic server停止被管理服務(wù)器:執(zhí)行 servername啟動(dòng)被管理服務(wù)器:執(zhí)行. 登錄和退出管理控制臺(tái)管理服務(wù)器啟動(dòng)后可以在瀏覽器中登錄管理控制臺(tái)輸入U(xiǎn)RL,則使用https訪問管理控制臺(tái)在彈出的窗口 “ Console Login“中輸入用戶名和密碼登錄. 性能監(jiān)控查看性能參數(shù)| J TAMk Mm*rMnbv / 4 iJnii rnirwd Is Itai登錄控制臺(tái)后點(diǎn)擊 Servers-servername-Monitoring-Performance一mil* 麻- MonH251B :WT-MEXQ0T

30、M4W mw M 1附坤31 wfEwHdfl 帆 ii1M19rf 2ftgr ri IWH* Iktf VM Migft ggft電 電 Eht qal汽 ”1 |F7 IflMutfuir參數(shù)分析1)Idle Threads & Queue Length & Throughout正常情況下 idle threads 0, queue Length 為 0, Throughout 呈不規(guī)則變化曲線,Memory Usage呈適度頻度的鋸齒變化曲線。一般來說,對(duì)于正常配置的生產(chǎn)環(huán)境(線程數(shù)50200),如果idle threads 0 ,則queue length =0;B、反之,如果que

31、ue length0 ,則空閑線程數(shù)=0 ;2)Memory UsageMemory Usage = totalMemory() freeMemory()內(nèi)存使用曲線反應(yīng)了 JVM Heap內(nèi)存使用的變化情況,可以結(jié)合其他三個(gè)值的變 化情況來判斷server工作情況;比較理想的狀態(tài)是適當(dāng)頻度的各種鋸齒變化, 由于JVM GC采用“stop the world ”機(jī)制,也就是垃圾回收時(shí)其他處理將暫 停,過度頻繁的GCW明顯降低server工作效率和性能表現(xiàn)。3.4. Oracle 維護(hù)Oracle Database,又名Oracle RDBMS或簡(jiǎn)稱Oracle。是甲骨文公司的一 款關(guān)系數(shù)據(jù)庫管

32、理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品??梢哉f Oracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠 性好的 適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。3.4.1. 數(shù)據(jù)庫性能優(yōu)化Oracle性能管理既是一種藝術(shù),也是一種科學(xué)。從實(shí)用角度講,它可以分 為兩種類型,主動(dòng)式和被動(dòng)式性能管理。主動(dòng)式性能管理涉及到特定系統(tǒng)實(shí)施初 期的設(shè)計(jì)和開發(fā),包括硬件選擇、性能及容量規(guī)劃,海量存儲(chǔ)系統(tǒng)的選擇,I-O子系統(tǒng)配置及優(yōu)化,以及如何對(duì)不同組件進(jìn)行定制,以滿足Oracle數(shù)據(jù)庫和應(yīng) 用系統(tǒng)的復(fù)雜要求。被動(dòng)式性能管理涉及到

33、現(xiàn)有環(huán)境中不同組件的性能評(píng)估、故障排除和Oracle環(huán)境的優(yōu)化。本文旨在探討如何進(jìn)行被動(dòng)式性能調(diào)優(yōu), 以便為Oracle性 能調(diào)優(yōu)提供必要的指導(dǎo),從而避免僅僅通過反復(fù)嘗試的方式進(jìn)行性能調(diào)優(yōu), 提高 Oracle性能管理的效率。所以O(shè)RACLE數(shù)據(jù)庫性能惡化表現(xiàn)基本上都是用戶響應(yīng)時(shí)間比較長(zhǎng),須要用戶長(zhǎng)時(shí)間的等待。獲得滿意的用戶響應(yīng)時(shí)間有兩個(gè)途徑:一是減少系統(tǒng)服務(wù)時(shí)間,即提高數(shù)據(jù)庫的吞吐量;二是減少用戶等待時(shí)間,即減少用戶訪問同一數(shù)據(jù)庫資源的沖突率。對(duì)于以上的兩個(gè)問題,通常我們采用以下幾個(gè)方面來進(jìn)行改善:調(diào)整服務(wù)器內(nèi)存分配。例如,可以根據(jù)數(shù)據(jù)庫運(yùn)行狀況調(diào)整數(shù)據(jù)庫系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)緩沖區(qū)、

34、日志緩沖區(qū)和共享池的大??;還可以調(diào)整程序 全局區(qū)(PGA區(qū))的大小。調(diào)整硬盤I/O 問題,達(dá)到I/O 負(fù)載均衡。調(diào)整運(yùn)用程序結(jié)構(gòu)設(shè)計(jì)。優(yōu)化調(diào)整操作系統(tǒng)參數(shù)和使用資源管理器。SQL優(yōu)化、診斷 latch 競(jìng)爭(zhēng)、Rollback(undo) Segment 優(yōu)化、提升 block 的效率等等。, 查看Oracle數(shù)據(jù)庫性能查看Oracle數(shù)據(jù)庫性能情況,包含:查看數(shù)據(jù)庫的等待事件,查看死鎖及 處理,查看cpu、I/O、內(nèi)存性能,查看是否有僵死進(jìn)程,查看行鏈接/遷移,定 期做統(tǒng)計(jì)分析,查看緩沖區(qū)命中率,查看共享池命中率,查看排序區(qū),查看日志 ORACLE品日常運(yùn)行維護(hù)年度服務(wù)項(xiàng)目緩沖區(qū)

35、,總共十個(gè)部分。.1. 查看數(shù)據(jù)庫的等待事件set pages 80set lines 120col event for a40selectsid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT fromv$session_wait where event notlike SQL% and event not like rdbms%;如果數(shù)據(jù)庫長(zhǎng)時(shí)間持續(xù)出現(xiàn)大量像 latch free , enqueue, buffer busy waits , db file sequential read , db file scattered read等等

36、待事件時(shí),需要對(duì)其 進(jìn)行分析,可能存在問題的語句。.2. 查看消耗CPLM高的進(jìn)程SET LINE 240SET VERIFY OFFCOLUMN SID FORMAT 999COLUMN PID FORMAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING ORA USERCOLUMN PROGRAM FORMAT A29COLUMN SQL FORMAT A60COLUMN OSNAME FORMAT A9 HEADING OS USERSELECT PID, SID, SPID, USERNAME, OSN

37、AME,#S_#, PROGRAM,RTRIM(SUBSTR, 1,80) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE = AND=(+) AND LIKE %&1%;.3. 查看碎片程度高的表SQL SELECT segment_name table_name,COUNT(*) extents FROM dba_segments WHEREownerNOT IN (SYS, SYSTEM) GROUPBY segment_name HAVING COUNT(*)=(SELECMAX(COUNT(*)FROdba_segm

38、ents GROUBYsegment_name);.4. 查看表空間的I/O 比例SQLSELECT NAME, FILE, PYR, , PYW, PBW FROM V$FILESTAT F, DBA_DATA_FILES DF # = ORDER BY ;v1.0可編輯可修改.5. 查看文件系統(tǒng)的I/O比例SQLSELECTSUBSTR#,1,2)#,SUBSTR,1,30)NAME, FROM V$DATAFILE A, V$FILESTAT B WHERE # =#;.6. Disk Read 最高的 SQLiS句的獲取SQLSELECT SQ

39、L_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) WHERE ROWNUM=5 desc;.7. 查找前十條性能差的sqlSELECT * FROM (SELECT PARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC) WHERE ROWNUM10 ;.8. 等待時(shí)間最多的5個(gè)系統(tǒng)等待事件的獲取SELECT * FROM (SELECT * FR

40、OM V$SYSTEM_EVENT WHERE EVENT NOT LIKE SQL% ORDER BYTOTAL_WAITS DESC) WHERE ROWNUM=5;.9. 查看運(yùn)行很久的SQLCOLUMN USERNAME FORMAT A12COLUMN OPNAME FORMAT A16COLUMN PROGRESS FORMAT A8SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100 / TOTALWORK,0) | %ASPROGRESS,TIME_REMAINING,SQL_TEXTOM V$SESSION_LONGOPS V$S

41、QL 19v1.0可編輯可修改WHERETIME_REMAINING 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE = HASH_VALUE;.10. 查看死鎖及處理查詢目前鎖對(duì)象信息:col sid for 999999col username for a10col schemaname for a10col osuser for a16col machine for a16col terminal for a20col owner for a10col object_name for a30col object_type for a

42、10select sid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,from dba_objects o,v$locked_object l,v$session swhere = and =;oracle 級(jí) kill 掉該 session :alter system kill session &sid,&serial#;操作系統(tǒng)級(jí)kill 掉session :#kill -9 pid.11. 查看數(shù)據(jù)庫cpu、I/O、內(nèi)存性能記錄數(shù)據(jù)庫的cp

43、u使用、IO、內(nèi)存等使用情況,使用 vmstat,iostat,sar,top等命令進(jìn)行信息收集并查看這些信息,判斷資源使用情況。CPU使用情況:rootsale8 # toptop - 10:29:35 up 73 days, 19:54, 1 user, load average: , , : 353 total,2 running, 351 sleeping, 0 stopped, 0 zombieCpu(s): % us, % sy, % ni, % id ,% wa, % hi, % siMem: k total, k used, 3517044k free, 60796k buff

44、ersSwap: 8385920k total, 665576k used, 7720344k free, k cachedPID USER30495 oracle32501 oracle32503 oracle注意上面的加粗字體部分,此部分內(nèi)容表示系統(tǒng)剩余的cpu ,當(dāng)其平均值下降至10%Z下的時(shí)視為CPU使用率異常,需記錄下該數(shù)值,并將狀態(tài)記為異常內(nèi)存使用情況:# free -mTotalusedfreesharedbufferscachedMem:2026-/+ buffers/cache: 326 1700Swap:5992 92 5900如上所示,total表示系統(tǒng)總內(nèi)存,used表

45、示系統(tǒng)使用的內(nèi)存,free表示系統(tǒng)剩余內(nèi)存,當(dāng)剩余內(nèi)存低于總內(nèi)存的10%時(shí)視為異常。系統(tǒng)負(fù)載情況:#uptime12:08:37 up 162 days, 23:33, 15 users,load average:,如上所示,load average部分表示系統(tǒng)負(fù)載,后面的3個(gè)數(shù)值如果有高于的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了,并將此值記錄到巡檢表,視為異常。.12. 查看是否有僵死進(jìn)程select spid from v$process where addr not in (select paddr fromv$session);有些僵尸進(jìn)程有阻塞其他業(yè)務(wù)的正常運(yùn)行,定期殺掉僵尸進(jìn)程

46、.13. 查看行鏈接/遷移Sqlselect table_name,num_rows,chain_cnt From dba_tables Where owner=CTAIS2 Andchain_cnt0;注:含有l(wèi)ong raw列的表有行鏈接是正常的,找到遷移行保存到chained_rows表中,如沒有該表執(zhí)行./rdbms/admin/Sqlanalyze table tablename list chained rows;可通過表chained_rows 中table_name,head_rowid 看出哪些行是遷移行如:Sqlcreate table aa as selec

47、ta.* from sb_zsxx a,chained_rows b where = =SB_ZSXX;sqldelete from sb_zsxx where rowid in (selecthead_rowid from chained_rows where table_name = SB_ZSXX);sqlinsertinto sb_zsxx select * from chained_row where table_name = SB_ZSXX;.14. 定期做統(tǒng)計(jì)分析對(duì)于采用Oracle Cost-Based-Optimizer 的系統(tǒng),需要定期對(duì)數(shù)據(jù)對(duì)象的統(tǒng)計(jì) 信息進(jìn)

48、行采集更新,使優(yōu)化器可以根據(jù)準(zhǔn)備的信息作出正確的explain plan 。在以下情況更需要進(jìn)行統(tǒng)計(jì)信息的更新:應(yīng)用發(fā)生變化;大規(guī)模數(shù)據(jù)遷移、歷史數(shù)據(jù)遷出、其他數(shù)據(jù)的導(dǎo)入等;數(shù)據(jù)量發(fā)生變化。查看表或索引的統(tǒng)計(jì)信息是否需更新,如:SqlSelect table_name,num_rows,last_analyzed From user_tableswheretable_name =DJ_NSRXXsqlselect count(*) from DJ_NSRXX 如 num_rows 和 count(*) 如果行數(shù)相差很多,則該表需要更新統(tǒng)計(jì)信息,建議一周做一次統(tǒng)計(jì)信息收集,如:Sqlexec C

49、TAIS2,cascade=TRUE,degree = 4);.15. 查看日志緩沖區(qū)SQLselect name,value from v$sysstat where namein (redo entries,redobuffer allocationretries);超過1% ,則需要增大如果 redo buffer allocation retries/redo entries log_buffer 。, 性能調(diào)優(yōu)及方法性能調(diào)優(yōu)主要有主動(dòng)調(diào)優(yōu)和被動(dòng)調(diào)優(yōu), 主動(dòng)調(diào)優(yōu)在前面我們已經(jīng)進(jìn)行了闡述,被動(dòng)調(diào)優(yōu)主要有以下方法進(jìn)行。確定合理的性能優(yōu)化目標(biāo)測(cè)試并記錄當(dāng)前的性能指

50、標(biāo)確定當(dāng)前存在的Oracle性能瓶頸(Oracle 中何處存在等待,哪個(gè)SQL語 句與此有關(guān))確定當(dāng)前的操作系統(tǒng)瓶頸優(yōu)化相關(guān)的組件(應(yīng)用、數(shù)據(jù)庫、I/O、連接OS及其它)跟蹤并實(shí)施變化管理制度測(cè)試并記錄目前的性能指標(biāo)重復(fù)第3到第7步直至達(dá)到既定的優(yōu)化目標(biāo)不要對(duì)并非性能瓶頸的部分進(jìn)行優(yōu)化,否則可能引起額外的問題。正如任何聰明 的人會(huì)告訴你的:“如果還未壞,千萬不要修”。更重要的是,一旦既定的優(yōu)化目 標(biāo)已經(jīng)達(dá)到,就務(wù)必停止所有的優(yōu)化。獲取Oracle的性能指標(biāo)(測(cè)試前及測(cè)試后)必須在峰值處理時(shí)測(cè)試并獲取系統(tǒng) 在優(yōu)化前和優(yōu)化后的性能指標(biāo)。數(shù)據(jù)采集不應(yīng)在數(shù)據(jù)庫instance 剛剛起動(dòng)后進(jìn) 行。同時(shí),

51、測(cè)試數(shù) 據(jù)應(yīng)在峰 值期間每 過15分鐘進(jìn)行一 次。初 始化參數(shù) TIMED_STATISTICSS該被設(shè)為 TRUE 通過運(yùn)行以下腳本開始快照:$ORACLE_HOME/rdbms/admin/.通過運(yùn)行以下腳本結(jié)束快照:$ORACLE_HOME/rdbms/admin/.完成 操作后,會(huì)在當(dāng)前目錄中生成名為“”的文件,包含系統(tǒng)的性能數(shù)據(jù)。該 報(bào)告包括每15分鐘捕獲的所有與Oracle例程相關(guān)的參數(shù)。.1. 尋找問題根源如上所述,通過查看v$system_event事件開始系統(tǒng)事件的問題診斷。下一步是 查看v$session_event ,找出引起或經(jīng)歷等待事件的進(jìn)程。最后一步是

52、通過 v$session_wait獲得事件的細(xì)節(jié)。同時(shí),應(yīng)該進(jìn)一步通過OS進(jìn)行深入分析,了解核心的CPU內(nèi)存和IO狀態(tài)參數(shù)。最后,結(jié)合兩種不同的診斷的結(jié)論,找 出系統(tǒng)瓶頸所在。.2. 應(yīng)用優(yōu)化從統(tǒng)計(jì)(和現(xiàn)實(shí))的角度看,80%的Oracle系統(tǒng)性能問題可以通過 SQL代碼優(yōu) 化來解決。任何應(yīng)用優(yōu)化的過程,不外乎是索引優(yōu)化、全表掃描、并行機(jī)制改進(jìn) 和選擇正確數(shù)據(jù)組合方法的過程。這正是要達(dá)到最佳應(yīng)用性能所必須考慮的因 素。沒有SQL的優(yōu)化,就無法實(shí)現(xiàn)高性能的應(yīng)用。良好的SQL語句可以減少CPU資源的消耗,提高響應(yīng)速度。同時(shí),優(yōu)化后的SQL語句還可以提高應(yīng)用的可擴(kuò)展性,這是除增加大量?jī)?nèi)存

53、外,任何其它硬件手段也無法實(shí)現(xiàn)的。.2.1. I-O 優(yōu)化I-O優(yōu)化是系統(tǒng)優(yōu)化中的一個(gè)關(guān)鍵步驟,還涉及到其它任務(wù),將文件在不同驅(qū)動(dòng)器/卷中進(jìn)行分布,采用優(yōu)化分區(qū)技術(shù)、確定I-O子系統(tǒng)瓶頸、確定控制器瓶頸 并根據(jù)應(yīng)用的類型選擇最佳的RAID級(jí)。I-O優(yōu)化應(yīng)該在全面了解Oracle及Oracle RDBMS結(jié)構(gòu)之后進(jìn)行。應(yīng)該在進(jìn)行I-O 優(yōu)化前后實(shí)施I-O 數(shù)據(jù)監(jiān)控, 如平均服務(wù)時(shí)間,IOPS,平均磁盤隊(duì)列長(zhǎng)度等。.2.2. O-S 監(jiān)控?cái)?shù)據(jù)庫忙時(shí),應(yīng)該對(duì)操作系統(tǒng)進(jìn)行監(jiān)控,因?yàn)椴僮飨到y(tǒng)的性能指標(biāo)會(huì)揭示數(shù)據(jù)庫 活動(dòng)的性質(zhì)及其對(duì)系統(tǒng)的影響。例如,為了了解CPU的利用率,可以通過system activity reporter (sar - u interv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論