圖 1 : EM 體系結(jié)構(gòu) DB 控制臺的端口號可在 $ORACLE_HOME/install/portlist.ini 中找到。以下是一個(gè)文件的示例;對于您來說,端口可能不相同。 Ultra Search HTTP port number = 5620 iSQL*Plus HTTP port number = 5560 Enterprise Manager Agent Port = Enterprise Manager Console HTTP Port (starz10) = 5500
圖 2 :主數(shù)據(jù)庫主頁(上部) 在上圖中已圈出了最重要的一些部分,并用本文中編號的引用對其進(jìn)行了標(biāo)注。首先,請注重標(biāo)為 “General”(1) 的部分;這一部分顯示了有關(guān)數(shù)據(jù)庫的一些最基本細(xì)節(jié),如數(shù)據(jù)庫從 3 月 20 日起已經(jīng)啟動,以及實(shí)例名稱等。 Oracle Home 顯示為一個(gè)超鏈接,當(dāng)單擊該鏈接時(shí),將顯示所有產(chǎn)品以及共享該主目錄的所有其他 Oracle 數(shù)據(jù)庫。 Listener 的超鏈接顯示注冊到監(jiān)聽器(其名稱就顯示在緊靠它的下方)的所有數(shù)據(jù)庫和實(shí)例。最后,顯示主機(jī)名 (starz) 。 在名為 “Host CPU”(2) 的部分中,醒目地顯示了 CPU 的具體信息。 “Active sessions”(3) 部分顯示了活動的會話及其當(dāng)前狀態(tài) (4) 。從上面我們看到, 99% 的時(shí)間被處于等待狀態(tài)的會話所占用。(我們稍后將找出導(dǎo)致這些等待的原因。) “High Availability”(5) 部分顯示了與可用性相關(guān)的信息。例如, “Instance Recovery Time” 的值(實(shí)例的 MTTR Target 的值)確定實(shí)例崩潰恢復(fù)可能需要的時(shí)間。 “Space Usage”(6) 部分很有趣:它顯示與 23 個(gè)段相關(guān)的警告。(同樣,稍后再具體介紹這些警告。) “Diagnostic Summary”(7) 部分提供數(shù)據(jù)庫良好運(yùn)行的概要信息。所發(fā)現(xiàn)的性能問題的數(shù)量表示自動數(shù)據(jù)庫診斷監(jiān)控程序 (ADDM) — 在 10g 中新增的自診斷引擎 — 主動識別出多少問題。 EM 還自動分析您的環(huán)境,以確定是否違反了所建議的最佳實(shí)踐;此分析的結(jié)果顯示在 “Policy Violation” 部分。最后, EM 掃描警報(bào)日志,并顯示任何最新的 ORA 錯(cuò)誤。這種信息非常有價(jià)值 — 在警報(bào)日志中自動掃描 Oracle 錯(cuò)誤使您避免了手動搜索這些錯(cuò)誤的很多麻煩。 在數(shù)據(jù)庫主頁的下部,如圖 3 所示,我們可以更具體地查看其中的一些消息。 “Alerts”(1) 部分顯示了需要您注重的所有相關(guān)警報(bào),每個(gè)警報(bào)都可以方便地進(jìn)行配置。以第一個(gè)警報(bào) (2) 為例,它顯示 Archiver 進(jìn)程因?yàn)槟撤N原因而掛起。當(dāng)然,下一步就是確定其原因。要查明原因,只需單擊它即可。您將從包含該錯(cuò)誤的 alert.log 文件中獲得更多具體信息。在此情形下,故障點(diǎn)是一個(gè)已經(jīng)填滿的閃回恢復(fù)區(qū);我們只需將其清空, Archiver 即可重新開始工作。
圖 3 :主數(shù)據(jù)庫主頁(下部) 另一個(gè)警報(bào) (3) 是有關(guān)等待的:數(shù)據(jù)庫在 69% 的時(shí)間中等待一個(gè)與等待類 “application” 相關(guān)的等待。還記得主頁上部是如何顯示一個(gè)會話處于等待狀態(tài)的嗎?這個(gè)警報(bào)向我們顯示它正在等待什么。單擊超鏈接將會立即為您顯示實(shí)際的等待。 下一個(gè)警報(bào) (4) 顯示一個(gè)審計(jì)項(xiàng)目,即用戶 SYS 從特定的客戶端機(jī)器連接到數(shù)據(jù)庫。同樣,通過單擊超鏈接,您可以顯示有關(guān)該連接的所有具體信息。最后一個(gè)警報(bào) (5) 顯示某些對象無效。單擊超鏈接,您將轉(zhuǎn)到對象被驗(yàn)證無效的畫面。 如您所見,數(shù)據(jù)庫主頁如同顯示需要您注重的所有事項(xiàng)的儀表板。該界面沒有將具體信息堆積在屏幕上,其界面相當(dāng)簡潔,只需單擊即可獲得這些具體信息。您可以手動搜集所有這些信息,但這可能會花費(fèi)很多時(shí)間和精力。 EM 10 g 提供了隨取隨用的解決方案。 一般應(yīng)用 讓我們來看看如何使用新的 EM 來完成一些較常見的任務(wù)。 一項(xiàng)常見的任務(wù)是變更表及其相應(yīng)的索引。在數(shù)據(jù)庫主頁,如圖 3 所示選擇 “Administration” 選項(xiàng)卡,并引用標(biāo)記為 6 的項(xiàng)目。在本頁中,您可以治理數(shù)據(jù)庫來配置回退段、創(chuàng)建表空間和模式對象、設(shè)置資源治理器、使用新的調(diào)度程序(將在以后的文章中介紹)以及更多事項(xiàng)。在此處選擇 “Tables” ,這將調(diào)出如圖 4 所示的畫面。
圖 4 :表治理 注重紅色圓圈中高亮顯示的手電筒標(biāo)志;這是用于調(diào)出數(shù)值列表的按鈕。在圖中所示畫面中,您可以單擊 LOV 標(biāo)志,調(diào)出數(shù)據(jù)庫中的用戶列表,并從列表中選擇一個(gè)用戶。單擊按鈕 “Go” ,出現(xiàn)該用戶的表的一個(gè)列表。您還可以使用 “%” 符號指定通配符 — 例如,通過使用 %TRANS% ,可以找出名稱中帶有單詞 TRANS 的所有表。 讓我們來看一個(gè)示例。選擇表 TRANS ,更改其中的一列。單擊超鏈接,調(diào)出如圖 5 所示的 “ 編輯表 ” 畫面。
圖 5 :表治理 假如您要將列 ACTUAL_RATE 從 NUMBER(10) 改為 NUMBER(11) ,則可以更改數(shù)字(引用 1 ),然后單擊 “Apply” 。要查看完成該任務(wù)的實(shí)際 SQL 語句,可以單擊按鈕 “Show SQL” 。 在同一畫面上還可以獲得另一條重要信息:增長趨勢。您將在以后一篇有關(guān)段治理的文章中了解到,觀察一段時(shí)間內(nèi)的對象增長情況是可能的。該畫面提供了相同的信息,但卻是以圖形方式表示的。要查看該畫面,可單擊選項(xiàng)卡 “Segments” ( 圖 5 引用 2 )。該操作調(diào)出段畫面,如圖 6 所示。
圖 6 :段畫面 注重紅色圓圈中標(biāo)記的項(xiàng)目。該畫面顯示有多少空間分配給段 (2) 、實(shí)際使用了多少 (1) 以及浪費(fèi)了多少 (3) 。在該畫面的下部 (4) ,您可以看到一幅有關(guān)對象所用空間以及分配給對象的空間的圖形。在本示例中,表的使用模式已經(jīng)穩(wěn)定 — 因此是直線。 您可以對表執(zhí)行其他治理操作,方法是使用那些用于該目的的選項(xiàng)卡,如用于治理約束的 “Constraints” 。 使用 EM 進(jìn)行性能調(diào)節(jié) 到目前為止您已經(jīng)了解到,雖然 EM 的外觀已經(jīng)更改,但它提供了至少與以前的 Java 版本同樣多的功能。但是,與后者不同的是, EM 現(xiàn)在還支持更新的 Oracle 數(shù)據(jù)庫功能。例如, EM 現(xiàn)在能夠處理子分區(qū)。 但是,有經(jīng)驗(yàn)的 DBA 希望這種工具能完成更多的工作 — 尤其是在故障診斷或主動性能調(diào)節(jié)方面。讓我們舉個(gè)例子。回憶前文中我們的數(shù)據(jù)庫正在 “Application” 等待類上處于等待狀態(tài),如數(shù)據(jù)庫主頁所示( 圖 3 引用 3 ),而我們需要診斷其原因。在任何調(diào)整過程中需要了解的要害事情之一是有多少種組件(如 CPU 、磁盤和主機(jī)子系統(tǒng))在相互作用,這樣有助于在上下文環(huán)境中綜合觀察所有這些變量。為此,可在數(shù)據(jù)庫主頁中選擇 “Performance” 選項(xiàng)卡。此操作調(diào)出如圖 7 所示的畫面。
圖 7 : “Performance” 選項(xiàng)卡 請注重所有量度已在同一時(shí)間軸上對齊,這樣更輕易觀察它們的相互依靠性。注重尖峰 (3) ,它對應(yīng)于調(diào)度程序任務(wù)。它表明,在該時(shí)刻約有七個(gè)會話正在等待與調(diào)度程序相關(guān)的等待事件。那么,影響因素是什么?注重處于同一位置(綠色區(qū)域)的 CPU 量度 — 它們顯示了曾經(jīng)使用過的最大 CPU 使用率,在圖形中以虛線 (4) 表示。在該點(diǎn)前后,我們沒有看到 CPU 尖峰出現(xiàn),這就提供了一條線索。注重 CPU 運(yùn)行隊(duì)列長度中的尖峰 (1) ,這是調(diào)度程序的直接后果,調(diào)度程序可能產(chǎn)生了過多的內(nèi)存需求,導(dǎo)致增加了分頁活動 (2) 。如您所見,所有現(xiàn)象集中在一起,促進(jìn)了對數(shù)據(jù)庫負(fù)載 “ 概況 ” 的了解。 注重在時(shí)間軸末尾的尖峰 — 增加了運(yùn)行隊(duì)列長度 (5) 和分頁速率 (6)— 它們與物理讀取的另一個(gè)尖峰相關(guān) (7) 。原因是什么? 通過比較圖形 “Sessions:Waiting and Working” 與尖峰發(fā)生的時(shí)間,我們可以看到,大部分會話都在 “Application” 等待類上進(jìn)行等待。但是我們需要確切地查明它在該時(shí)期內(nèi)正在等待什么?單擊該時(shí)間的區(qū)域,調(diào)出活動會話畫面,如圖 8 所示。
圖 8 :活動會話等待 該畫面顯示會話正在等待的等待事件是 enq:TX ?row lock contention 。那么導(dǎo)致此問題的 SQL 語句是什么?很簡單:畫面本身顯示了語句 8rkquk6u9fmd0 的 SQL ID (在紅色圓圈中)。單擊該 SQL ID ,調(diào)出如圖 9 所示的 SQL 畫面。
圖 9 : SQL 具體信息 在該畫面上,您可以看到關(guān)于它的 SQL 語句以及相關(guān)的具體信息,包括執(zhí)行計(jì)劃。它表明,這條 SQL 導(dǎo)致行鎖爭用,因此應(yīng)用程序設(shè)計(jì)可能是問題的根源。
圖 10 : “Performance” 選項(xiàng)卡,示例 2 在圖中,請注重紅色矩形中高亮顯示的量度。您可以看到在 12:20AM 左右有很多與 CPU 相關(guān)的等待,這導(dǎo)致在 CPU 中出現(xiàn)龐大的運(yùn)行隊(duì)列。我們需要診斷這一等待。 首先,單擊顯示 CPU 爭用區(qū)域的圖形(在圖上標(biāo)有 “Click Here” ),以具體查看該特定等待,如圖 11 所示。
圖 11 :活動會話等待 注重在 “Active Sessions Working:CPU Used” 圖形中帶陰影的框 (1) 。您可以使用鼠標(biāo)拖動它來放置焦點(diǎn)。此操作導(dǎo)致以下的餅形圖( 2 和 3 )只在該框所包含的時(shí)段內(nèi)進(jìn)行計(jì)算。在這里我們看到,一個(gè)具有 id 8ggw94h7mvxd7 的特定 SQL 正在非常困難地運(yùn)行 (2) 。我們還看到,具有用戶名 ARUP 和 SID 265 的用戶會話是最主要的運(yùn)行會話 (3) 。單擊該會話,查看其具體信息。此操作調(diào)出 “Session Details” 畫面。單擊選項(xiàng)卡 “Wait Events” ,調(diào)出該會話所經(jīng)歷的等待事件的具體信息,其畫面類似于圖 12 所示。
圖 12 :等待事件的具體信息 在該畫面中,請注重在紅色圓圈中高亮顯示的 118 厘秒的最長等待,它在等待庫高速緩存。當(dāng)您單擊 “Latch:Library Cache” 的超鏈接時(shí),將會看到類似圖 13 所示的畫面。
圖 13 :等待直方圖 該畫面提供了 10 g 數(shù)據(jù)庫之前所沒有提供的一些獨(dú)特信息。在診斷這個(gè)栓鎖爭用問題時(shí),如何知道這 118 厘秒的等待是由幾個(gè)會話中的多個(gè)小等待組成,還是只是由一個(gè)會話中的一個(gè)大等待組成,從而使數(shù)據(jù)出現(xiàn)偏差呢? 在這里,直方圖可以幫助我們。從圖上看,您知道大約 250 次會話擁有 1 毫秒的等待(在圓圈中高亮顯示)。會話在 4 與 8 毫秒之間的某處等待了大約 180 次。該畫面顯示,這些等待的時(shí)間通常很短,因而它們不是栓鎖爭用的主要癥狀。 在數(shù)據(jù)庫主頁上,您可以通過單擊標(biāo)為 “Advisor Central” 的選項(xiàng)卡來訪問 ADDM 、 SQL access Advisor 以及其他顧問程序。 ADDM 在收集量度時(shí)自動運(yùn)行,并且結(jié)果立即發(fā)布在 Advisor Central 頁中;當(dāng)單擊該頁時(shí),將顯示由 ADDM 給出的建議。 SQL Tuning Advisor 也檢查這些量度,并在此頁上發(fā)布其建議。(我們將在以后的文章中更加具體地研究 ADDM 和 SQL Tuning Advisor 。) 簡化維護(hù) 數(shù)據(jù)庫主頁上標(biāo)為 “Maintenance” 的選項(xiàng)卡是常用維護(hù)活動 — 如備份和恢復(fù)、數(shù)據(jù)導(dǎo)出或?qū)耄?數(shù)據(jù)泵 )、數(shù)據(jù)庫克隆以及更多活動 — 的啟動控制臺。在該畫面上,您還可以對策略驗(yàn)證警報(bào)所基于的最佳實(shí)踐的基本原理進(jìn)行編輯。 結(jié)論 如先前所述,這篇文章所涉及的只是巨大冰山的一角。在本文中,我的目的不是為了提供全面的概述;而是希望提供對一些跨多個(gè)技能集的特定活動的快速瀏覽。 Oracle 10 g EM 為 DBA 新手提供了足夠的資源,以便很快地了解 Oracle 數(shù)據(jù)庫治理的微妙之處。一本有關(guān)使用 EM 的任務(wù)及技術(shù)的好提綱是 Oracle “ 兩日速成 DBA” 參考手冊 。我強(qiáng)烈建議您閱讀它,尤其是在您剛開始學(xué)習(xí)的時(shí)候。 新聞熱點(diǎn)
疑難解答
圖片精選