版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 軟件項(xiàng)目維護(hù)方案1. 項(xiàng)目背景及目標(biāo)1.1. 項(xiàng)目背景在國(guó)家政策的指導(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ù)庫(kù)系統(tǒng)的升級(jí)及性能優(yōu)化,以確保應(yīng)用系統(tǒng)的正常運(yùn)行,為單位員工提供更好的信息服務(wù)。1.2. 項(xiàng)目目標(biāo) 對(duì)各系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行補(bǔ)丁升級(jí)服務(wù),安裝補(bǔ)丁前制定詳細(xì)的升級(jí)計(jì)劃和應(yīng)急回退計(jì)
2、劃。 完成各系統(tǒng)數(shù)據(jù)庫(kù)的性能調(diào)優(yōu)工作。 各業(yè)務(wù)持續(xù)性得到有效的保證。2. 需求分析XXXXXXX項(xiàng)目,我公司有多年的行業(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ì)ORACLE數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài),日志文件,備份情況,數(shù)據(jù)庫(kù)的空間使用情況,系統(tǒng)資源的使用情況進(jìn)行查看,發(fā)現(xiàn)并解決問題。(2). 每周對(duì)數(shù)據(jù)庫(kù)對(duì)象的空間擴(kuò)展情況,數(shù)據(jù)的增長(zhǎng)情況進(jìn)行監(jiān)控,對(duì)數(shù)據(jù)庫(kù)做健康查看,對(duì)數(shù)據(jù)庫(kù)對(duì)象的狀態(tài)做查看。(3). 查看表空間碎片,提出下一步空間管理計(jì)劃。對(duì)ORACLE數(shù)據(jù)庫(kù)狀態(tài)進(jìn)行一次全面查看。(4)由于這些數(shù)據(jù)庫(kù)
3、系統(tǒng)承載著XXXX非常重要的業(yè)務(wù)系統(tǒng)數(shù)據(jù),所以在日常維護(hù)中需要非常仔細(xì),每周、每月、每季都需要有相應(yīng)的巡檢記錄,需要詳細(xì)記載以下一些內(nèi)容:n 監(jiān)控?cái)?shù)據(jù)庫(kù)對(duì)象的空間擴(kuò)展情況n 監(jiān)控?cái)?shù)據(jù)量的增長(zhǎng)情況n 系統(tǒng)健康查看,查看以下內(nèi)容:n 數(shù)據(jù)庫(kù)對(duì)象有效性查看n 查看是否有危害到安全策略的問題。n 查看 alert、Sqlnet 等日志并歸檔報(bào)錯(cuò)日志n 分析表和索引n 查看對(duì)數(shù)據(jù)庫(kù)會(huì)產(chǎn)生危害的增長(zhǎng)速度n 查看表空間碎片n 數(shù)據(jù)庫(kù)性能調(diào)整n 預(yù)測(cè)數(shù)據(jù)庫(kù)將來的性能n 調(diào)整和維護(hù)工作n 后續(xù)空間3. 整體運(yùn)行維護(hù)服務(wù)方案3.1. Lifekeeper維護(hù)3.1.1. 驗(yàn)證 LifeKeeper 的安裝查看已經(jīng)
4、安裝的LifeKeeper軟件包,可以使用命令: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軟件的
5、其它管理任務(wù)a)停止 LifeKeeper 服務(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/L
6、ifeKeeper/bin/lkGUIapp則出現(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,則使用其提供菜單
7、命令執(zhí)行相應(yīng)操作;在執(zhí)行命令行啟動(dòng)/停止資源前,一定先使用lcdstatus命令確認(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)的資
8、源在本機(jī)上停止服務(wù)。如果該資源在命令使用前已經(jīng)在另一臺(tái)機(jī)器上處于運(yùn)行狀態(tài),則本命令執(zhí)行不產(chǎn)生任何結(jié)果注意:n 在執(zhí)行命令行前后,一定先使用lcdstatus命令確認(rèn)資源的當(dāng)前狀態(tài)。n 命令停止/啟動(dòng)本地的資源n 命令中的是區(qū)分大小寫的n 一定要等待命令完成,注意命令的輸出。n 詳細(xì)用法見在線幫助手冊(cè)。3.2. SQL SERVER維護(hù)計(jì)算機(jī)系統(tǒng)各種軟、硬件故障、用戶誤操作以及惡意破壞是不可避免的,這些影響到數(shù)據(jù)的正確性甚至造成數(shù)據(jù)損失、服務(wù)器崩潰等致命后果。數(shù)據(jù)庫(kù)的備份對(duì)保證系統(tǒng)的可靠性具有重要的作用。下面會(huì)根據(jù)執(zhí)行強(qiáng)度對(duì)維護(hù)任務(wù)及其相應(yīng)的程序進(jìn)行分類描述,執(zhí)行強(qiáng)度用不同的時(shí)間間隔定義,包括每
9、天、每周、每月和每季度,能夠建立起良好的維護(hù)實(shí)務(wù),確保SQL Server數(shù)據(jù)庫(kù)性能和安全。3.2.1. 每天的例行維護(hù)任務(wù)需要數(shù)據(jù)庫(kù)管理員密切關(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ù)庫(kù)上執(zhí)行事務(wù)日志備份任務(wù)。7、核實(shí)SQL Serv
10、er作業(yè)沒有失敗。8、查看所有的數(shù)據(jù)庫(kù)文件和事務(wù)日志具有合適的磁盤空間大小。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ù)庫(kù)完整性。4、如果需要,執(zhí)行收縮數(shù)據(jù)庫(kù)任務(wù)。5、通過重新組織索引任務(wù)壓縮聚集和非聚集表和視圖。6、通過重新生成索引任務(wù)在數(shù)據(jù)頁(yè)和索引頁(yè)重新組織數(shù)據(jù)。7、更新所有用戶表和系統(tǒng)表的統(tǒng)計(jì)信息8、清除備份、還原、SQL Server代理作業(yè)和維護(hù)計(jì)劃等操作的歷史數(shù)據(jù)。9、如果需要,手動(dòng)增長(zhǎng)
11、數(shù)據(jù)庫(kù)或事務(wù)日志文件10、清除執(zhí)行維護(hù)計(jì)劃殘留下來的文件。3.2.3. 每月或每季度的維護(hù)任務(wù)有一些維護(hù)計(jì)劃不需要執(zhí)行得過于頻繁,可以每個(gè)月或每個(gè)季度執(zhí)行一次。但是請(qǐng)不要以為這些任務(wù)不需要天天執(zhí)行就無足輕重,這些任務(wù)可以確保數(shù)據(jù)庫(kù)環(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ù)庫(kù)鏡像或日志傳送,則監(jiān)測(cè)故障轉(zhuǎn)移。6、驗(yàn)證備份和還原進(jìn)程是否遵循已定義的服務(wù)等級(jí)協(xié)議。7、更新SQL Server構(gòu)建指南。8、更新
12、SQL Server災(zāi)難恢復(fù)文檔。9、更新維護(hù)計(jì)劃列表10、修改管理員口令。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 weblogic.kernel.Defal
13、t 配置下面幾項(xiàng):隊(duì)列長(zhǎng)度:此值表示執(zhí)行隊(duì)列中可容納的最大請(qǐng)求數(shù),默認(rèn)值是65536,最后不要手動(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)閃eblogic一旦增加后不會(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è)行為
14、Weblogic Server能夠自動(dòng)監(jiān)測(cè)到當(dāng)一個(gè)執(zhí)行線程變?yōu)椤白枞薄W優(yōu)椤白枞睜顟B(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 Manager Capabilities文檔。通過啟動(dòng)管理控制臺(tái),在域(如:mydomain) 服務(wù)器 server實(shí)例(如:myserver)配置 調(diào)整下可配置下面幾項(xiàng):阻塞線程最長(zhǎng)時(shí)間:在此服務(wù)器將線程
15、診斷為阻塞線程之前,線程必須連續(xù)工作的時(shí)間長(zhǎng)度(秒)。默認(rèn)情況下,WebLogic 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庫(kù)WebLogic Server有兩套套接字復(fù)用器:Java版和本地庫(kù)。采用小型本地庫(kù)更有效,盡量激活Enable Native IO(默認(rèn)),此時(shí)UNIX默認(rèn)使用CPUs+1個(gè)線程,Window下
16、為雙倍CPU。如果系統(tǒng)不能加載本地庫(kù),將會(huì)拋出java.lang.UnsatisfiedLinkException,此時(shí)只能使用Java套接字復(fù)用器,可以調(diào)整socket readers 百分比,默認(rèn)為33%。該參數(shù)可以在Console Server Tuning Configuration配置欄里設(shè)置,配置完,重新啟動(dòng)WebLogic Server即可。.2. 調(diào)整默認(rèn)執(zhí)行線程數(shù)名稱開發(fā)模式產(chǎn)品模式推薦個(gè)數(shù)Execute Queues 默認(rèn)的執(zhí)行線程為15默認(rèn)的執(zhí)行線程為25200在管理控制臺(tái)修改默認(rèn)執(zhí)行隊(duì)列線程數(shù)的步驟如下:n 如果管理服務(wù)器沒有運(yùn)行,先啟動(dòng)。n 訪問管理控制
17、臺(tái)。n 展開左邊面板的Servers 節(jié)點(diǎn),顯示Server列表。n 右擊Server,在彈出菜單中選擇View Execute Queues ,就會(huì)在右邊面板顯示有執(zhí)行隊(duì)列的表用來修改。n 注意:你只能修改默認(rèn)的執(zhí)行隊(duì)列或者用戶定義的執(zhí)行隊(duì)列。n 在Name列,直接點(diǎn)擊默認(rèn)執(zhí)行隊(duì)列名稱,顯示配置標(biāo)簽用來修改執(zhí)行隊(duì)列數(shù)。n 填下適當(dāng)?shù)木€程數(shù)。n 點(diǎn)擊Apply,保存剛才的修改。n 重啟Server,使新的執(zhí)行隊(duì)列設(shè)置生效。. JDBC調(diào)優(yōu).1. 驅(qū)動(dòng)程序類型選擇Oracle提供thin驅(qū)動(dòng)和oci驅(qū)動(dòng),從性能上來講,oci驅(qū)動(dòng)強(qiáng)于thin驅(qū)動(dòng),特別是大數(shù)據(jù)量的操作。
18、但在簡(jiǎn)單的數(shù)據(jù)庫(kù)操作中,性能相差不大,隨著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ù)庫(kù)進(jìn)程數(shù),游標(biāo)的大小。通常我們?cè)谝粋€(gè)線程中使用一個(gè)連接,所以連接數(shù)并不是越多越好,為避免兩邊的資源消耗,建議設(shè)置連接池的最大值等于或者略小于線程數(shù)。同時(shí)為了減少新建連接的開銷,將最小值和最大值設(shè)為一致;值等于WebLogic Server的執(zhí)行線程數(shù)。.3. 其他配置盡管
19、JDBC Connection Pool提供了很多高級(jí)參數(shù),在開發(fā)模式下比較有用,但大部分在生產(chǎn)環(huán)境下不需調(diào)整。這里建議最好不要設(shè)置測(cè)試表, 同時(shí)Test Reserved Connections和Test Released Connections也無需勾上。當(dāng)然如果你的數(shù)據(jù)庫(kù)不穩(wěn)定,時(shí)斷時(shí)續(xù),你就可能需要上述的參數(shù)打開. WEB調(diào)優(yōu).1. 調(diào)整WEB應(yīng)用描述符WEB應(yīng)用除代碼之外的調(diào)優(yōu)比較簡(jiǎn)單,僅僅是對(duì)一些WEB應(yīng)用描述符的調(diào)整。首先關(guān)閉Session Monitoring Enabled,僅僅在Cluster環(huán)境下設(shè)置Session復(fù)制(優(yōu)先使用內(nèi)存復(fù)制),在保
20、證應(yīng)用正常運(yùn)行的情況下,設(shè)置較短的Session超時(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ù)編譯,有兩種方法:激活precompile選項(xiàng);使用weblogic.appc事先編譯,建議采用后者。. 其他調(diào)優(yōu)設(shè)置.1. WebLogic文件描述符大小調(diào)整首先設(shè)置WEB主機(jī)系統(tǒng)的ulimit參數(shù)為unlimited ,然后設(shè)置WebLogic中文件描述符
21、的大小。在WL_HOME/bea/weblogic/common/bin中打開文件commEnv.sh,修改設(shè)置文件描述符大小的指令,將默認(rèn)的:ulimit n 1024修改為:ulimit n 81923.3.2. 維護(hù)管理. 啟動(dòng)weblogic servern 啟動(dòng)管理服務(wù)器:執(zhí)行startAdmserver.shn 啟動(dòng)被管理服務(wù)器:執(zhí)行startManagedWebLogic.sh servername adminurl. 停止weblogic servern 停止被管理服務(wù)器:執(zhí)行stopWebLogic.sh servernamen 啟動(dòng)被管理服務(wù)器:
22、執(zhí)行stopWebLogic.sh. 登錄和退出管理控制臺(tái)n 管理服務(wù)器啟動(dòng)后可以在瀏覽器中登錄管理控制臺(tái)n 輸入U(xiǎn)RL:http:/hostname:port/console或https:/hostname:port/consolel hostname:管理服務(wù)器的ip地址或DNS名l port:管理服務(wù)器監(jiān)聽的端口l 如果管理服務(wù)器啟動(dòng)時(shí)使用SSL,則使用https訪問管理控制臺(tái)n 在彈出的窗口“Console Login“中輸入用戶名和密碼登錄. 性能監(jiān)控n 查看性能參數(shù)l 登錄控制臺(tái)后點(diǎn)擊Servers-servername-Monitoring-Perfo
23、rmancen 參數(shù)分析n1)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、反之,如果queue length0 ,則空閑線程數(shù)=0 ;n2)Memory Usage Memory Usage = totalMemory() freeMemory()內(nèi)存使用曲線反應(yīng)了J
24、VM Heap內(nèi)存使用的變化情況,可以結(jié)合其他三個(gè)值的變化情況來判斷server工作情況;比較理想的狀態(tài)是適當(dāng)頻度的各種鋸齒變化,由于JVM GC多采用“stop the world”機(jī)制,也就是垃圾回收時(shí)其他處理將暫停,過度頻繁的GC將明顯降低server工作效率和性能表現(xiàn)。3.4. Oracle維護(hù)Oracle Database,又名Oracle RDBMS,或簡(jiǎn)稱Oracle。是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它是在數(shù)據(jù)庫(kù)領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品。可以說Oracle數(shù)據(jù)庫(kù)系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是
25、一種高效率、可靠性好的 適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案。3.4.1. 數(shù)據(jù)庫(kù)性能優(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ù)庫(kù)和應(yīng)用系統(tǒng)的復(fù)雜要求。被動(dòng)式性能管理涉及到現(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)行性能
26、調(diào)優(yōu),提高 Oracle性能管理的效率。所以 ORACLE 數(shù)據(jù)庫(kù)性能惡化表現(xiàn)基本上都是用戶響應(yīng)時(shí)間比較長(zhǎng),須要用戶長(zhǎng)時(shí)間的等待。獲得滿意的用戶響應(yīng)時(shí)間有兩個(gè)途徑:一是減少系統(tǒng)服務(wù)時(shí)間,即提高數(shù)據(jù)庫(kù)的吞吐量;二是減少用戶等待時(shí)間,即減少用戶訪問同一數(shù)據(jù)庫(kù)資源的沖突率。對(duì)于以上的兩個(gè)問題,通常我們采用以下幾個(gè)方面來進(jìn)行改善:n 調(diào)整服務(wù)器內(nèi)存分配。例如,可以根據(jù)數(shù)據(jù)庫(kù)運(yùn)行狀況調(diào)整數(shù)據(jù)庫(kù)系統(tǒng)全局區(qū)(SGA 區(qū))的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大?。贿€可以調(diào)整程序全局區(qū)(PGA 區(qū))的大小。n 調(diào)整硬盤 I/O 問題,達(dá)到 I/O 負(fù)載均衡。n 調(diào)整運(yùn)用程序結(jié)構(gòu)設(shè)計(jì)。n 優(yōu)化調(diào)整操作系統(tǒng)參數(shù)和使用
27、資源管理器。n SQL 優(yōu)化、診斷 latch 競(jìng)爭(zhēng)、Rollback(undo) Segment 優(yōu)化、提升 block的效率等等。. 查看Oracle數(shù)據(jù)庫(kù)性能查看 Oracle 數(shù)據(jù)庫(kù)性能情況,包含:查看數(shù)據(jù)庫(kù)的等待事件,查看死鎖及處理,查看 cpu、I/O、內(nèi)存性能,查看是否有僵死進(jìn)程,查看行鏈接/遷移,定期做統(tǒng)計(jì)分析,查看緩沖區(qū)命中率,查看共享池命中率,查看排序區(qū),查看日志ORACLE 產(chǎn)品日常運(yùn)行維護(hù)年度服務(wù)項(xiàng)目緩沖區(qū),總共十個(gè)部分。.1. 查看數(shù)據(jù)庫(kù)的等待事件set pages 80set lines 120col event for a40selec
28、t sid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event notlike SQL% and event not like rdbms%;如果數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間持續(xù)出現(xiàn)大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read 等等待事件時(shí),需要對(duì)其進(jìn)行分析,可能存在問題的語句。.2. 查看消耗CPU最高的進(jìn)程SET LINE 240SET VERIFY OFFCOLUMN S
29、ID 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 P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL#S_#,P.TERMINAL,P.PROGRAM PROGRAM,P
30、.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1,80) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR ANDS.SQL_ADDRESS = A.ADDRESS (+) AND P.SPID LIKE %&1%;.3. 查看碎片程度高的表SQL SELECT segment_name table_name,COUNT(*) extents FROM dba_segments WHERE ownerNOT IN (SYS, SYSTEM) GROU
31、P BY segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*)FROM dba_segments GROUP BY segment_name);.4. 查看表空間的 I/O比例SQLSELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME FILE,F.PHYRDS PYR, F.PHYBLKRDPBR,F.PHYWRTS PYW, F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DF WHEREF.FILE# = DF.FILE_ID ORDER BY
32、 DF.TABLESPACE_NAME;.5. 查看文件系統(tǒng)的 I/O比例SQLSELECTSUBSTR(A.FILE#,1,2)#,SUBSTR(A.NAME,1,30)NAME,A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# =B.FILE#;.6. Disk Read最高的SQL語句的獲取SQLSELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS)WHERE ROWNU
33、M=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 * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE SQL% ORDER BYTOTAL_WAITS DESC
34、) 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_TEXT FROM V$SESSION_LONGOPS , V$SQL WHERETIME_REMAINING 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_
35、VALUE = HASH_VALUE;.10. 查看死鎖及處理查詢目前鎖對(duì)象信息:col sid for col 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 a10select sid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,o
36、bject_name,object_type,o.object_idfrom dba_objects o,v$locked_object l,v$session swhere o.object_id=l.object_id and s.sid=l.session_id;oracle 級(jí) kill 掉該 session:alter system kill session &sid,&serial#;操作系統(tǒng)級(jí) kill 掉 session:#kill -9 pid.11. 查看數(shù)據(jù)庫(kù)cpu、I/O、內(nèi)存性能記錄數(shù)據(jù)庫(kù)的 cpu 使用、IO、內(nèi)存等使用情況,使用 vmstat,ios
37、tat,sar,top等命令進(jìn)行信息收集并查看這些信息,判斷資源使用情況。n CPU 使用情況:rootsale8 # toptop - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie Cpu(s): 1.2% us, 0.1% sy, 0.0% ni, 98.8% id,0.0% wa, 0.0% hi, 0.0% si Mem: k total, k used, k free, 60
38、796k buffersSwap: k total, k used, k free, k cached PID USER30495 oracle32501 oracle32503 oracle注意上面的加粗字體部分,此部分內(nèi)容表示系統(tǒng)剩余的 cpu,當(dāng)其平均值下降至 10%以下的時(shí)視為 CPU 使用率異常,需記錄下該數(shù)值,并將狀態(tài)記為異常n 內(nèi)存使用情況:# free -m TotalusedfreesharedbufferscachedMem:-/+ buffers/cache: 326 1700Swap: 5992 92 5900如上所示,total表示系統(tǒng)總內(nèi)存,used表示系統(tǒng)使用的內(nèi)
39、存,free表示系統(tǒng)剩余內(nèi)存,當(dāng)剩余內(nèi)存低于總內(nèi)存的 10%時(shí)視為異常。n 系統(tǒng)負(fù)載情況:#uptime 12:08:37 up 162 days, 23:33, 15 users,load average: 0.01, 0.15, 0.10如上所示,load average部分表示系統(tǒng)負(fù)載,后面的 3 個(gè)數(shù)值如果有高于 2.5 的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了,并將此值記錄到巡檢表,視為異常。.12. 查看是否有僵死進(jìn)程select spid from v$process where addr not in (select paddr from v$session);有些僵尸進(jìn)程
40、有阻塞其他業(yè)務(wù)的正常運(yùn)行,定期殺掉僵尸進(jìn)程。.13. 查看行鏈接/遷移Sqlselect table_name,num_rows,chain_cnt From dba_tables Where owner=CTAIS2 Andchain_cnt0;注:含有 long raw 列的表有行鏈接是正常的 ,找到遷移行保存到chained_rows 表中 , 如沒有該表執(zhí)行 ./rdbms/admin/utlchain.sqlSqlanalyze table tablename list chained rows;可通過表 chained_rows 中table_name,head_ro
41、wid看出哪些行是遷移行如:Sqlcreate table aa as selecta.* from sb_zsxx a,chained_rows b where a.rowid=b.head_rowid andb.table_name =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 = S
42、B_ZSXX;.14. 定期做統(tǒng)計(jì)分析對(duì)于采用 Oracle Cost-Based-Optimizer 的系統(tǒng),需要定期對(duì)數(shù)據(jù)對(duì)象的統(tǒng)計(jì)信息進(jìn)行采集更新,使優(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_tables wheretable_name =DJ_NSRXXsqlselect count(*) fro
43、m DJ_NSRXX 如 num_rows 和 count(*)如果行數(shù)相差很多,則該表需要更新統(tǒng)計(jì)信息,建議一周做一次統(tǒng)計(jì)信息收集,如:Sqlexec sys.dbms_stats.gather_schema_stats(ownname=CTAIS2,cascade=TRUE,degree = 4);.15. 查看日志緩沖區(qū)SQL select name,value from v$sysstat where name in (redo entries,redo buffer allocationretries);如果 redo buffer allocation retries
44、/redo entries 超過 1% ,則需要增大 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)行。n 確定合理的性能優(yōu)化目標(biāo)n 測(cè)試并記錄當(dāng)前的性能指標(biāo)n 確定當(dāng)前存在的 Oracle 性能瓶頸 (Oracle 中何處存在等待,哪個(gè) SQL語句與此有關(guān))n 確定當(dāng)前的操作系統(tǒng)瓶頸n 優(yōu)化相關(guān)的組件 (應(yīng)用、數(shù)據(jù)庫(kù)、I/O、連接 OS 及其它)n 跟蹤并實(shí)施變化管理制度n 測(cè)試并記錄目前的性能指標(biāo)n 重復(fù)第 3 到第 7 步直至達(dá)到既定的優(yōu)化目標(biāo)不要對(duì)并非性能瓶頸的部分進(jìn)行優(yōu)化,否則可能引起
45、額外的問題。正如任何聰明的人會(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ù)庫(kù) instance 剛剛起動(dòng)后進(jìn)行。同時(shí),測(cè)試數(shù)據(jù)應(yīng)在峰值期間每過 15 分鐘進(jìn)行一次。初始化參數(shù)TIMED_STATISTICS 應(yīng)該被設(shè)為 TRUE。通過運(yùn)行以下腳本開始快照:$ORACLE_HOME/rdbms/admin/utlbstat.sql.通過運(yùn)行以下腳本結(jié)束快照:$ORACLE_HOME/rdbms/admin/utles
46、tat.sql.完成 utlestat.sql 操作后,會(huì)在當(dāng)前目錄中生成名為“report.txt”的文件,包含系統(tǒng)的性能數(shù)據(jù)。該報(bào)告包括每 15 分鐘捕獲的所有與 Oracle 例程相關(guān)的參數(shù)。.1. 尋找問題根源如上所述,通過查看 v$system_event 事件開始系統(tǒng)事件的問題診斷。下一步是查看 v$session_event,找出引起或經(jīng)歷等待事件的進(jìn)程。最后一步是通過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
47、. 應(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)存外,任何其它硬件手段也無法實(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ū)
48、技術(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ù)庫(kù)忙時(shí),應(yīng)該對(duì)操作系統(tǒng)進(jìn)行監(jiān)控,因?yàn)椴僮飨到y(tǒng)的性能指標(biāo)會(huì)揭示數(shù)據(jù)庫(kù)活動(dòng)的性質(zhì)及其對(duì)系統(tǒng)的影響。例如,為了了解 CPU 的利用率,可以通過system activity reporter (sar u interval frequency) 、 mpstat (SunSolaris), to
49、p (多數(shù) UNIX)、 osview (SGI Irix) 及 vmstat 等命令。Sar 和vmstat 也可被用于確定包括內(nèi)存使用率、I-O 參數(shù)、隊(duì)列等待、讀取/交換區(qū)活動(dòng)等信息。在 Solaris 上,mpstat utility 也可用于獲取前面提到的 CPU 利用率數(shù)據(jù)。Solaris 上的 Adrian 性能管理工具也很有用。可以利用其中的一到多個(gè)工具來確定系統(tǒng)的性能狀況,找出可能存在的瓶頸。Oracle 數(shù)據(jù)庫(kù)性能的管理需要遵循系統(tǒng)的方法論,以確保所有核心問題得以解決。多數(shù)問題可以事先得以管理。了解與 O-S 相關(guān)的問題是成功的關(guān)鍵。勿需置疑,系統(tǒng)硬件配置上的良好平衡也是至
50、關(guān)重要的。必須承認(rèn), 80% 的系統(tǒng)性能問題可以通過書寫更好的 SQL 語句來解決。來文試圖探究其余 20%中可能覆蓋的內(nèi)容。同時(shí),必須遵守嚴(yán)格的規(guī)定,在調(diào)優(yōu)目標(biāo)達(dá)到后終止所有努力。了解自己想到何處是重要的,更重要的是,要知道自己何時(shí)到達(dá)了目的地。.2.3. 例程調(diào)優(yōu)n 需要配置的主要初始化參數(shù)以下是一些已知與例程優(yōu)化關(guān)系最密切的一些核心 Oracle 初始化參數(shù)。它們都會(huì)影響 Oracle 及 SGA 區(qū)的活動(dòng)。任何對(duì)這些參數(shù)的改動(dòng),在實(shí)施到生產(chǎn)環(huán)境之前,都必須進(jìn)行測(cè)試。一旦改變了生產(chǎn)環(huán)境的參數(shù),就必須對(duì)相關(guān)的 Oracle動(dòng)態(tài)性能指標(biāo)和操作系統(tǒng)的性能進(jìn)行監(jiān)測(cè),尋找可能由此產(chǎn)生
51、的異常現(xiàn)象。1) DB_BLOCK_SIZE該參數(shù)在數(shù)據(jù)庫(kù)建立前設(shè)定,決定了數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)塊的大小。只有重新建立數(shù)據(jù)庫(kù),才有可能改變?cè)搮?shù)。db_block_size 的配置應(yīng)遵循以下公式:DB_BLOCK_SIZE = FILESYSTEM BLOCKSIZE = O-S PAGESIZE 這可以確保 Oracle獲得最佳 I/O 性能,同時(shí)不會(huì)由于冗余或不必要的 I/O,給 I/O 子系統(tǒng)帶來壓力。2) DB_BLOCK_BUFFERS該參數(shù)決定了 SGA 區(qū)數(shù)據(jù)庫(kù)緩沖區(qū)中的塊數(shù)量。由于這是 Oracle 讀取和寫入的區(qū)域,它的不正確配置會(huì)引起嚴(yán)重的 I/O 性能問題。盡管緩沖區(qū)的大小與
52、應(yīng)用性質(zhì)、數(shù)據(jù)庫(kù)大小、同步用戶數(shù)等無關(guān),它的確是 SGA 區(qū)中最大的組件。經(jīng)常可以看到緩沖區(qū)占用 75-80%SGA 區(qū)內(nèi)存的情況。另外,這一參數(shù)設(shè)置過大,也會(huì)引起整個(gè)系統(tǒng)的內(nèi)存不足,引起操作系統(tǒng)過多的讀寫操作。該參數(shù)及 SHARED_POOL_SIZE 通常是兩個(gè)最重要的 SGA 優(yōu)化目標(biāo)。只有當(dāng)數(shù)據(jù)庫(kù)緩沖率長(zhǎng)時(shí)間低于 70%時(shí),才需要增加其大小說。即使在這種情況下,也需要進(jìn)一步審查應(yīng)用的性能和整個(gè)系統(tǒng)的吞吐性。若存在延遲性的應(yīng)用設(shè)計(jì)問題,則無論數(shù)據(jù)庫(kù)緩沖區(qū)的大小如何,緩沖和讀寫率都不會(huì)有太大改變?yōu)椤T趯?shí)調(diào)優(yōu)中,也曾發(fā)現(xiàn)由于 SQL 語句的問題,出現(xiàn)緩沖率很高,但仍存在全系統(tǒng)性能問題的情況。
53、3)SHARED_POOL_SIZE該參數(shù)按字節(jié)數(shù)設(shè)定,定義了 SGA 中共享區(qū)的大小。該組件的大小嚴(yán)重依賴于應(yīng)用的類型 (即該應(yīng)用是重用 SQL,還是生成動(dòng)態(tài) SQL,等等)。同時(shí)它也取決于同步用戶的數(shù)量,以及實(shí)例是否被配置成支持多線程服務(wù)器(MTS)。如果該應(yīng)用采用了 MTS 配置,則共享區(qū)應(yīng)該明顯增加,因?yàn)楣鈽?biāo)狀態(tài)和用戶進(jìn)程數(shù)據(jù)等程序全局區(qū)域(PGA)都被置入了共享區(qū)。有關(guān)多數(shù)應(yīng)用的 SHARED_POOL_SIZE 大小設(shè)置,可以從每 10 個(gè)同步用戶 16 MB共享區(qū)開始。這不是一成不變的,因?yàn)閼?yīng)用的性質(zhì)最終會(huì)決定該組件的大小。只有當(dāng)庫(kù)緩沖和字典緩沖使用率一直低于 90%時(shí),才需要關(guān)
54、注這一參數(shù)。但如果應(yīng)用并未采用變量合并和/共離圖標(biāo)時(shí),內(nèi)存的數(shù)量并不會(huì)使緩沖使用率高于 90%。共享區(qū)過大會(huì)導(dǎo)致處理時(shí)間增加,甚至 SQL 語句的掛起。如果應(yīng)用不能有效地重用 SQL,則無論配置多大的庫(kù)緩沖或字典緩沖都無濟(jì)于事,不能改善緩沖使用率。另一個(gè)值得考慮的因素是需要隨時(shí)使用的存儲(chǔ) PL/SQL 代碼數(shù)量。應(yīng)用的核心包可以通過查看 DBA_SOURCE、USER_SOURCE 得以確認(rèn),其大小通過查詢DBA_OBJECT_SIZE 了解。另外,為了確定存儲(chǔ) PL/SQL 是否被置于內(nèi)存,可以查詢動(dòng)態(tài)性能視圖 V$DB_OBJECT_SIZE。內(nèi)時(shí),包 DBMS_SHARED_POOL 中
55、的程序大小可被用于確定應(yīng)用中大包的規(guī)模。4) LOG_BUFFER根據(jù)字節(jié)設(shè)定,該參數(shù)定義了 SGA 緩沖區(qū)中 redo log 的大小。缺X值通常是數(shù)據(jù)庫(kù)塊大小的四倍,這對(duì)于多數(shù)環(huán)境并不是最佳的。對(duì)于中型的 Oracle 環(huán)境,其結(jié)構(gòu)應(yīng)該為 512 Kb 左右。對(duì)該存儲(chǔ)結(jié)構(gòu)而言,更大并不意味著更好。超過 1 MB 就可能有問題。需要監(jiān)控 V$SESSION_WAIT 中 log buffer space 的等待事件,優(yōu)化該內(nèi)存結(jié)構(gòu)。需要提醒的是,在線 redo log 文件的大小設(shè)置不當(dāng),會(huì)引起 redo 請(qǐng)求的等待。5) DB_WRITERS該參數(shù)可以針對(duì)所有文件系統(tǒng)支持,且不可使用 Di
56、rect I-O 的 Oracle 實(shí)施設(shè)定。這并不需要與 raw partitions 一起使用,因?yàn)楫惒?I-O 更加。建議將該參數(shù)設(shè)定為(2 * 獨(dú)立磁盤驅(qū)動(dòng)器數(shù)量/卷)。該參數(shù)只有在 report.txt 中的“average write queue length”持續(xù)高于 1 時(shí),才需要設(shè)定。在 Oracle 8.0 和更高版本中,該參數(shù)已不再被支持,而為其它兩個(gè)名為 DB_WRITER_PROCESSES 和DBWR_IO_SLAVES 的參數(shù)取代。若需要設(shè)置 DB_WRITER_PROCESSES 值高于 8,則DB_WRITER_PROCESSES 可被設(shè)為 1,且 DBWR_IO_SLAVES 可被設(shè)為“n”,其中 n的值必須設(shè)置為 (2 * 獨(dú)立磁盤驅(qū)動(dòng)器數(shù)量/卷).2.4. 競(jìng)爭(zhēng)優(yōu)化多數(shù)與 Oracle 有關(guān)的競(jìng)爭(zhēng)問題可以通過主動(dòng)配置管理相關(guān)的初始化參數(shù)進(jìn)行。不恰當(dāng)?shù)嘏渲?init.ora 中的鎖參數(shù)可能引起競(jìng)爭(zhēng)。為了不打破其中的平衡,所需的參數(shù)可進(jìn)行配置并主動(dòng)得以處理。包括表在內(nèi)的數(shù)據(jù)庫(kù)對(duì)象可能存在兩個(gè)競(jìng)爭(zhēng)點(diǎn)。第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024印刷品印刷合同范本:圖書印刷合作協(xié)議5篇
- 2024年度物流運(yùn)輸?shù)谌截?zé)任擔(dān)保服務(wù)協(xié)議2篇
- 2024年度醫(yī)療設(shè)備維修保養(yǎng)及備用件供應(yīng)合同范本3篇
- 2024年智能化住宅購(gòu)買合同范本(含智能家居設(shè)備安裝及維護(hù))3篇
- 2024年攤鋪機(jī)設(shè)備租賃及現(xiàn)場(chǎng)施工協(xié)調(diào)管理合同3篇
- 2024年地調(diào)院食堂餐飲經(jīng)營(yíng)授權(quán)承包合同3篇
- 2024信托資金房地產(chǎn)信托貸款服務(wù)合同模板3篇
- 2024年度農(nóng)民工勞務(wù)權(quán)益保障與培訓(xùn)合同范本3篇
- 2024外貿(mào)實(shí)習(xí)實(shí)訓(xùn)基地實(shí)習(xí)項(xiàng)目推廣與合作合同3篇
- 2024年大學(xué)生期末個(gè)人工作總結(jié)(32篇)
- 江蘇市政工程計(jì)價(jià)表定額計(jì)算規(guī)則
- 外國(guó)文學(xué)史期末考試題庫(kù)(含答案)
- GB/T 32218-2015真空技術(shù)真空系統(tǒng)漏率測(cè)試方法
- GB/T 22520-2008厚度指示表
- DB32-T 4416-2022《高延性纖維增強(qiáng)水泥基復(fù)合材料加固砌體結(jié)構(gòu)應(yīng)用技術(shù)規(guī)程》
- 新修訂蘇教版小學(xué)語文新課程標(biāo)準(zhǔn)
- aps審核交換證明中英模版
- 田字格模版內(nèi)容
- 股骨髁上骨折診治(ppt)課件
- 高頻焊接操作技術(shù)規(guī)范
- 土壤鹽堿化精華(圖文并茂一目了然鹽堿化的過程)(課堂PPT)
評(píng)論
0/150
提交評(píng)論