ORACLE 11G 无法连接到数据库实例故障排除

时间:2024-04-07 17:37:54

解决方案1步

症状:数据库是open状态,也可以从sqlplus连接到数据库,从web连接数据库时,通过网址http://IP:1158/em/console,发现Database Instance, Listener, Agent Connect to Instance都是正常的,但是点击‘Database'不能进入到登陆页面,页面上有错误提示“Enterprise Manager is not able to connect to the database instance. The state of the components are listed below.”,如下图所示:

ORACLE 11G 无法连接到数据库实例故障排除

解决方法:

1)通过sqlplus连接入数据库,查看下面几个用户的状态SYSTEM,SYSMAN,MGMT_VIEW,DBSNMP,SYS,它们应该都是open的,造成上面的问题是有用户为expired或locked。

sql>select username,account_status from dba_users where username='SYSTEM';

sql>select username,account_status from dba_users where username='SYSMAN';

sql>select username,account_status from dba_users where username='MGMT_VIEW';

sql>select username,account_status from dba_users where username='DBSNMP';

sql>select username,account_status from dba_users where username='SYS';

被lock的帐户通过命令sql>alter user username account unlock;来解锁。

被expired的帐户需要重置密码,对于dbsnmp,sysman帐户,重置密码比较麻烦,请按下列方法操作。

重置dbsnmp帐户密码:
1.sql>alter user dbsnmp identified by dbsnmp;
2.找到targets.xml文件,通常在$Oracle_HOME\hostname_sid\sysman\emd目录下,修改下面的值:
<Property NAME=”password” VALUE=”<[Your encrypted password]>” ENCRYPTED=”FALSE”/>
重起 dbconsole service.

重置sysman帐户密码:
1. sql>alter user sysman identified by sysman;
2. 修改 $ORACLE_HOME\hostname_sid\sysman\config\emoms.properties.将下面的两个参数修改一下,其中[Your encrypted password]
为当前设置的密码,明文的就可以了。
oracle.sysman.eml.mntr.emdRepPwd= [Your encrypted password]
oracle.sysman.eml.mntr.emdRepPwdEncrypted=False
Restart dbconsole service.

但是,有些用户会发现,这样同样解决不了问题,被锁定的账户解锁后马上又锁定了。造成这样问题的原因是因为修改账户sysman的密码,然而EM端未进行跟新导致,所以一打开EM,EM会按照旧密码疯狂的登录实例,以致错误密码达到用户配置文件中的限制上线,而把用户锁了,解决方法是更改dbconsole中的sysman密码,修改步骤如下:

1 先关闭dbconsole :emctl stop dbconsole

2修改密码:emctl setpasspd dbconsole 把SYSMAN的最新密码更新到DBCONSOLE中

在DBCONSOLE的配置文件 :$ORACLE_HOME\hostname_instance_name\sysman\config\emoms.properties中,密码的项目是oracle.sysman.eml.mntr.emdRepPwdSeed=6685438242677443598,此时不能直接修改,只能使用上述命令来更新SYSMAN的密码

3 打开的并console:emctl start dbconsole

再次进入EM,应该就可以解决问题了

解决方案2步

emctl stop dbconsole ;命令无法使用 oracle_sid not defined

 

[[email protected] bin]$ set oracle_sid=orcl
[[email protected] bin]$ ./emca -config dbcontrol db -repos recreate

EMCA 开始于 2011-12-22 15:08:10
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。

输入以下信息:
数据库 SID: orcl
已为数据库 orcl 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 orcl
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: y
监听程序端口号: 1521
SYS 用户的口令:  
DBSNMP 用户的口令:  
SYSMAN 用户的口令: 1
通知的电子邮件地址 (可选): 
通知的发件 (SMTP) 服务器 (可选): 
-----------------------------------------------------------------

已指定以下设置

数据库 ORACLE_HOME ................ /opt/app/oracle/product/10.2.0/db_1

数据库主机名 ................ bogon.localdomain
监听程序端口号 ................ 1521
数据库 SID ................ orcl
通知的电子邮件地址 ............... 
通知的发件 (SMTP) 服务器 ...............

-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: y
2011-12-22 15:08:49 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 /opt/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/orcl/emca_2011-12-22_03-08-10-下午.log。
2011-12-22 15:08:50 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2011-12-22 15:08:53 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2011-12-22 15:17:03 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
2011-12-22 15:17:03 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2011-12-22 15:18:16 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
2011-12-22 15:18:20 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2011-12-22 15:19:58 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2011-12-22 15:19:58 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 http://bogon.localdomain:1158/em <<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2011-12-22 15:19:58

 

ORACLE 11G 无法连接到数据库实例故障排除

之前我通过em更改了sys,system……几个帐号的密码,于是出现了上面的错误。

 

解决方法:

(红色的字表示我输入的,那几个用户口令输入时是看不见的。)

1.         开始——运行——cmd  参照下面

 

C:\>emca -repos drop

 

EMCA 开始于 2010-2-16 23:51:02

EM Configuration Assistant, 11.1.0.5.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。

 

输入以下信息:

数据库 SID: orcl

监听程序端口号: 1521

SYS 用户的口令:oracle

SYSMAN 用户的口令: oracle

SYSMAN 用户的口令: oracle

是否继续? [(Y)/(N)]: y

2010-2-16 23:51:47 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_16_23_51_02.log

2010-2-16 23:51:48 oracle.sysman.emcp.ParamsManager checkListenerStatusForDBCont

rol

警告: 初始化 SQL 连接时出错。无法执行 SQL 操作

2010-2-16 23:51:48 oracle.sysman.emcp.EMReposConfig invoke

信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...

2010-2-16 23:53:38 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功删除资料档案库

已成功完成 Enterprise Manager 的配置

EMCA 结束于 2010-2-16 23:53:38

 

 

C:\>emca -repos create

 

EMCA 开始于 2010-2-16 23:54:28

EM Configuration Assistant, 11.1.0.5.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。

 

输入以下信息:

数据库 SID: orcl

监听程序端口号: 1521

SYS 用户的口令: oracle

SYSMAN 用户的口令: oracle

SYSMAN 用户的口令: oracle

是否继续? [(Y)/(N)]: y

2010-2-16 23:55:19 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_16_23_54_28.log

2010-2-16 23:55:19 oracle.sysman.emcp.EMReposConfig createRepository

信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...

2010-2-17 0:01:29 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功创建资料档案库

已成功完成 Enterprise Manager 的配置

EMCA 结束于 2010-2-17 0:01:29

 

 

C:\>emca -config dbcontrol db

 

EMCA 开始于 2010-2-17 0:02:49

EM Configuration Assistant, 11.1.0.5.0 正式版

版权所有 (c) 2003, 2005, Oracle。保留所有权利。

 

输入以下信息:

数据库 SID: orcl

已为数据库 orcl 配置了 Database Control

您已选择配置 Database Control, 以便管理数据库 orcl

此操作将移去现有配置和默认设置, 并重新执行配置

是否继续? [(Y)/(N)]: y

监听程序端口号: 1521

SYS 用户的口令: oracle

DBSNMP 用户的口令: oracle

SYSMAN 用户的口令: oracle

SYSMAN 用户的口令: 通知的电子邮件地址 (可选):

通知的发件 (SMTP) 服务器 (可选):

-----------------------------------------------------------------

 

已指定以下设置

 

数据库 ORACLE_HOME ................ C:\app\Administrator\product\11.1.0\db_1

 

本地主机名 ................ testpc-pmb3pvmj

监听程序端口号 ................ 1521

数据库 SID ................ orcl

通知的电子邮件地址 ...............

通知的发件 (SMTP) 服务器 ...............

 

-----------------------------------------------------------------

是否继续? [(Y)/(N)]: y

2010-2-17 0:03:59 oracle.sysman.emcp.EMConfig perform

信息: 正在将此操作记录到 C:\app\Administrator\cfgtoollogs\emca\orcl\emca_2010_02

_17_00_02_49.log

2010-2-17 0:04:00 oracle.sysman.emcp.util.DBControlUtil stopOMS

信息: 正在停止 Database Control (此操作可能需要一段时间)...

2010-2-17 0:04:05 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository

信息: 正在将配置数据上载到 EM 资料档案库 (此操作可能需要一段时间)...

2010-2-17 0:04:59 oracle.sysman.emcp.EMReposConfig invoke

信息: 已成功上载配置数据

2010-2-17 0:05:15 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib

信息: 软件库已配置成功。

2010-2-17 0:05:15 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary

信息: 正在部署预配档案...

2010-2-17 0:05:22 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary

信息: 预配档案部署成功。

2010-2-17 0:05:22 oracle.sysman.emcp.util.DBControlUtil secureDBConsole

信息: 正在保护 Database Control (此操作可能需要一段时间)...

2010-2-17 0:05:34 oracle.sysman.emcp.util.DBControlUtil secureDBConsole

信息: 已成功保护 Database Control

2010-2-17 0:05:34 oracle.sysman.emcp.util.DBControlUtil startOMS

信息: 正在启动 Database Control (此操作可能需要一段时间)...

2010-2-17 0:06:24 oracle.sysman.emcp.EMDBPostConfig performConfiguration

信息: 已成功启动 Database Control

2010-2-17 0:06:24 oracle.sysman.emcp.EMDBPostConfig performConfiguration

信息: >>>>>>>>>>> Database Control URL https://testpc-pmb3pvmj:1158/em <<<<<<

<<<<< 

2010-2-17 0:06:40 oracle.sysman.emcp.EMDBPostConfig invoke

警告:

************************  WARNING  ************************

 

管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。

加***已放置在文件 C:\app\Administrator\product\11.1.0\db_1\testpc-pmb3pvmj_or

cl\sysman\config\emkey.ora 中。请务必备份此文件, 因为如果此文件丢失, 则加密数据

将不可用。

 

***********************************************************

已成功完成 Enterprise Manager 的配置

EMCA 结束于 2010-2-17 0:06:40

 

2.         查看服务中 OracleDBConsoleorcl 服务是否存在并已启动(启动类型:自动)。

 

此时访问https://testpc-pmb3pvmj:1158/em/就应该没有问题了。

如果还不行,则cmd 参照下面:

 

C:\>emctl status dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0

Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.

https://testpc-pmb3pvmj:1158/em/console/aboutApplication

Oracle Enterprise Manager 11g is running.

------------------------------------------------------------------

Logs are generated in directory C:\app\Administrator\product\11.1.0\db_1/testpc-

pmb3pvmj_orcl/sysman/log

 

注意绿色那行表示运行OK了,不行的话在cmd里启动一下Oracle Enterprise Manager服务。

 

 

启动Oracle Enterprise Manager服务的命令:emctl start dbconsole

停止Oracle Enterprise Manager服务的命令:emctl stop dbconsole

 

PS:在Windows里玩Oracle简直能让人疯,稳定性不是一般的差了。