Oracle10g oem grid control

 Oracle10g oem grid control

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


一 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連接方式,就是下面這樣。
http://oem_hostname:4889/em
你可以打開一個瀏覽器,輸入這個地址,會提示你登錄信息,登陸用戶是在創建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,進行數據庫管理。
http://oem_hostname:4889/em
我們可以看到首先我們需要連接到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來說,這是個不錯的工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章