解决办法(搜索自
http://bbs.chinaunix.net/):
同样适用于windows,unix,linux其他原因导致DBCONSOLE无法正常启动。
1,修改DBSNMP密码:
重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
sql>alter user dbsnmp identified by xxx;
2,删除早期DBCONSOLE创建的用户:
sql>drop role MGMT_USER;
sql>drop user MGMT_VIEW cascade;
sql>drop user sysman cascade;
3,删除早期DBCONSOLE创建的对象:
sql>drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;
sql>drop public synonym SETEMVIEWUSERCONTEXT;
4,重新创建DBCONSOLE:
windows命令提示符下输入:
1,修改DBSNMP密码:
重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
sql>alter user dbsnmp identified by xxx;
2,删除早期DBCONSOLE创建的用户:
sql>drop role MGMT_USER;
sql>drop user MGMT_VIEW cascade;
sql>drop user sysman cascade;
3,删除早期DBCONSOLE创建的对象:
sql>drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;
sql>drop public synonym SETEMVIEWUSERCONTEXT;
4,重新创建DBCONSOLE:
windows命令提示符下输入:
c:/>emca
MCA 开始于 Mon Jan 14 10:30:44 CST 2008
输入以下有关要配置的数据库的信息
监听程序端口号: 1521
数据库 SID: 根据实际
服务名: 根据实际
通知的电子邮件地址: 可不填
通知的电子邮件网关:可不填
dbsnmp 口令:刚才改的xxx(sql>alter user dbsnmp identified by xxx;)
sysman 口令:自己输一个
sys 口令:据实
MCA 开始于 Mon Jan 14 10:30:44 CST 2008
输入以下有关要配置的数据库的信息
监听程序端口号: 1521
数据库 SID: 根据实际
服务名: 根据实际
通知的电子邮件地址: 可不填
通知的电子邮件网关:可不填
dbsnmp 口令:刚才改的xxx(sql>alter user dbsnmp identified by xxx;)
sysman 口令:自己输一个
sys 口令:据实
然后输入一堆“是”系统开始自动创建。
5,创建成功后,检查状态 emctl status dbconsole。
5,创建成功后,检查状态 emctl status dbconsole。
6,服务已经启动了。如果想手动重起:
emctl stop dbconsole
emctl start dbconsole
-------------------------------------
实际上,在修改过sysman口令之后,系统就会自动将sysman锁定。每次都需要手工解锁,非常麻烦:具体问题如下:
英文版本报"The database status is currently unavailable. It is possible that the database is in mount or nomount state. Click 'Startup' to obtain the current status and open the database. If the database cannot be opened, click 'Perform Recovery' to perform an appropriate recovery operation.",中文版报“数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。单击 '启动' 可以获得当前状态并打开数据库。如果无法打开数据库, 单击 '执行恢复' 可执行相应的恢复操作。”,确认Listener与服务都是正常的,数据库的状态也是启动的,无论是重新启动dbconsole还是重新配置都不起作用。
解决方法如下:
1、停止dbconsole
[oracle@abcca2210028 ~]$ emctl stop dbconsole
查看状态,确认dbconsole已经停止
[oracle@abcca2210028 ~]$ emctl status dbconsole
2、修改sysman用户的密码,我把密码改成oracle123
[oracle@abcca2210028 ~]$ sqlplus / as sysdba
SQL> alter user sysman identified by oracle123
2 /
解锁用户
SQL> alter user sysman account unlock
2 /
确认密码已修改
SQL> conn sysman/oracle123@csc
Connected.
3、转到$ORACLE_HOME/host_sid/sysman/config目录下
a. 把emoms.properties另存为emoms.properties.old
b. 修改emoms.properties文件
找到oracle.sysman.eml.mntr.emdRepPwd=把等于后的加密字串替换成刚才更改的密码oracle123;
找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 把TRUE换成FALSE。
4、重启dbconsole,访问EM恢复正常
[oracle@abcca2210028 ~]$ emctl start dbconsole
解决方法如下:
1、停止dbconsole
[oracle@abcca2210028 ~]$ emctl stop dbconsole
查看状态,确认dbconsole已经停止
[oracle@abcca2210028 ~]$ emctl status dbconsole
2、修改sysman用户的密码,我把密码改成oracle123
[oracle@abcca2210028 ~]$ sqlplus / as sysdba
SQL> alter user sysman identified by oracle123
2 /
解锁用户
SQL> alter user sysman account unlock
2 /
确认密码已修改
SQL> conn sysman/oracle123@csc
Connected.
3、转到$ORACLE_HOME/host_sid/sysman/config目录下
a. 把emoms.properties另存为emoms.properties.old
b. 修改emoms.properties文件
找到oracle.sysman.eml.mntr.emdRepPwd=把等于后的加密字串替换成刚才更改的密码oracle123;
找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 把TRUE换成FALSE。
4、重启dbconsole,访问EM恢复正常
[oracle@abcca2210028 ~]$ emctl start dbconsole
----------------------
按如上所说操作完毕之后,dbconsole可以登录,但是无法做维护。报io的一个异常:
解决:$ emctl stop dbconsole
$emca -r
$emca -r
修复完毕,dbconsole 可以正常使用了。