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