自己的PC机上装的oracle,为了学习用。
折腾了两天,不断的试啊试啊。终于把OEM配置好了。
除了过程,总结了两点:一.注意你的IP地址,如果是动态分配的,IP地址变了,listener.ora中的地址要去改成现在的ip地址,不然服务中的监听起不来。
二.防火墙关了,具体我也没有再试验和这个有关系没。
三.反复分析看错误日志
重建OEM时,在创建资料库的时候总是出错:
图片贴不上了,简单说下:执行emca -repos create
输入信息后:
提示:创建资料档案库时出错
详细信息参阅.....日志
Check if repos user already exists.
原值 6: WHERE username=UPPER('&EM_REPOS_USER');
新值 6: WHERE username=UPPER('SYSMAN');
原值 8: IF ( '&EM_CHECK_TYPE' = 'EXISTS') THEN
新值 8: IF ( 'NOT_EXISTS' = 'EXISTS') THEN
原值 11: raise_application_error(-20000, '&EM_REPOS_USER does not exists..');
新值 11: raise_application_error(-20000, 'SYSMAN does not exists..');
原值 14: ELSIF ( '&EM_CHECK_TYPE' = 'NOT_EXISTS' ) THEN
新值 14: ELSIF ( 'NOT_EXISTS' = 'NOT_EXISTS' ) THEN
原值 17: raise_application_error(-20001, '&EM_REPOS_USER already exists..');
新值 17: raise_application_error(-20001, 'SYSMAN already exists..');
原值 21: raise_application_error(-20002, 'Invalid Check type &EM_CHECK_TYPE');
新值 21: raise_application_error(-20002, 'Invalid Check type NOT_EXISTS');
DECLARE
*
第 1 行出现错误:
ORA-20001: SYSMAN already exists..
ORA-06512: 在 line 17
2011-7-21 14:52:27 oracle.sysman.emcp.ParamsManager setFlag
配置: Flag '-repos' set to true
2011-7-21 14:52:27 oracle.sysman.emcp.ParamsManager setFlag
配置: Flag 'db' set to true
2011-7-21 14:52:27 oracle.sysman.emcp.ParamsManager setFlag
配置: Flag 'create' set to true
2011-7-21 14:52:27 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: ORACLE_HOME value: E:\oracle\product\10.2.0\db_1
2011-7-21 14:52:30 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: SID value: orcl
2011-7-21 14:52:34 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: PORT value: 1521
2011-7-21 14:52:42 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 SYS_PWD 的值。
2011-7-21 14:52:42 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine connecting with SID: orcl, oracleHome: E:\oracle\product\10.2.0\db_1, and user: SYS
2011-7-21 14:52:42 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine created successfully and connected
2011-7-21 14:52:46 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: CONFIRMATION ANSWER value:
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: CONFIRMATION ANSWER value: yes
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 LOG_FILE 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setFlag
配置: Flag 'db' set to true
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_UNIQUE_NAME 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_UNIQUE_NAME 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine connecting with SID: orcl, oracleHome: E:\oracle\product\10.2.0\db_1, and user: SYS
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine created successfully and connected
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getDbUniqueName
配置: No Database unique name available. Will try to retrieve it from DB itself
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value: orcl
2011-7-21 14:52:48 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_2011-07-21_02-52-27-下午.log。
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: EM_HOME value: E:\oracle\product\10.2.0\db_1
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setFlag
配置: Flag 'db' set to true
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 MODIFY_SID 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getDbServiceName
配置: No service name available. Will try to set db_unique_name.db_domain
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine connecting with SID: orcl, oracleHome: E:\oracle\product\10.2.0\db_1, and user: SYS
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine created successfully and connected
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value:
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_UNIQUE_NAME 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getDbUniqueName
配置: No Database unique name available. Will try to retrieve it from DB itself
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value: orcl
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_DOMAIN 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getDbDomain
配置: No db domain available. Will query db for db_domain parameter
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value: orcl
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: SERVICE_NAME value: orcl
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 MODIFY_SID 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 MODIFY_SID 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 GLOBAL_DB_UNIQUE_NAME 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getGlobalDbUniqueName
配置: No Global database unique name available. Will try to retrieve it from DB itself
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine connecting with SID: orcl, oracleHome: E:\oracle\product\10.2.0\db_1, and user: SYS
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine created successfully and connected
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_DOMAIN 的值。
2011-7-21 14:52:48 oracle.sysman.emcp.DatabaseChecks getDbDomain
配置: No db domain available. Will query db for db_domain parameter
2011-7-21 14:52:48 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: GLOBAL_DB_UNIQUE_NAME value: orcl
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine connecting with SID: orcl, oracleHome: E:\oracle\product\10.2.0\db_1, and user: SYS
2011-7-21 14:52:48 oracle.sysman.emcp.util.GeneralUtil initSQLEngine
配置: SQLEngine created successfully and connected
2011-7-21 14:52:48 oracle.sysman.emcp.EMReposConfig createRepository
配置: Spooling to E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_repos_create_2011-07-21_02-52-48-下午.log
2011-7-21 14:52:48 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2011-7-21 14:52:48 oracle.sysman.emcp.EMReposConfig createRepository
配置: ORA-20001: SYSMAN already exists..
ORA-06512: 在 line 17
oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-20001: SYSMAN already exists..
ORA-06512: 在 line 17
at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeImpl(SQLEngine.java:1467)
at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeScript(SQLEngine.java:841)
at oracle.sysman.assistants.util.sqlEngine.SQLPlusEngine.executeScript(SQLPlusEngine.java:265)
at oracle.sysman.assistants.util.sqlEngine.SQLPlusEngine.executeScript(SQLPlusEngine.java:306)
at oracle.sysman.emcp.EMReposConfig.createRepository(EMReposConfig.java:360)
at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:182)
at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:124)
at oracle.sysman.emcp.EMConfig.perform(EMConfig.java:142)
at oracle.sysman.emcp.EMConfigAssistant.invokeEMCA(EMConfigAssistant.java:479)
at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1123)
at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:463)
at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:412)
2011-7-21 14:52:48 oracle.sysman.emcp.EMReposConfig invoke
严重: 创建资料档案库时出错
2011-7-21 14:52:48 oracle.sysman.emcp.EMReposConfig invoke
信息: 有关详细资料, 请参阅 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_repos_create_<日期>.log 中的日志文件。
2011-7-21 14:52:48 oracle.sysman.emcp.EMConfig perform
严重: 创建资料档案库时出错
有关详细资料, 请参阅 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_2011-07-21_02-52-27-下午.log 中的日志文件。
2011-7-21 14:52:48 oracle.sysman.emcp.EMConfig perform
配置: Stack Trace:
oracle.sysman.emcp.exception.EMConfigException: 创建资料档案库时出错
at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:194)
at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:124)
at oracle.sysman.emcp.EMConfig.perform(EMConfig.java:142)
at oracle.sysman.emcp.EMConfigAssistant.invokeEMCA(EMConfigAssistant.java:479)
at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1123)
at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:463)
at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:412)
具体重新创建过程如下:
(查看emca格式的帮助命令为emca -h)
1.cmd-set ORACLE_SID=orcl
2.使用emctl命令停止OEM运行,删除资料库
emctl stop dbconsole
3.使用emca命令删除文件,此处只使用emca命令删除文件,不会使数据库进入静默模式。
emca -deconfig dbcontrol db
4.Logon SQLPLUS as user SYS or SYSTEM, and drop the sysman account and management objects:
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.使用emca命令创建OEM文件以及资料库,创建资料库过程不会使数据库进入静默模式
$ emca -config dbcontrol db -repos create
输入以下信息:
数据库SID:orcl
监听程序端口号:1521
sys用户的口令:
DBSNMP用户口令
SYSMAN用户口令:
y
6.emctl start dbconsole
7.emctl status dbconsole
可以看到登陆的IE地址-进入
补充一下:(下面这个步骤我也在我的PC机上测试过,create过程中用户可以连接,所以这个方法对与生产库更安全)
Oracle 10g中OEM存在bug,在OEM生成性能图表过程中,可能由于某些数据问题导致OEM宕掉,无法启动。
如需重建OEM,由于特别注意中的内容,建议使用手动方式删除原来的OEM,再进行创建,具体方法如下:
1、使用emctl命令停止OEM运行
$ emctl stop dbconsole
2、使用emca命令删除文件,此处只使用emca命令删除文件,不会使数据库进入静默模式。
$ emca -deconfig dbcontrol db
3、Logon SQLPLUS as user SYS or SYSTEM, and drop the sysman account and management objects:
SQL>alter user dbsnmp identified by oracle;(create时候需要输入dbsnmp用户密码,重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。)
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;
4、使用emca命令创建OEM文件以及资料库,创建资料库过程不会使数据库进入静默模式
$ emca -config dbcontrol db -repos create
关于OEM相关的Oracle support note:[278100.1], [375946.1]
补充:可以使用命令“emca -config dbcontrol db”修改端口。