oralce 10g 安装后 em提示"数据库状态当前不可用可能是因为数据库的状态为装载或不装载"

这个问题 困扰了一下午。在网上找了半天终于找到解决办法。特将找到的解决方法记录下来!

 

 成功装完Oracle10g ,众所周知,10g采用的是B/S架构的企业管理器,用浏览器打开http://localhost/:5500/em,却提示:“数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。……”的提示,点"启动"并输入主机名等一大堆后,又提示:ORA-28000: the account is locked ,数据库登不上,网上找了很多解决方式,尝试了各种方式,终于解决了。

   我这是由于sysman,dbsnmp这两个用户lock了,先对他们进行lock,并修改密码,便可成功登录。

   打开cmd的dos命令控制台

   首先,修改sysman用户:

        1.进入sqlplus:sqlplus

        2.输入用户名密码登录:直接在用户名输入"sys as sysdba",密码可以不输。

        3.看到Connected to:……后说明已经成功登录

        4.开始修改sysman的密码:alter user sysman identified by xxx;

                      注意:一、"xxx"代表sysman用户的新密码; 二、 成功后会提示:User altered.

        5.对sysman进行解锁:alter user sysman account unlock;

                      注意:成功后提示:User altered.

        6.尝试用新密码连接数据库:conn sysman/xxx@orcl;

                      注意:一、成功后提示:Connected. 二、"xxx"代表新密码,"orcl"代表所要连接的数据库实例名

        7.修改emoms.properties文件:

            a. 进入oracle安装目录下的文件夹,我装在c盘,所以是"C:\oracle\product\10.1.0\Db_1\BEAR_orcl\sysman\config",

            b. 进入后,找到emoms.properties文件,先对此文件进行备份,以防万一,万一什么呢,大家应该都知道,哈

            c. 用记事本或其他编辑器打开,修改2个地方:

                     oracle.sysman.eml.mntr.emdRepPwd=01169917e1bb79da,红色部分改为你所修改的新密码,即xxx

                     oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE,红色部分改为false

   其次,修改dbsnmp用户,修改方式跟上面一样,只是有所小区别:

        前几步是一样的,如果你没退出,就直接第4步开始吧

        4.开始修改dbsnmp的密码:alter user dbsnmp identified by xxx;

                      注意:一、"xxx"代表dbsnmp用户的新密码; 二、 成功后会提示:User altered.

        5.对dbsnmp进行解锁:alter user dbsnmp account unlock;

                      注意:成功后提示:User altered.

        6.尝试用新密码连接数据库:conn dbsnmp/xxx@orcl;

                      注意:一、成功后提示:Connected. 二、"xxx"代表新密码,"orcl"代表所要连接的数据库实例名

        7.修改targets.xml文件:

            a. 进入oracle安装目录下的文件夹,我装在c盘,所以是"C:\oracle\product\10.1.0\Db_1\BEAR_orcl\sysman\emd",

            b. 进入后,找到targets.xml文件,强调一遍,还是要注意备份           

            c. 用记事本或其他编辑器打开,修改1个地方:

                     <Property NAME="password" VALUE="01169917e1bb79da" ENCRYPTED="TRUE"/>

                     同样,前者改为xxx,后者改为false
   好了,修改完了,到服务里将OracleDBConsoleorcl项重启一下就可以了,别说找不到这个项,实例名不同,后面跟的也不同,哈哈

   刷新一下,提示用户名/密码,说明你成功了。

——————————————————————————————————————————————————

 在使用ORACLE 10g时,使用命令行(sqlplus)操作完全正常,但使用web界面时总是出现错误:"数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。单击   '启动'   可以获得当前状态并打开数据库。如果无法打开数据库,   单击   '执行恢复'   可执行相应的恢复操作。 ",但是单击启动,却又提示“account is locked”,在此激活依然如此。
      注:安装完时EM能够正常访问。自从客户改了sys密码后,通过WEB登上EM,英文版本报"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;

    解锁用户:
    SQL> alter user sysman account unlock;

    确认密码已修改:
    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

在此登录http://loclahost:5500/em,提示让输入用户名密码。
至此,恢复正常。

————————————————————————————————

用到的控制台命令:

查看侦听 lsnrctl —>查看服务 lsnrctl>services  ; 启动服务 LSNRCTL> start

检查sid:orcl的监听配置 tnsping orcle

查看oracle存在例程及服务: sqlplus>select instance_name,status from v$instance;

 

posted @ 2011-06-25 23:16  Aquarius' Web Tech  阅读(1982)  评论(2编辑  收藏  举报