环境:OEL4.8
Oracle Database version:10.2.0.1
问题描述:
有A、B两台机器,在A机上安装了GC 的Repository Database,在B机上安装GC,输入Repository Database信息之后,下一步时总提示用户名密码错误。
但是在A机上,都可以登录。
问题排查:
1、首先,在B机上tnanames.ora文件中添加了Repository Database的信息,通过tnsping命令没有问题
[oracle@secdb2 Disk1]$ tnsping ocmgc
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 10-SEP-2014 22:23:09
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=secdb1)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=OCMGC)))
OK (0 msec)
可以看到,能够通过,说明网络和监听正常运行。
2、 然后通过远程使用sys用户登录
[oracle@secdb2 Disk1]$ sqlplus system/oracle@ocmgc as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 10 21:54:35 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
而使用system用户却可以登录。
3、在A机上进行排查
于是在A机上进行登录都没有问题
由于确定不是由于sys用户密码的问题导致,于是想到参数remote_login_passwordfile,该参数为none时停用
密码文件,不允许远程登录。为exclusive模式时启用口令文件。然后查看该参数时设置正确为exclusive模式,于是通过如下SQL语句查看
select * from v$pwfile_users;
结果为空,说明密码文件不正确。于是重建密码文件。
4、重建密码文件
首先关闭数据库
进入到$ORACLE_HOME/dbs目录下
orapwd file=orapw$ORACLE_SID password=oracle entries=30 force=y
启动数据库。
再执行select * from v$pwfile_users;
然后就可以查询到结果。再次在B机上尝试安装,安装通过。
总结:当出现用户无法登录的问题,提示ORA-01017、ORA-01031时考虑以下几个部分
1、sqlnet.ora文件sqlnet_authentication_service参数是否正确默认为none
2、密码文件是否正确创建,可以在$ORACLE_HOME/dbs目录下查看或者重建
3、参数remote_login_passwordfile参数设置是否正确(应该为exclusive)