Oracle10g oem grid control (轉)

ruanrong發表於2011-04-21

Orale10g OEM Grid Control是Oracle公司提供的一種企業級資料庫(資料庫節點數在幾十臺以上的規模)部署,管理和監控的解決方案,較之10g之前的oem有了本質的區別,它基本上重寫了所有的程式碼,變成了一種基於web的架構,使使用者無需再在客戶機上安裝笨重的java 控制檯了。負責維護的資料庫資料增長到接近500臺,因此在管理上採用了企業級的Oracle10g oem grid control來進行日常的管理和維護。在使用過程中發現它的功能比想象中強大的多,管理的整合性作的也非常好,以下是筆者在實際使用中積累的文件和一些心得體會。

If you want to Enter the following Command

Start the Management Service

emctl start oms

Stop the Management Service

emctl stop oms

Verify status of the Management Service

emctl status oms

Start all components of the Application Server, including the Management Service and WebCache

opmnctl startall

Stop all components of the Application Server, including the Management Service and WebCache

opmnctl stopall
[@more@]

一 oem10g grid control 應用篇:部署1: 相關軟體的獲得
如果作為學習用途,Oem10g grid control 可以從oracle官方網站上直接免費下載。
1)下載oem10g grid control軟體,當前版本是10.2.0.1.0
2)下載agent軟體(對於同一個平臺的agent軟體已經包含在oem裡了,對於不適一種平臺的os,需要安裝適合該平臺的agent .
2: 建立oracle的環境
這個可以參考網上的Oracle安裝的文件,基本上就是建立一個Oracle使用者,一個dba組,配置一下oracle使用者的 環境變數.bash_profile),修改一下核心引數(主要是起用大記憶體等,也可以隨便在網上找到,這些不做為討論的內容)。
3:安裝
解開下載的檔案包,啟用圖形介面,進入安裝介面,其中需要注意的是它會提示你oem的資料庫是建立在一個現有的資料庫中還是新建個資料庫,這個按照你的情況來選擇,如果使用現在的資料庫,它就會提示你連線到現在的資料庫中,然後建立一大堆東西-_-|.我們採用的是建立一個新的資料庫,以便於管理,然後一路Next, 最後建立成功。
這裡沒有太大的問題,如果你對這些不熟悉,建議你先練習一下在linux下安裝資料庫,基本上是一樣的,所以不做太多討論。
4:收尾
程式提示Oem連線方式,就是下面這樣。

你可以開啟一個瀏覽器,輸入這個地址,會提示你登入資訊,登陸使用者是在建立oem資料庫時指定,使用者名稱是sysman,記住這個使用者,在oem裡他就是dba 角色。
登陸成功後,恭喜你,你的oem server端安裝成功了。注意,在安裝oem過程中,它會自動在本地裝一個agent,所以對於本機,你可以省事了。
ok,到現在為止,我們安裝好了伺服器端的軟體,也就是說oem的核心部分已經安裝好了,如果你只有一臺資料庫伺服器,那你的工作基本上完成了,否則的話你要在其他所有的節點上部署agent,以便於oem進行管理。
5:10g oem grid control 架構
在部署agent之前有必要了解一下oem10g grid control的架構,以便於對它有更好的理解。
10g oem是一個基於web的管理架構,這和10g之前的笨重的java客戶端有很大的區別。我們可以從2方面來研究它的架構,一個是管理的架構,一個是後臺資料採集的架構。
1) 10g oem管理的架構:
管理者(或者使用者)不需要再自己的機器上安裝任何軟體,只需要一個瀏覽器就可以搞定所有的工作。使用者只需要在瀏覽器裡輸入如下的地址,就可以進入oem,進行資料庫管理。

我們可以看到首先我們需要連線到oracle的一箇中間層,稱作
Oracle application server,透過它再登陸到oem上,然後進行資料庫的監控,管理和維護。所以中間層的後臺是一個資料庫,也就是我們在建立oem時建立的資料庫,所有Oem管理的資料庫資訊,包括登陸資訊都儲存在這個資料庫中。
2)後臺資料採集的架構:
oem 收集管理資料庫資訊的方法是在被管理的節點上部署它的代理軟體(agent),透過代理軟體來收集本機的所有資訊,以xml的資訊儲存到本地,再透過資料上載的程式,將xml檔案上載到oem server機器上,server端的程式再將這些xml資訊寫入到oem資料庫裡。這些xml檔案也是透過http方式發給Oem伺服器的app server,再透過它轉給oem service.
弄清楚了Oem架構這後,我們接著往下進行,就是在需要管理的機器上部署10g oem agent.

二 oem10g grid control 應用篇 -部署oracle為agent部署提供了4種方案.
1:直接在需要部署的節點上安裝agent軟體
2:指令碼安裝
3:克隆
4:直接在oem介面上進行批次部署。
下面對每一種安裝方案作具體的描述,讀者可以根據自己的實際情況選擇安裝。
1:透過agent軟體安裝
這種方法比較傳統和直觀,就是在需要部署的節點上直接在本地安裝agent軟體,安裝成功後透過在配置檔案中指定一個oms地址來保證agent和oms的正確通訊。
另外一種需要這種安裝方式的是當這個節點和oms使用的不是一種OS平臺的情況下,必須要使用這種方式,這個需要使用者自己到Oracle網站上下載適於本平臺的agent軟體,但這並不會影響oms的管理。
由於這種安裝比較簡單,所以在這裡不作過多的解釋。
2:基於指令碼的部署。
在oem10g的體系中對安全的要求比較高,所以在檔案傳遞上也使用了hhtps的加密協議。在機器的訪問上Oracle採用的是ssh方式訪問,所以在oem體系中,機器上啟用ssh是必須的,至於ssh的啟用方法不在本文件的討論之列。
首先要在oms端執行以下命令,以便於確保資料透過ssh方式在server端和client段進行傳遞。
OMS_HOME/sysman/prov/resources/scripts/sshUserSetup.sh
具體的命令如下:
sshUserSetup.sh -hosts "host1 host2" -user sjohn
其中-hosts是你要部署agent的機器的名稱,如果此處你寫hostname,那麼你需要把hostname和機器的Ip對應資訊寫到oms機器的/etc/hosts上,否則可能無法解析hostname。這裡可以寫很多個需要部署的hosts的名字。
-user是登入到該機器的使用者名稱,密碼則在執行過程中輸入。
在各個過程中,該指令碼首先測試到遠端機器的可用性,使用ping的命令,然後使用ssh命令進行登入驗證,確保ssh可用。
以上工作完成後就可以進行部署了,oracle文件上還有幾個步驟,我覺得可以省略,反正我沒用到。
下面那一臺機器舉例進行agent部署。
a:用oracle使用者登入需要部署agent的機器,在oracle使用者預設路徑下編輯c shell profile:./bashrc 在最後加入:
set TZ=PRC
設定時區,儲存退出。
source ./bashrc 使環境變數生效。
注:這個操作是設定agent host的時區time zone,是agent和oms資料傳遞時必需的,不能忽略。
b:首先用oracle使用者在ORACLE_HOME/下建立一個目錄,一般是OracleHomes,
c:使用ftp,或者http,scp等方法,從Oms機器上下載安裝指令碼,該安裝指令碼路徑如下:
$ORACLE_HOME/OracleHomes/oms10g/sysman/agent_download/linux/agent_download.linux
d:在需要部署agent的機器上,首先給該指令碼可執行的許可權。
e:執行安裝指令碼:
./agent_download.linux -b /home/oracle/OracleHomes
其中-b引數指定agent安裝的路徑。
中間不需要互動,Oracle使用的是silent方式的安裝。
安裝成功或者失敗都有日誌.
3: clone 方式部署agent。
這個比較簡單。
首先需要有一個已經裝好的可以正常執行的agent節點,然後將這個節點下agent/目錄下所有的檔案打一個tar,傳到需要部署的節點上,解tar,確定目錄正確。
然後執行emca -f 重新配置agent。
檢查agent是否執行正常。
4:透過oem進行agent部署。
這個部署是透過oem的web介面進行配置,適合做企業級的大規模的部署。
做這個的前提是oms已經安裝,並且可以正常訪問,oms的安裝和訪問前便已經提到了。
步驟如下:
1:登陸oms。
2:選擇部署(deplay)籤,選擇安裝(fresh install).
3:進入安裝介面,首先和安裝路徑,輸入你agent想要的安裝路徑。然後選擇你的agent的執行平臺,這種部署,我發現這中部署agent的平臺只能和oms相同的平臺,其他的平臺需要到
Oracle的官方網站上下載相應平臺的agent軟體進行安裝。
4:Host欄,輸入需要部署的host的Ip,或者hostname,如果中間用逗號分隔。如果輸入的是hostname,需要保證oms機器可以透過hostname解析出Ip地址,可以透過修改/ect/hosts檔案來達到hostname和ip的對應。
5:輸入一個作業系統的使用者名稱和密碼,基本上就是你的oracle使用者和密碼。
6:輸入Oms的安全口令,隨便輸一個,自己記住就可以了。
其他的基本上都可以不添,記住最後執行完之後執行一個agent/下的root.sh指令碼就可以了。
7:看一下,執行結果,對於執行失敗的節點,要看相應的安裝日誌。
OEM的部署基本上就是這樣,上面說到的只是方法,我們在安裝過程中出現了很多錯誤,也察看了很多文件,下面會對這些錯誤作一些解釋和討論。

三 oem10g grid control 應用之總結前面已經介紹了Oms和agent的部署方法,這一部分筆者準備把使用10g oem grid control 遇到的問題和使用的心得彙總一下。

一些比較重要的路徑和檔案

Oms server端和agent端的目錄結構基本上相似:區別在於oms端路徑的最上層叫oms10g,而agent端的最上層的路徑叫agent10g.下面的結構基本上相似,下面說一下幾個比較重要的路徑和檔案。
1: oms10g/bin 和agent10g/bin分別存放了Oms和agent各自的可執行檔案,其中emctl檔案時用來管理oms或agent的命令,前面說過,由於在 oms server端,也同時安裝了agent,所以在oms server上執行emctl命令時要特別主要,需要進入到各自的bin./下面執行,否則可能會出錯。
比如想啟動oms,可以進入到oms10g/bin 下執行:
./emctl start oms 這個命令會同時啟動其他oms需要的服務,比如http server。
具體的所有用法可以透過敲入:./emctl 回車就可以看到。
對於agent的管理,須要進入到agent10g/bin下,以下是一些有用的命令:
./emctl start agent 啟動agent service
./emctl stop agent 停止agent service
./emctl status agent 察看agent的執行情況,在出現的資訊當中,有一個資訊比較重要,last successfully upload time,如果值為null,說明沒有資料上傳,需要檢查一下相關的配置是否正確。或者直接發出:./emctl upload看看資訊。
oms 和agent的錯誤資訊都存放在:oms10g(agent10g)/sysman/log
我在安裝的過程中出現過很多次agent無法upload的情況,原因大多是本地的TZ變數沒有設定正確。TZ就是time zone時區,是oem10g中比較重要的一個變數,它要求agent節點上必須設定時區變數,並且時區變數的值需要符合oracle要求的時區變數值, 這個值了一在agent10g/sysman/admin/emd/supportedtz.lst檔案中找到。設定TZ的方法在部署篇裡已經講過了。

oem10g的原理和工作方式oem10g的agent端的資料收集全部透過perl指令碼來完成。副檔名為:*.pl,這些指令碼可以在agent10g/sysman/admin/scripts/下找到。
agent 程式首先會把採集到的資訊寫到本地的xml檔案當中,然後再將該檔案upload到oms端去,oms service再將xml檔案寫入到oms自己的repository庫裡。剛才我們說的./emctl upload其實就是手工上載本地的xml檔案。這些生成的檔案可以在:agent10g/sysman/admin/upload下找到。
agent程式的發現方式:
當agent 部署到一個節點上時,他首先搜尋$ORACLE_HOME/oraInventory下安裝的所有oracle產品。以便確定需要收集那些產品的資訊,比 如他只發現了一個資料庫產品,他們它就會只執行收集資料庫和主機資訊的指令碼。對於一個節點來說,agent確定需要收集那些內容的資訊寫在如下檔案中,可 以手工修改:agent10g/sysman/emd/targets.xml。
另外一個比較重要的檔案是 agent10g/sysman/config/emd.properties 他就是沒一個agent的配置檔案,agent所有的屬性都在裡面,比如oms的url,TZ啊什麼的,可以手工修改,修改完之後,透過執行. /emctl reload來使之生效。

oem10g的使用心得

oem10g在易用性較8i,9i笨重的java客戶端來看,真是有一種脫胎換骨的輕鬆感覺。你不需要再花很多的時間等待那個圖形介面的出現了,只要透過瀏覽器輸入hhtp://oemhost: 4889/em就可以輕鬆登陸oem.感覺速度比8i和9i都快不少。而且介面有很多圖示,看起來很舒服。
oem10g另外一個功能就是加入了告警功能,它會將所有認為有問題的資訊以在首頁上提示出來,甚至連alert檔案中的告警資訊也可以弄出來,並且所有的指標都可以自己定義告警閾值,我們單位原原本也有一套資料庫監控系統,可是和這個比,簡直是小巫見大巫了。
10g oem另外一個令人激動的特點是提供了一個叫adviser的建議功能,它可以幫助你對記憶體,Undo segent,sql進行相應的最佳化調整,給出好的建議。但這個功能只能對10g資料庫可用。儘管oem10g可以管理從8.1.7.4以後的資料庫,但 這個功能只對10g的資料庫可用。
報表,oem10g提供了很好的報表功能,包括所有該節點上所有監控的資訊,而且報表很漂亮。對於那些定期需要向領導作報表的dba來說,這是個不錯的工具。

Starting and Stopping the Management Service

The relevant emctl commands for Linux are listed in the following table.

You must be in the OMS_HOME/bin directory to issue the emctl commands, where OMS_HOME is the Oracle Application Server home directory in which the Oracle Management Service is installed and deployed.

Table 7-1 Commands to Start and Stop Management Service

If you want to Enter the following Command

Start the Management Service

emctl start oms

Stop the Management Service

emctl stop oms

Verify status of the Management Service

emctl status oms

Start all components of the Application Server, including the Management Service and WebCache

opmnctl startall

Stop all components of the Application Server, including the Management Service and WebCache

opmnctl stopall

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1933/viewspace-1048964/,如需轉載,請註明出處,否則將追究法律責任。

相關文章