10g推出的web版oem確實不錯 簡單 美觀 使用 但是大多數的dba可能很少使用oem
所以一定oem出現問題了 絕大多數的人採取的方式就是---重建oem 關於oem的診斷
網上這類文章不多 那我就來個簡單的總結吧 ? 拋磚引玉吧 寫的不好 請拍磚
一、瞭解OEM的文件結構--log位置
$ORACLE_HOME/hostname_sid/sysman/log --單實例
$ORACLE_HOME/nodename_sid/sysman/log --rac
$ORACLE_HOME/hostname_sid/sysman/log/emdb.nohup --一些java進程的啓動或退出信息(比如dbconsole,agent)
$ORACLE_HOME/hostname_sid/sysman/log/emagent.log,emagent.trc --aggent的trace信息
$ORACLE_HOME/hostname_sid/sysman/log/emoms.log,emoms.trc --management service trace信息
$ORACLE_HOME/hostname_sid/sysman/log/emdctl.trc,emdctl.log --emctl的trace信息
$ORACLE_HOME/hostname_sid/sysman/log/emagentfetchlet.trc,emagentfetlet.log --java fetchlets的trace信息
二、診斷OEM啓動
1. 環境變量
--ORACLE_HOME ,PATH,LD_LIBRARY_PATH,LANG
如下錯誤:OC4J Configuration Issue: $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_host_sid not found
通常來說是由於環境變量ORACLE_HOME設置錯誤或主機名設置錯誤
2. sysman/dbsnmp用戶異常
--SELECT username,account_status from dba_users where username
in ('SYSMAN','DBSNMP');
備註:
--刪除DBSNMP
@?/rdbms/admin/catnsnmp.sql
--重建DBSNMP
@?/rdbms/admin/catsnmp.sql
3. timezone 時區問題
--ORACLE_HOME/sysman/admin/supportedtzs.lst 檢查該文件時區信息是否和當前環境變量timezone設置一致?
WINDOWS: 控制面板--日期和時間---時區 進行設置
UNIX、linux: export TZ=xxxx
手動配置時區
emctl config agent getTZ
emctl config agent updateTZ --會更新 ORACLE_HOME/hostname_sid/sysman/config/emd.properties文件
4. network 網絡問題
--是否是靜態IP(不推薦使用DHCP動態IP,其實也是可以的,不過需要進行特殊配置)
--hosts文件 主機名不能包好 下劃線 _
--nslookup
--hosts文件格式
如下:
<ip> <full qualified domain name> <alias>
5. configuration 配置錯誤(比如端口,錯誤的連接字符串,通常來說跟hosts等有很大關係)
--lsnrctl status 查看監聽log
--tnsping 通常來說相關的錯誤有ORA-12514 12560等等
--檢查OEM配置文件
$ORACLE_HOME/hostname_sid/sysman/emd.proerties
$ORACLE_HOME/hostname_sid/sysman/emoms.properties
詳細的信息大家可以參考: Troubleshooting Database Control Startup Issues [ID 549079.1]
三、如果手工重建OEM ?
1. 刪除 db control configuration
10.1.x $ORACLE_HOME/bin/emca -x <sid>
10.2.x $ORACLE_HOME/bin/emca -deconfig dbconsole db
2. 刪除db control 配置文件
手動刪除如下目錄:
ORACLE_HOME/hostname_sid
ORACLE_HOME/oc4j/j2ee/_OC4J_DBConsole_hostname_sid
如果是升級後的版本如下:
ORACLE_HOME/hostname_sid.upgrade
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_sid.upgrade
注意:如果是windows環境,那麼還需要刪除db console services
步驟如下:
方法1:註冊表刪除
--運行 regedit
--HKEY_LOCAL_MANCHINE/SYSTEM/CurrentControlSet/Services
--刪除 OracleDBConsole<sid>
方法2:命令行
nmesrvops delete <servicename>
3. 刪除db control repository
10.1/10.2 :
-- cd $ORACLE_HOME/sysman/admin/emdrep/bin
-- ./RepManger <hostname> <listener_port> <sid> -action drop 相關信息可以參考375946.1
4. 刪除 db control repository 對象
-- exec DBMS_AQADM.DROP_QUEUE_TABLE(queue_table=>'SYSMAN.MGMT_NOTIFY_QTABLE',force=>TRUE);
-- SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP RESTRICT;
SQL> EXEC sysman.emd_maintenance.remove_em_dbms_jobs;
SQL> EXEC sysman.setEMUserContext('',5);
SQL> REVOKE dba FROM sysman;
SQL> DECLARECURSOR
c1 ISSELECT owner, synonym_name nameFROM dba_synonyms
WHERE table_owner = 'SYSMAN';
BEGINFOR r1 IN c1
LOOPIF r1.owner = 'PUBLIC' THENEXECUTE IMMEDIATE
'DROP PUBLIC SYNONYM '||r1.name;ELSEEXECUTE IMMEDIATE 'DROP SYNONYM '||r1.owner||'.'||r1.name;
END IF;END LOOP;
END;
/
SQL> DROP USER mgmt_view CASCADE;
SQL> DROP ROLE mgmt_user;
SQL> DROP USER sysman CASCADE;
SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION;
通過下面的幾個步驟可以更加徹底的刪除:
SQL> drop user sysman cascade;
SQL> drop role MGMT_USER;
SQL> drop user MGMT_VIEW cascade;
SQL> drop public synonym MGMT_TARGET_BLACKOUTS;
SQL> drop public synonym SETEMVIEWUSERCONTEXT;
5. Delete DB Control Configuration Files and Repository Objects using EMCA
10.1 :
-- <ORACLE_HOME/bin/emca -x sid
---<ORACLE_HOME/sysman/admin/emdrep/bin/RepManager <hostname> <listener_port> <sid> -action drop
10.2:
--<ORACLE_HOME/bin/emca -dbconfig dbcontrol db -repos drop
6. 創建db control
1)創建db control配置文件
10.1 ---<ORACLE_HOME>/bin/emca -r
10.2 --<ORACLE_HOME>/bin/emca -config dbcontrol db
2)創建db control repostory
10.1 --<ORACLE_HOME>/bin/emca
10.2 --<ORACLE_HOME>bin/emca -config dbcontrol db -repos create/recreate
備註:rac環境需要添加cluter參數 如下:
emca -config dbcontrol db -repos create -cluster