Oracle 11g提示密码即将过期,修改密码后OEM不能访问
打开OEM时,提示密码还有8天即将过期,并且自动导向到修改界面,因为是一个列表,我就比较随意地快速填写了一遍新密码后确定了。等我想起要记下修改了哪些用户时,OEM界面已经打不开了。
Putty到Oracle的服务器上,切换到Oracle用户
sqlplus / as sysdba;
SQL> select username,account_status,expiry_date from dba_users;
得到
USERNAME ACCOUNT_STATUS EXPIRY_DA
—————————— ——————————– ———
MGMT_VIEW OPEN 07-AUG-14
SYS OPEN 07-AUG-14
SYSTEM OPEN 07-AUG-14
DBSNMP OPEN 07-AUG-14
SYSMAN OPEN 07-AUG-14
VPXADMIN LOCKED(TIMED) 07-AUG-14
OUTLN EXPIRED & LOCKED 15-AUG-09
FLOWS_FILES EXPIRED & LOCKED 15-AUG-09
MDSYS EXPIRED & LOCKED 15-AUG-09
ORDSYS EXPIRED & LOCKED 15-AUG-09
EXFSYS EXPIRED & LOCKED 15-AUG-09
USERNAME ACCOUNT_STATUS EXPIRY_DA
—————————— ——————————– ———
WMSYS EXPIRED & LOCKED 15-AUG-09
APPQOSSYS EXPIRED & LOCKED 15-AUG-09
APEX_030200 EXPIRED & LOCKED 15-AUG-09
OWBSYS_AUDIT EXPIRED & LOCKED 15-AUG-09
ORDDATA EXPIRED & LOCKED 15-AUG-09
CTXSYS EXPIRED & LOCKED 20-AUG-13
ANONYMOUS EXPIRED & LOCKED 15-AUG-09
XDB EXPIRED & LOCKED 15-AUG-09
ORDPLUGINS EXPIRED & LOCKED 15-AUG-09
OWBSYS EXPIRED & LOCKED 15-AUG-09
SI_INFORMTN_SCHEMA EXPIRED & LOCKED 15-AUG-09
USERNAME ACCOUNT_STATUS EXPIRY_DA
—————————— ——————————– ———
OLAPSYS EXPIRED & LOCKED 15-AUG-09
SCOTT EXPIRED & LOCKED 20-AUG-13
ORACLE_OCM EXPIRED & LOCKED 15-AUG-09
XS$NULL EXPIRED & LOCKED 15-AUG-09
MDDATA EXPIRED & LOCKED 15-AUG-09
DIP EXPIRED & LOCKED 15-AUG-09
APEX_PUBLIC_USER EXPIRED & LOCKED 15-AUG-09
SPATIAL_CSW_ADMIN_USR EXPIRED & LOCKED 15-AUG-09
SPATIAL_WFS_ADMIN_USR EXPIRED & LOCKED 15-AUG-09
31 rows selected.
因为数据库是在2013年8月份安装的,很明显,那些过期日期在09年的,都是无关的。相关的修改的应该是上面6个用户
MGMT_VIEW OPEN 07-AUG-14
SYS OPEN 07-AUG-14
SYSTEM OPEN 07-AUG-14
DBSNMP OPEN 07-AUG-14
SYSMAN OPEN 07-AUG-14
VPXADMIN LOCKED(TIMED) 07-AUG-14
其中VPXADMIN的状态应该是OEM不能访问的原因。
LOCKED(TIMED)应该是被动的锁定,默认情况是密码输入错误10次后被锁
我想原来在VMware vCenter Server Appliance中,数据库的设置是默认的VPXADMIN/oracle
会不会是因为现在的密码被我修改了所致,但是奇怪的是我用VC居然能正常登录。
于是花时间在网上搜索答案,却也没有什么结果,终于,我发现我的VC不能登录了。用http://myvcsa:5480登录上,发现Server停止了。
于是,先修改用户锁定状态
SQL> alter user VPXADMIN account unlock;
然后在VC的配置中修改密码,再Start服务,Server恢复了。用VMware vSphere Client又可以登录了。
但是这时OEM仍然是不能访问的。
在Oracle用户下用
netstat -tlnp
能看到1521端口,但是1158端口不存在
[oracle@vcdb ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://localhost:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is not running.
——————————————————————
Logs are generated in directory /usr/local/oracle/product/11.2.0/db_1/localhost_oracle/sysman/log
很明显OEM没有启动。
[oracle@vcdb ~]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://localhost:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ………………………………………………………………………………… failed.
——————————————————————
Logs are generated in directory /usr/local/oracle/product/11.2.0/db_1/localhost_oracle/sysman/log
用emctl start dbconsole启动不成功。看日志,是连不到1158端口,看来emctl只是启动UI,而不是启动EM服务。
网上搜了一下,可能和修改了DBSNMP密码有关
关于DBSNMP用户的密码的修改,根据这篇文章所言
是不能直接修改的,如果是这样的话,为什么会出现在OEM的修改界面里呢,Oracle的管理界面实在是非人性至致。
先做快照,再根据这篇文章在OEM中同步修改后的密码
先是SYSMAN密码
[oracle@vcdb emd]$ emctl setpasswd dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://localhost:1158/em/console/aboutApplication
Please enter new repository password:
Repository password successfully updated.
再同步DBSNMP密码
编辑文件$ORACLE_HOME/…/sysman/emd/targets.xml,找到下面的纪录
<Property NAME=”password” VALUE=”31fb9ff0f8fbe3dd” ENCRYPTED=”TRUE”/>
将VALUE里面的值替换为跟数据库相同的密码,TRUE改为FALSE。
然后启动DBConsole
$emctl start dbconsole
仍不成功。
换一个方式,执行
$emca -config dbcontrol db
结果也不成功。
再仔细想了想,决定先重建EM库,再修改配置。
建库成功后再修改配置
配置成功后,再试试OEM,终于可以用了。