在本地搭了一套Oracle环境,首先安装数据库的时候顺带了EM,结果安装好之后想修改监听器的端口,把原本15521的端口换成别的,结果
在本地搭了一套Oracle环境,首先安装数据库的时候顺带了EM,结果安装好之后想修改监听器的端口,把原本15521的端口换成别的,结果在目录中修改了几个参数文件,EM竟然直接起不来了。最后自己分析了,其实有好几种思路来完成密码的修改。
一种是直接删除EM,然后重建,可以使用emca -deconfig dbcontrol db -repos drop来完成删除,然后通过emca -config dbcontrol db -repos create来重新创建EM,
还有一种方式可以通过图形界面来完成,这种方式更加直观清晰。
还有一种最麻烦,也算最笨的办法就是删除数据库,重建数据库,不选择EM安装,然后等数据库重建之后手动安装EM。
因为尝试使用第一种方法的时候等待的时间还挺长,就选择了第三种方法,结果在新建EM的时候碰到了一些问题。看似简单的一个工作其实还是有不少的细节问题需要注意,自己在上面也着实花了不少的时间。
首先是再10g环境中通过emca -config dbcontrol db -repos create来新建EM的问题。
10g中的EM相对比较简单,如果新建由于种种原因失败,,重新创建的时候,很可能sysman用户没有删除,还存在一些role和public synonym.
不过相对来说,这些问题都是有规律可循,基本按照下面的方法,对于10gEM的配置算是如虎添翼,清理的干干净净,重装过程就很顺利。
drop user sysman cascade;
drop user MGMT_VIEW cascade;
drop role MGMT_USER;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;
然后重新配置,使用 emca -config dbcontrol db -repos create
但是11g中的EM采用同样的方法就碰到不少的问题。
首先从日志中看到了下面几个错误。
Apr 6, 2015 9:33:45 PM oracle.sysman.emcp.util.GeneralUtil initSQLEngineLoacly
CONFIG: ORA-28000: the account is locked
CONFIG: ORA-20001: SYSMAN already exists..
ORA-06512: at line 17
进一步查看日志,发现是由于DBSNMP被锁定导致,sysman默认创建导致。解锁DBSNMP,删除sysman,然后采用10g中的清理方法,结果又碰到了另外的错误。
CREATE PUBLIC SYNONYM MGMT_AVAILABILITY FOR MGMT_AVAILABILITY
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
从这个可以看出,10g和11g还是有一些区别。
清理了public synonoym MGMT_AVAILABILITY ,重新安装EM还是失败,这个时候又报了另外一个MGMT的同义词错误。
最后通过select *from dba_synonyms where synonym_name like 'MGM%' 来查看关联的MGM相关的public synonym,发现竟然有差不多300多个public synonym,这些public synonym是无法通过drop user sysman cascade来删除的,只能指定删除。
从这个细节可以看出,10g,11g的EM中的一些配置细节还是差别很大。
删除了MGMT_相关的公共同义词之后,本以为可以顺顺利利完成,结果又抛出了SMP_EMD_AVAIL_OBJ的问题。
CREATE PUBLIC SYNONYM SMP_EMD_AVAIL_OBJ FOR SMP_EMD_AVAIL_OBJ
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
看啦问题真是层出不穷啊,最后进一步改进,采用这个sql语句来查看有哪些公共同义词在sysman上斗殴给它清理掉。
select 'DROP '||OWNER||' SYNONYM '||SYNONYM_NAME||';' from dba_synonyms where TABLE_owner='SYSMAN';
发现是将近20个这样的public synonym
再次清理,就顺顺利利完成了EM的安装。
但是通过浏览器想查看的时候发现默认使用的https协议,在本地还有远程都遇到了一些证书和安全的问题,因为是学习使用,采用http方式更加方便。可以使用unsecure方式来解决。
[ora11g@oel1 ~]$ emctl unsecure dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://oel1.oracle.com:5500/em/console/aboutApplication
Configuring DBConsole for HTTP... Done.
DBCONSOLE successfully stopped... Done.
Agent is already stopped... Done.
Unsecuring dbconsole... Started.
DBConsole is now unsecured... Done.
Unsecuring dbconsole... Sucessful.
DBCONSOLE successfully restarted... Done.
通过截图来看看10g和11g中EM的差别和改进之处。
11g中的功能菜单明显比10g要多,而且更加细致,针对性更强,想data movement这个版块在10g中式放在maintenance这个部分里面的,在11g就单独抽出了一个模块,可见在11g中这个部分也得到了增加和更多的关注。
11g新增的SPA,SPM在“software and Support"这个部分单独列出,其它的功能点也确实丰富了不少。
本文永久更新链接地址: