Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          [Oracle10G新特性]_13.Enterprise Manager 10g
          ?
          ??? 10g的EM顯然是一個有更佳可用性的組件。而且對于初級DBA來說,即省去了很多繁雜的命令和語法,有提供了一個各項(xiàng)功能的提示說明,所以從一開始接觸到EM的時候,我就肯定得認(rèn)為這是一個非常有用的功能,不過到現(xiàn)在為止一直都沒有大范圍得使用。因?yàn)槿绻獙W(xué)習(xí)稱為一個合格的DBA,還是需要以命令行為主,去深入了解Oracle內(nèi)部的各個特性。但是,相信EM可以給所有的DBA帶來便捷,所以這一部分的內(nèi)容會留到最后進(jìn)行學(xué)習(xí)。
          ?
          ------------------------------------------------------------------------
          ?
          Enterprise Manager 10g
          ?
          最后,討論一種管理和運(yùn)用 Oracle 的一站式工具 — 無論對于初學(xué)者還是專家
          ?
          ??? 您在日常的 DBA 相關(guān)活動中使用什么工具?我最近在一個用戶群會議中提出了這個問題。
          ?
          ??? 答案依 DBA 的工作經(jīng)驗(yàn)而有所不同。大部分高級管理員偏愛簡單的命令行 SQL*Plus(我的個人偏好),而其余的人則偏愛使用一些第三方產(chǎn)品。但是,同一個問題在入門級 DBA 那里卻得到了不同反應(yīng):在這一群體中,Enterprise Manager (EM) 顯然是他們的選擇。
          ?
          ??? 這些偏好不難理解。Oracle Enterprise Manager 自從幾年前推出以來一直不斷進(jìn)行完善,它開始時是字符模式顯示的 SQL*DBA,隨后發(fā)展為基于操作系統(tǒng)的客戶端工具,最后具有了 Java 風(fēng)格。EM 提供的信息非常詳細(xì),足夠完成大多數(shù) DBA 任務(wù),可作為不愿或者無暇了解新語法并且希望使用 GUI 工具來管理常見數(shù)據(jù)庫任務(wù)(如添加用戶、修改數(shù)據(jù)文件和檢查回退段)的用戶的解決方案。診斷程序包為性能調(diào)節(jié)提供了非常需要的 GUI 支持。
          ?
          ??? 但是,阻礙 EM 廣泛使用的一個主要問題是它無法跟上數(shù)據(jù)庫服務(wù)器本身的發(fā)展。例如,EM 的 Oracle9i 數(shù)據(jù)庫版本不支持子分區(qū)(該特性在 Oracle8i 中首次引入)。
          ?
          ??? Oracle 數(shù)據(jù)庫 10g 中的 EM 新版本改變了這種情況。它具有新的體系結(jié)構(gòu)和新的界面,而最重要的是,它具有一個功能非常強(qiáng)大而完善的工具箱,提供從初學(xué)者到高級用戶所需的所有 DBA 技能集。而最好之處在于,它是安裝本身的一部分,無需額外費(fèi)用。如果您正在評估第三方工具,您當(dāng)然可以將 EM 加入評估行列中,從而使競爭更加激烈。即使您是那種“篤信命令行”的 DBA(象我這樣),您也會非常欣賞 EM 在某些情況下能為您所提供的幫助。
          ?
          ??? 在本文中,我將為您介紹新的 EM。由于該工具所涉范圍甚廣,因此不可能在此討論所有的特性;我將在此介紹幾個基本特性,并提供其他材料的線索。我將遵循本系列之精神提供實(shí)際的示例,演示如何使用該工具解決實(shí)際問題。
          ?
          ?
          體系結(jié)構(gòu)
          ?
          ??? 缺省情況下,在安裝 10g 軟件時,即安裝 EM 10g時,在概念上它與以前版本的不同之處在于,它不是客戶端安裝的工具;實(shí)際上它是位于數(shù)據(jù)庫服務(wù)器本身上的 HTTP 服務(wù)器(稱為 DB 控制臺)。(參見圖 1。)您可以使用任何瀏覽器查看 EM 界面。
          ?
          01

          圖 1:EM 體系結(jié)構(gòu)
          ?
          ??? DB 控制臺的端口號可在 $ORACLE_HOME/install/portlist.ini 中找到。以下是一個文件的示例;對于您來說,端口可能不相同。
          ?
          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
          ?
          ??? 從這個文件中我們了解到,數(shù)據(jù)庫 starz10 的代理程序監(jiān)聽端口 1830,而 EM 控制臺監(jiān)聽 5500。我們可以通過輸入以下 URL 來調(diào)用 EM 登錄畫面:
          ?
          http://starz/em/console/logon/logon
          ?
          ??? 該 URL 調(diào)出登錄畫面,從中您可以以 DBA 用戶登錄。在我們的示例中,我們將以 SYS 登錄。
          ?
          ?
          主數(shù)據(jù)庫主頁
          ?
          ??? 登錄后即出現(xiàn)主數(shù)據(jù)庫主頁。主頁的上部提供對重要細(xì)節(jié)的快速瀏覽。(參見圖 2。)
          ?
          02

          圖 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 顯示為一個超鏈接,當(dāng)單擊該鏈接時,將顯示所有產(chǎn)品以及共享該主目錄的所有其他 Oracle 數(shù)據(jù)庫。Listener 的超鏈接顯示注冊到監(jiān)聽器(其名稱就顯示在緊靠它的下方)的所有數(shù)據(jù)庫和實(shí)例。最后,顯示主機(jī)名 (starz)。
          ?
          ??? 在名為“Host CPU”(2) 的部分中,醒目地顯示了 CPU 的詳細(xì)信息?!癆ctive Sessions”(3) 部分顯示了活動的會話及其當(dāng)前狀態(tài) (4)。從上面我們看到,99% 的時間被處于等待狀態(tài)的會話所占用。(我們稍后將找出導(dǎo)致這些等待的原因。)“High Availability”(5) 部分顯示了與可用性相關(guān)的信息。例如,“Instance Recovery Time”的值(實(shí)例的 MTTR Target 的值)確定實(shí)例崩潰恢復(fù)可能需要的時間。
          ?
          ??? “Space Usage”(6) 部分很有趣:它顯示與 23 個段相關(guān)的警告。(同樣,稍后再詳細(xì)介紹這些警告。)“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 錯誤。這種信息非常有價(jià)值 — 在警報(bào)日志中自動掃描 Oracle 錯誤使您避免了手動搜索這些錯誤的很多麻煩。
          ?
          ??? 在數(shù)據(jù)庫主頁的下部,如圖 3 所示,我們可以更詳細(xì)地查看其中的一些消息?!癆lerts”(1) 部分顯示了需要您注意的所有相關(guān)警報(bào),每個警報(bào)都可以方便地進(jìn)行配置。以第一個警報(bào) (2) 為例,它顯示 Archiver 進(jìn)程因?yàn)槟撤N原因而掛起。當(dāng)然,下一步就是確定其原因。要查明原因,只需單擊它即可。您將從包含該錯誤的 alert.log 文件中獲得更多詳細(xì)信息。在此情形下,故障點(diǎn)是一個已經(jīng)填滿的閃回恢復(fù)區(qū);我們只需將其清空,Archiver 即可重新開始工作。
          ?
          03

          圖 3:主數(shù)據(jù)庫主頁(下部)
          ?
          ??? 另一個警報(bào) (3) 是有關(guān)等待的:數(shù)據(jù)庫在 69% 的時間中等待一個與等待類“Application”相關(guān)的等待。還記得主頁上部是如何顯示一個會話處于等待狀態(tài)的嗎?這個警報(bào)向我們顯示它正在等待什么。單擊超鏈接將會立即為您顯示實(shí)際的等待。
          ?
          ??? 下一個警報(bào) (4) 顯示一個審計(jì)項(xiàng)目,即用戶 SYS 從特定的客戶端機(jī)器連接到數(shù)據(jù)庫。同樣,通過單擊超鏈接,您可以顯示有關(guān)該連接的所有詳細(xì)信息。最后一個警報(bào) (5) 顯示某些對象無效。單擊超鏈接,您將轉(zhuǎn)到對象被驗(yàn)證無效的畫面。
          ?
          ??? 如您所見,數(shù)據(jù)庫主頁猶如顯示需要您注意的所有事項(xiàng)的儀表板。該界面沒有將詳細(xì)信息堆積在屏幕上,其界面相當(dāng)簡潔,只需單擊即可獲得這些詳細(xì)信息。您可以手動搜集所有這些信息,但這可能會花費(fèi)很多時間和精力。EM 10g 提供了隨取隨用的解決方案。
          ?
          ?
          一般應(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 所示的畫面。
          ?
          04

          圖 4:表管理
          ?
          ??? 注意紅色圓圈中高亮顯示的手電筒標(biāo)志;這是用于調(diào)出數(shù)值列表的按鈕。在圖中所示畫面中,您可以單擊 LOV 標(biāo)志,調(diào)出數(shù)據(jù)庫中的用戶列表,并從列表中選擇一個用戶。單擊按鈕“Go”,出現(xiàn)該用戶的表的一個列表。您還可以使用“%”符號指定通配符 — 例如,通過使用 %TRANS%,可以找出名稱中帶有單詞 TRANS 的所有表。
          ?
          ??? 讓我們來看一個示例。選擇表 TRANS,更改其中的一列。單擊超鏈接,調(diào)出如圖 5 所示的“編輯表”畫面。
          ?
          ?
          05

          圖 5:表管理
          ?
          ??? 如果您要將列 ACTUAL_RATE 從 NUMBER(10) 改為 NUMBER(11),則可以更改數(shù)字(引用 1),然后單擊“Apply”。要查看完成該任務(wù)的實(shí)際 SQL 語句,可以單擊按鈕“Show SQL”。
          ?
          ??? 在同一畫面上還可以獲得另一條重要信息:增長趨勢。您將在以后一篇有關(guān)段管理的文章中了解到,觀察一段時間內(nèi)的對象增長情況是可能的。該畫面提供了相同的信息,但卻是以圖形方式表示的。要查看該畫面,可單擊選項(xiàng)卡“Segments”(圖 5 引用 2)。該操作調(diào)出段畫面,如圖 6 所示。
          ?
          06

          圖 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é)方面。讓我們舉個例子?;貞浨拔闹形覀兊臄?shù)據(jù)庫正在“Application”等待類上處于等待狀態(tài),如數(shù)據(jù)庫主頁所示(圖 3 引用 3),而我們需要診斷其原因。在任何調(diào)整過程中需要了解的關(guān)鍵事情之一是有多少種組件(如 CPU、磁盤和主機(jī)子系統(tǒng))在相互作用,這樣有助于在上下文環(huán)境中綜合觀察所有這些變量。為此,可在數(shù)據(jù)庫主頁中選擇“Performance”選項(xiàng)卡。此操作調(diào)出如圖 7 所示的畫面。
          ?
          07

          圖 7:“Performance”選項(xiàng)卡
          ?
          ??? 請注意所有量度已在同一時間軸上對齊,這樣更容易觀察它們的相互依賴性。注意尖峰 (3),它對應(yīng)于調(diào)度程序任務(wù)。它表明,在該時刻約有七個會話正在等待與調(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ù)載“概況”的了解。
          ?
          ??? 注意在時間軸末尾的尖峰 — 增加了運(yùn)行隊(duì)列長度 (5) 和分頁速率 (6)— 它們與物理讀取的另一個尖峰相關(guān) (7)。原因是什么?
          ?
          ??? 通過比較圖形“Sessions:Waiting and Working”與尖峰發(fā)生的時間,我們可以看到,大部分會話都在“Application”等待類上進(jìn)行等待。但是我們需要確切地查明它在該時期內(nèi)正在等待什么?單擊該時間的區(qū)域,調(diào)出活動會話畫面,如圖 8 所示。
          ?
          08

          圖 8:活動會話等待
          ?
          ??? 該畫面顯示會話正在等待的等待事件是 enq:TX ?row lock contention。那么導(dǎo)致此問題的 SQL 語句是什么?很簡單:畫面本身顯示了語句 8rkquk6u9fmd0 的 SQL ID(在紅色圓圈中)。單擊該 SQL ID,調(diào)出如圖 9 所示的 SQL 畫面。
          ?
          09

          圖 9:SQL 詳細(xì)信息
          ?
          ??? 在該畫面上,您可以看到關(guān)于它的 SQL 語句以及相關(guān)的詳細(xì)信息,包括執(zhí)行計(jì)劃。它表明,這條 SQL 導(dǎo)致行鎖爭用,因此應(yīng)用程序設(shè)計(jì)可能是問題的根源。
          ?
          ?
          栓鎖爭用
          ?
          假設(shè)單擊“Performance”選項(xiàng)卡出現(xiàn)類似圖 10 所示的畫面。
          ?
          10
          ?
          圖 10:“Performance”選項(xiàng)卡,示例 2
          ?
          ??? 在圖中,請注意紅色矩形中高亮顯示的量度。您可以看到在 12:20AM 左右有很多與 CPU 相關(guān)的等待,這導(dǎo)致在 CPU 中出現(xiàn)龐大的運(yùn)行隊(duì)列。我們需要診斷這一等待。
          ?
          ??? 首先,單擊顯示 CPU 爭用區(qū)域的圖形(在圖上標(biāo)有“Click Here”),以詳細(xì)查看該特定等待,如圖 11 所示。
          ?
          11
          ?
          圖 11:活動會話等待
          ?
          ??? 注意在“Active Sessions Working:CPU Used”圖形中帶陰影的框 (1)。您可以使用鼠標(biāo)拖動它來放置焦點(diǎn)。此操作導(dǎo)致以下的餅形圖(2 和 3)只在該框所包含的時段內(nèi)進(jìn)行計(jì)算。在這里我們看到,一個具有 id 8ggw94h7mvxd7 的特定 SQL 正在非常困難地運(yùn)行 (2)。我們還看到,具有用戶名 ARUP 和 SID 265 的用戶會話是最主要的運(yùn)行會話 (3)。單擊該會話,查看其詳細(xì)信息。此操作調(diào)出“Session Details”畫面。單擊選項(xiàng)卡“Wait Events”,調(diào)出該會話所經(jīng)歷的等待事件的詳細(xì)信息,其畫面類似于圖 12 所示。
          ?
          12
          ?
          圖 12:等待事件的詳細(xì)信息
          ?
          ??? 在該畫面中,請注意在紅色圓圈中高亮顯示的 118 厘秒的最長等待,它在等待庫高速緩存。當(dāng)您單擊“Latch:Library Cache”的超鏈接時,將會看到類似圖 13 所示的畫面。
          ?
          13
          ?
          圖 13:等待直方圖
          ?
          ??? 該畫面提供了 10g 數(shù)據(jù)庫之前所沒有提供的一些獨(dú)特信息。在診斷這個栓鎖爭用問題時,如何知道這 118 厘秒的等待是由幾個會話中的多個小等待組成,還是只是由一個會話中的一個大等待組成,從而使數(shù)據(jù)出現(xiàn)偏差呢?
          ???
          ??? 在這里,直方圖可以幫助我們。從圖上看,您知道大約 250 次會話擁有 1 毫秒的等待(在圓圈中高亮顯示)。會話在 4 與 8 毫秒之間的某處等待了大約 180 次。該畫面顯示,這些等待的時間通常很短,因而它們不是栓鎖爭用的主要癥狀。
          ?
          ??? 在數(shù)據(jù)庫主頁上,您可以通過單擊標(biāo)為“Advisor Central”的選項(xiàng)卡來訪問 ADDM、SQL Access Advisor 以及其他顧問程序。ADDM 在收集量度時自動運(yùn)行,并且結(jié)果立即發(fā)布在 Advisor Central 頁中;當(dāng)單擊該頁時,將顯示由 ADDM 給出的建議。SQL Tuning Advisor 也檢查這些量度,并在此頁上發(fā)布其建議。(我們將在以后的文章中更加詳細(xì)地研究 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é)論
          ?
          ??? 如先前所述,這篇文章所涉及的只是巨大冰山的一角。在本文中,我的目的不是為了提供全面的概述;而是希望提供對一些跨多個技能集的特定活動的快速瀏覽。
          ?
          ?
          ?
          Oracle 10g EM 為 DBA 新手提供了足夠的資源,以便很快地了解 Oracle 數(shù)據(jù)庫管理的微妙之處。一本有關(guān)使用 EM 的任務(wù)及技術(shù)的好提綱是 Oracle“兩日速成 DBA”參考手。我強(qiáng)烈建議您閱讀它,尤其是在您剛開始學(xué)習(xí)的時候。
          ?
          ?
          ?
          ?
          ?
          posted on 2009-08-14 20:49 decode360 閱讀(755) 評論(0)  編輯  收藏 所屬分類: 08.DBA
          主站蜘蛛池模板: 利津县| 金秀| 仪陇县| 松滋市| 云和县| 遂溪县| 丽水市| 太保市| 绥阳县| 广河县| 大庆市| 吉木乃县| 章丘市| 柘城县| 中方县| 安化县| 南岸区| 德庆县| 宜都市| 桦南县| 棋牌| 神木县| 桂阳县| 游戏| 荔波县| 莆田市| 龙口市| 隆德县| 衡阳市| 穆棱市| 洛宁县| 海城市| 册亨县| 南和县| 方城县| 邢台市| 金华市| 肥东县| 灵山县| 上饶县| 上蔡县|