一、尝试使用em进行管理,所以采用如下过程打开:

C:\Documents and Settings\Administrator>emctl start

Environment variable ORACLE_SID not defined. Please define it.

二、提示ORACLE_SID不存在,所以设置环境变量进行定义。

首先查看SID:连接到数据库后,查看实例名

show parameter inst;

发现数据库sid为qjftest

或者“select intance_name from v$instance;”也可以。

随后设置环境变量:

C:\Documents and Settings\Administrator>set ORACLE_SID=qjftest

三、查看是否设置成功:

C:\Documents and Settings\Administrator>set ORACLE_SID

ORACLE_SID=qjftest

四、成功后重新启动em:

C:\Documents and Settings\Administrator>emctl start

EM Configuration issue. d:\oracle\product\10.2.0\db_1/10.10.10.1_qjftest not fou

nd.


五、仍然提示失败,而且发现IP存在问题,暂时不知道如何解决,似乎是EM配置信息缺失,换一种方式启动:

C:\Documents and Settings\Administrator>emctl start dbconsole

OC4J Configuration issue. d:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole

_10.10.10.1_qjftest not found.


六、提示出错后,网上搜索了一番,发现说没有配置em资料库,所以执行如下命令,创建资料库:

C:\Documents and Settings\Administrator>emca -repos recreate


EMCA 开始于 2011-9-22 21:21:23

EM Configuration Assistant 10.2.0.1.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。


输入以下信息:

数据库 SID: qjftest

监听程序端口号: 1521

SYS 用户的口令:

SYSMAN 用户的口令:

SYSMAN 用户的口令:

是否继续? [yes(Y)/no(N)]: yes

2011-9-22 21:21:48 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftest\

emca_2011-09-22_09-21-23-下午.log。

2011-9-22 21:21:49 oracle.sysman.emcp.EMReposConfig dropRepository

信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...

2011-9-22 21:21:51 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功删除资料档案库

2011-9-22 21:21:51 oracle.sysman.emcp.EMReposConfig createRepository

信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...

2011-9-22 21:23:43 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功创建资料档案库

已成功完成 Enterprise Manager 的配置

EMCA 结束于 2011-9-22 21:23:44

七、感觉似乎创建有点问题,于是重新创建(后来才知道重新创建并不会自动删除资料库中的已有system信息,所以之前必须要删除资料库中现有的数据!否则会报错)


C:\Documents and Settings\Administrator>emca -repos recreate


EMCA 开始于 2011-9-22 21:26:52

EM Configuration Assistant 10.2.0.1.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。


输入以下信息:

数据库 SID: qjftest

监听程序端口号: 1521

SYS 用户的口令:

SYSMAN 用户的口令:

SYSMAN 用户的口令:

是否继续? [yes(Y)/no(N)]: y

2011-9-22 21:31:57 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftest\

emca_2011-09-22_09-26-52-下午.log。

2011-9-22 21:31:57 oracle.sysman.emcp.EMReposConfig dropRepository

信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...

2011-9-22 21:31:59 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功删除资料档案库

2011-9-22 21:32:00 oracle.sysman.emcp.EMReposConfig createRepository

信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...

2011-9-22 21:32:00 oracle.sysman.emcp.EMReposConfig invoke

严重: 创建资料档案库时出错

2011-9-22 21:32:00 oracle.sysman.emcp.EMReposConfig invoke

信息: 有关详细资料, 请参阅 d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftes

t\emca_repos_create_<日期>.log 中的日志文件。

2011-9-22 21:32:00 oracle.sysman.emcp.EMConfig perform

严重: 创建资料档案库时出错

有关详细资料, 请参阅 d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftest\emca

_2011-09-22_09-26-52-下午.log 中的日志文件。

无法完成配置。 有关详细资料, 请参阅 d:\oracle\product\10.2.0\db_1\cfgtoollogs\em

ca\qjftest\emca_2011-09-22_09-26-52-下午.log 中的日志文件。

八、看到报错,打开d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftest\emca日志,发现错误:

ORA-20001: SYSMAN already exists..

提示system存在问题,于是:

首先执行emca -repos drop,删除em资料库中的信息

其次,删除System的相关信息:

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;


九、然后重新执行创建资料库:

C:\Documents and Settings\Administrator>emca -repos recreate

执行成功


十、由于在配置em的dbconsole的时候,需要用到dbsnmp账号,在默认情况下,该账户是被锁定的,所以要首先解锁该用户:

select username from dba_users where lock_date is null;

发现dbsnmp账号已经被锁定,解锁

alter user dbsnmp account unlock;

alter user dbsnmp identified by password;

十一、随后配置dbconsole

C:\Documents and Settings\Administrator>emca -config dbcontrol db

EMCA 开始于 2011-9-22 21:57:32

EM Configuration Assistant 10.2.0.1.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。


输入以下信息:

数据库 SID: qjftest

监听程序端口号: 1521

SYS 用户的口令:

DBSNMP 用户的口令:

SYSMAN 用户的口令:

SYSMAN 用户的口令: 通知的电子邮件地址 (可选):

通知的发件 (SMTP) 服务器 (可选):

-----------------------------------------------------------------


已指定以下设置


数据库 ORACLE_HOME ................ d:\oracle\product\10.2.0\db_1


数据库主机名 ................ 10.10.10.1

监听程序端口号 ................ 1521

数据库 SID ................ qjftest

通知的电子邮件地址 ...............

通知的发件 (SMTP) 服务器 ...............


-----------------------------------------------------------------

是否继续? [yes(Y)/no(N)]: y

2011-9-22 21:57:55 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 d:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\qjftest\

emca_2011-09-22_09-57-32-下午.log。

2011-9-22 21:58:02 oracle.sysman.emcp.util.DBControlUtil startOMS

信息: 正在启动 Database Control (此操作可能需要一段时间)...

2011-9-22 21:58:52 oracle.sysman.emcp.EMDBPostConfig performConfiguration

信息: 已成功启动 Database Control

2011-9-22 21:58:53 oracle.sysman.emcp.EMDBPostConfig performConfiguration

警告: 无法创建 Database Control 快捷方式

2011-9-22 21:58:53 oracle.sysman.emcp.EMDBPostConfig performConfiguration

信息: >>>>>>>>>>> Database Control URL 为http://10.10.10.1:1158/em<<<<<<<<<<<

已成功完成 Enterprise Manager 的配置

EMCA 结束于 2011-9-22 21:58:53

十二、按照该地址进行输入,则发现存在问题,无法找到实例,如下:

“Enterprise Manager 无法连接到数据库实例”

十三、怀疑是地址的问题,因为我并没有这样的地址,所以搜索一番后发现,修改
c:\windows\system32\drivers\etc下面的host文件,可以修改对应的ip地址
即在最后面添加一条当前主机的固定IP+localhost,如“192.168.0.2  
localhost”

十四、重新删除em中的数据,再次执行配置,还是出错,10.10.10.1 一直也搞不定,最后执行

ipconfig 查看是哪个ip,发现原来是vmare对应的一个网卡,禁掉,保留使用192.168.0.2 ip的网卡后,重新配置了一遍,没有问题了

ps一:


查看数据库实例的EM端口:

在ORACLE_HOME\install\portlist.ini文件里面。默认的EM端口号是1158,登陆方式:http://IP地址:1158/em确保EM服务是启动的-->emctl start dbconsole

 如若多个数据库实例:(以下已linux系统为例,window NT系统一样的路径)

[oracle@snail]$ cd $ORACLE_HOME/install

[oracle@snail]$ more  portlist.ini

Enterprise Manager Console HTTP Port (orcl) = 1158
Enterprise Manager Agent Port (orcl) = 3938
Enterprise Manager Console HTTP Port (snail01) = 5500
Enterprise Manager Agent Port (snail01) = 1830

snail01 就是我创建的第二个数据库。EM的登陆端口:5500;http://IP地址:5500/em

ps二:

手动删除EM资料库

在Oracle的EM配置中,有时候需要删除EM资料库后再重新配置,但是在删除的时候经常会碰到用'emca -repos drop'失败的情况。这时候就需要手动来删除EM资料库。


SQL> conn / as sysdba;

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;


其中的用户、角色、同义词等是之前创建EM的时候自动创建好的,全部删掉后,EM资料库也一起消失。

全部删除后,再用如下语句来重新创建和配置一个EM资料库即可。

$ emca -config dbcontrol -db -repos create;



ps3:

简单来说:

   (1)删除当前的Database Control资料档案库 :emca -repos drop

   (2)创建新的Database Control 资料库:emca -repos create

   (3)配置部署Database Control 资料库:emca -config dbcontrol db

     只有在此步完成之后,才能在【控制面板】--【管理工具】--【服务】中看到,本例中为:OracleDBConsoleoracle86

   (4)查看em 的状态:emctl status dbconsole