Oracle中Enterprise Manager的配置和常用命令
2016-02-22李留亮
◎ 刘 波,李留亮
(中粮工程科技(郑州)有限公司,河南 郑州 450053)
在某粮库管理信息系统的开发过程中,Oracle数据库常会因各种情况出现Enterprise Manager配置失败的问题。本文主要论述该问题的解决办法和在Enterprise Manager配置过程中常用的命令。
1 Enterprise Manager配置失败的解决办法
在本项目中,服务器的操作系统为Windows 2008 X64 Server SP2标准版,数据库的版本为Oracle 10.2.0.1.0。在对数据库的安装和管理过程中经常会出现以下错误信息:
“由于以下错误,Enterprise Manager配置失败
启动Database Control时出错
有关详细资料,请参阅D:oracleproduct10.2.0db_1cfgtoollogsdbcaoradbemConfig.log中的日志文件
您可以以后通过手动运行D:oracleproduct10.2.0db_1inemca脚本,重新使用Enterprise Manager配置此数据库。”
查询关于此问题的解决,并多次给Oracle技术支持打电话沟通,确定是由于Enterprise Manager Database Control组件和CA证书授权造成的,当安装此版本的数据库的时间超过CA证书的授权日期时都会出现该问题,官方的解决方案是打补丁Patch 8350262。具体操作步骤如下。
1.1 检查创建的数据库是否完全打开
首先要检查创建的数据库是否完全打开,步骤如下:
(1)执行以下命令: sqlplus / as sysdba,会看到如下显示:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
如果能登陆数据库,再执行以下命令:startup,会看到下面的显示:
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
(2)再执行以下命令:select * from dual; 会看到下面的显示:
SQL> select * from dual;
D
X
此时表示数据库能正常访问。
1.2 关闭防火墙
要关闭电脑上的防火墙,包括Windows防火墙和安装的其他防火墙。
1.3 停止服务
然后要停止所有服务,步骤如下:
(1)运行以下命令:emctl stop dbconsole
(2)如果报错或显示服务未运行,在windows任务管理器中找到进程“java.exe”,选定该进程,并点“结束进程”按钮来终止该进程。
按名称排序,如果有多个java.exe,则全部要终止。
1.4 重建Em repository
重建Em repository的步骤如下:
(1)emca -deconfig dbcontrol db
不管成功还是失败,都可以。如果是失败可能表示在之前配置信息已被删除。
(2)emca -repos drop
会看到以下信息:
EMCA 开始于 2013-5-12 11:49:46
EM Configuration Assistant, 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
再输入以下信息:
数据库 SID:(输入你要创建数据库的SID)
监听程序端口号:(输入监听程序的端口号1521)
SYS 用户的口令:(输入你想创建的SYS用户的口令)
SYSMAN 用户的口令:(输入你想创建的SYSMAN用户的口令)
是否继续? [是(Y)/否(N)]:输入Y
2013-5-12 11:51:01 oracle.sysman.emcp. EMConfig perform
信息:正在将此操作记录到 C:appandyzhangcfgtoollogsemcaTJMISemca_2013_05_111_49_43.log。
2013-5-12 11:51:03oracle.sysman.emcp.ParamsManager checkListenerStatusForDBCorol
警告:初始化 SQL 连接时出错。无法执行SQL操作
2013-5-12 11:51:03 oracle.sysman.emcp.EMReposConfig invoke
信息:正在删除EM资料档案库(此操作可能需要一段时间)...
2013-5-12 11:51:22 oracle.sysman.emcp.EMReposConfig invoke
信息:已成功删除资料档案库
已成功完成 Enterprise Manager 的配置
EMCA结束于2013-5-12 11:51:22
(3)检查以下2个目录及文件是否存在,如果存在进行手动删除,以防止残留文件:
%ORACLE_HOME%oc4jj2ee下是否有OC4J_DBConsole_localhost_TJMIS目录
%ORACLE_HOME%下是否有MISServer2_TJMIS目录
1.5 执行emca命令
(1)执行以下命令:emca -repos create,会看到以下信息:
EMCA开始于2013-5-12 11:52:15
EM Configuration Assistant, 10.2.0.1.0 正式版
版权所有(c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID:(输入你要创建数据库的SID)
监听程序端口号:(输入监听程序的端口号1521)
SYS 用户的口令:(输入你想创建的SYS用户的口令)
SYSMAN 用户的口令:(输入你想创建的SYSMAN用户的口令)
是否继续? [是(Y)/否(N)]:输入Y
2013-5-12 11:52:29 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到C:appandyzhangcfgtoollogsemcaTJMISemca_2013_05_12_11_52_14.log。
2013-5-12 11:52:30 oracle.sysman.emcp.EMReposConfig createRepository
信息:正在创建 EM 资料档案库(此操作可能需要一段时间)...
2013-5-12 12:02:15 oracle.sysman.emcp.EMReposConfig invoke
信息:已成功创建资料档案库
已成功完成Enterprise Manager的配置
EMCA 结束于 2013-5-12 12:02:16
(2)执行以下命令:emca -config dbcontrol db
这步很关键,因此命令一定要执行成功,并且会看到以下信息:
EMCA开始于2013-5-12 12:02:49
EM Configuration Assistant, 10.2.0.1.0正式版
版权所有(c)2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库SID:(输入你要创建数据库的SID)
监听程序端口号:(输入监听程序的端口号1521)
SYS 用户的口令:(输入你想创建的SYS用户的口令)
DBSNMP 用户的口令:(输入你想创建的DBSNMP用户的口令)
SYSMAN 用户的口令:(输入你想创建的SYSMAN用户的口令)
通知的电子邮件地址(可选):
通知的发件(SMTP)服务器(可选):
已指定以下设置
数据库ORACLE_HOME ................ D:oracleproduct10.2.0db_1
本地主机名 ................ localhost
监听程序 ORACLE_HOME ................ D:oracleproduct10.2.0db_1
监听程序端口号 ................ 1521
数据库 SID ................ TJMIS
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
是否继续? [是(Y)/否(N)]:输入Y
2013-5-12 12:03:12 oracle.sysman.emcp.EMConfig perform
信息:正在将此操作记录到D:oracleproduct10.2.0db_1cfgtoollogsemcaTJMISemca_2013_05_12_02_48.log。
2013-5-12 12:03:28 oracle.sysman.emcp.EMRepos Config uploadConfigDataToRepository
信息:正在将配置数据上载到 EM 资料档案库 (此操作可能需要一段时间)...
2013-5-12 12:04:57 oracle.sysman.emcp.EMReposConfig invoke
信息:已成功上载配置数据
2013-5-12 12:05:20 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib
信息:软件库已配置成功。
2013-5-12 12:05:20 oracle.sysman.emcp.EMDBPost Config configureSoftwareLibrary
信息:正在部署预配档案...
2013-5-12 12:07:20 oracle.sysman.emcp.EMDBPost Config configureSoftwareLibrary
信息:预配档案部署成功。
2013-5-12 12:07:20 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息:正在保护 Database Control (此操作可能需要一段时间)...
2013-5-12 12:07:44 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息:已成功保护 Database Control。
2013-5-12 12:07:44 oracle.sysman.emcp.util.DBControlUtil startOMS
信息:正在启动 Database Control (此操作可能需要一段时间)...
2013-5-12 12:12:03 oracle.sysman.emcp.EMDBPost Config performConfiguration
信息:已成功启动 Database Control
2013-5-12 12:12:07 oracle.sysman.emcp.EMDBPost Config performConfiguration
信息 ! : >>>>>>> Database Control URL 为 https://localhost:1158/em <<<<<<<<
2013-5-12 12:12:30 oracle.sysman.emcp.EMDBPost Config invoke
警告:
************************ WARNING************************
管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。
加密密钥已放置在文件D:oracleproduct10.2.0db_1localhost_TJMIS/sysman/config/emkey.ora 中。请务必备份此文件,因为如果此文件丢失,则加密数据将不可用。
***********************************************************
已成功完成Enterprise Manager的配置
EMCA结束于2013-5-12 12:12:30
1.6 检查是否安装成功
检查是否安装成功,查看%ORACLE_HOME%oc4jj2ee下是否有OC4J_DBConsole_localhost_TJMIS目录,执行以下命令:
cd %ORACLE_HOME%oc4jj2ee
dir OC4J_DBConsole_localhost_TJMIS
应该看到以下信息:
驱动器C中的卷是System
卷的序列号是3C9A-7D79
D:oracleproduct10.2.0db_1oc4jj2eeOC4J_DBConsole_localhost_ TJMIS 的目录
2013-05-12 12:05
2013-05-12 12:05
2013-05-12 12:05
2013-05-12 12:08
2013-05-12 12:07
2013-05-12 12:04
2013-05-12 12:08
2013-05-12 12:05
2013-05-12 12:08
2013-05-12 12:08
0个文件 0字节
10个目录167,630,336,000可用字节
1.7 安装Patch
(1)把您的补丁解压到%ORACLE_HOME%OPatch8350262目录下
(2)进入到%ORACLE_HOME%OPatch8350262目录
cd %ORACLE_HOME%OPatch8350262
执行dir命令,大概会看到以下信息:
C:appandyzhangproduct11.2.0dbhome_1OPatch8350262>dir
驱动器C中的卷是System
卷的序列号是3C9A-7D79
D:oracleproduct10.2.0db_1OPatch8350262的目录
2013-05-12&! nbsp; 12:06
2013-05-12 12:06
2013-05-12 12:06
2013-05-12 12:06
2010-10-07 02:46 1,069 killDBConsole
2010-10-07 02:46 4,640 killDBConsole.pl
2010-10-05 07:57 3,278 README.txt
3个文件 8,987字节
4个目录 167,824,171,008 可用字节
(3)先卸载您之前打过的补丁
%ORACLE_HOME%OPatchopatch rollback -id 8350262
(4)再重新安装一遍
结束java.exe进程,并执行命令:emctl stop dbconsole
然后运行:%ORACLE_HOME%OPatchopatch apply
会看到一些提示,提示安装成功,请确认,如果有错误或警告,请屏幕拷贝或抓图。
1.8 重置证书
执行以下命令:emctl secure dbconsole –reset
会看到以下显示:
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2007 Oracle Corporation. All rights reserved.
https://myhost:5501/em/console/aboutApplication
Enter Enterprise Manager Root Password :
DBCONSOLE already stopped... Done.
Agent is already stopped... Done.
Securing dbconsole... Started.
Checking Repository... Done.
Checking Em Key... Done.
Checking Repository for an existing Enterprise Manager Root Key...
WARNING! An Enterprise Manager Root Key already exists in the Repository. This operation will replace your Enterprise Manager Root Key.
All existing Agents that use HTTPS will need to be reconfigured if you proceed. Do you wish to continue and overwrite your Root Key
(Y/N) ? 输入Y
Are you sure ? Reset of the Enterprise Manager Root Key will mean that you will need to reconfigure each Agent that is associated with this OMS before they will be able to upload any data to it. Monitoring of Targets associated with these Agents wi! ll be unavailable until after they are reconfigured.
(Y/N) ? 输入Y
Generating Enterprise Manager Root Key (this takes a minute)... Done.Fetching Root Certificate fromthe Repository... Done.
Updating HTTPS port in emoms. properties file...Done.
Generating Java Keystore... Done.
Securing OMS ... Done.
Generating Oracle Wallet Password for Agent.... Done.
Generating wallet for Agent ... Done.
Copying the wallet for agent use... Done.
Storing agent key in repository... Done.
Storing agent key for agent ... Done.
Configuring Agent...
Configuring Agent for HTTPS in DBCONSOLE mode...Done.
EMD_URL set in /myhost/myhost/sysman/config/emd.properties
Done.
Configuring Key store.. Done.
Securing dbconsole... Sucessful.
或是:
D:oracleproduct10.2.0db_1oc4jj2ee>emctl secure dbconsole -reset
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved.
https://localhost:1158/em/console/aboutApplication
Please enter repository password:
********
DBCONSOLE successfully stopped... Done.Agent is already stopped... Done.Securing dbconsole... Started.
Please enter repository schema password:Securing dbconsole... Sucessful.
DBCONSOLE successfully restarted... Done.
1.9 启动Database Control服务
执行以下命令,启动Database Control服务:emctl start dbconsole
会看到以下显示:
D:oracleproduct10.2.0db_1oc4jj2ee>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation. All rights reserved.
https://localhost:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ...OracleDBConsoleorcl
服务正在启动..................
OracleDBConsoleorcl 服务已经启动成功。
1.10 确认是否成功
重新确认em页面是否可以访问:
https://localhost:1158/em/ 或者http://localhost:1158/em/
这时可以发现Enterprise Manager已经配置成功,可进入OEM。
2 Enterprise Manager配置中常用的命令
通过解决Enterprise Manager配置失败的问题,可以总结出在Enterprise Manager配置时常用的命令,如下:
emca -config dbcontrol db -repos create 创建em资料库,并配制Database Control
emca -deconfig dbcontrol db -repos drop 取消配置Database Control,并删除em资料库
emca -repos create 创建一个EM资料库
emca -repos recreate 重建一个EM资料库
emca -repos drop 删除一个EM资料库
emca -config dbcontrol db 配置数据库的 Database Control
emca -deconfig dbcontrol db 删除数据库的 Database Control配置
emctl start dbconsole 先设置ORACLE_SID环境变量后,启动EM console服务
emctl stop dbconsole 先设置ORACLE_SID环境变量后,停止EM console服务
emctl status dbconsole 先设置ORACLE_SID环境变量后,查看EM console服务的状态
3 结语
以上方法虽然操作较复杂,但最终可解决该问题。在用该方法配置时,输入的命令参数不正确时常会报错,且发生错误时要根据错误提示和日志分析错误原因,再根据错误原因解决错误,才能彻底解决问题。
参考文献:
[1]路 川,胡欣杰.Oracle 10g宝典[M].北京:电子工业出版社,2010.