阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-01017错误解决实例

185次阅读
没有评论

共计 1010 个字符,预计需要花费 3 分钟才能阅读完成。

事件缘由
使用 sys 账户创建了一个数据清理的存储过程,再创建一个 Oracle job 定时运行这个存储过程,用于做表数据的清理。第二天看表数据未删除,说明 job 执行有错,打算使用 sys 账号登录查看 job 运行情况,反复输入 sys 账户信息,总提示 ORA-01017,
ORA-01017 错误解决实例 
1. 尝试改 sys 用户密码,重试报错依旧。
2. 使用 sys 登录 GC,报错相同。使用普通用户登录正常。
3. 数据库服务器上使用 sqlplus sys/oracle@dep182 as sysdba 登录正常。

问题排查和原因

根据以上信息,可能有朋友已经基本了解为何有这种现象了。
1. 上述问题反映的现象是远程使用 sys 账户无法登录,数据库服务器本地使用 TNS 方式连接正常,首先排除密码错误。
2. 查看 $ORACLE_HOME/dbs,存在密码文件 orapwDEP,为了保险起见,备份旧的密码文件后,重建了密码文件,问题依旧。
3. 查询 v$pwfile_users 表记录,发现是空,
ORA-01017 错误解决实例
关于 v$pwfile_users 的描述:
V$PWFILE_USERS lists all users in the password file, and indicates whether the user has been granted the SYSDBA, SYSOPER, and SYSASM privileges.
奇怪了,明明有密码文件,为什么这显示的记录是空?
4. 回头再来看密码文件,Linux 下密码文件的命名格式是 orapw$ORACLE_SID,已存的文件名是 orapwDEP,再看下 ORACLE_SID:
ORA-01017 错误解决实例
我勒个去,ORACLE_SID 是小写的 dep,但文件却使用了大写,低级的错误。
接下来就比较简单了,重建密码文件:
orapwd file=orapwdep password=oracle entries=30
无论是远程,还是 GC,都可以正常登录了。
ORA-01017 错误解决实例

总结
1.Oracle 中有不少大小写敏感的参数设置,一定要仔细,否则就会产生各种困扰。
2.Oracle 的密码文件实际定义了拥有 sysdba 等权限用户的列表,因此远程使用普通用户访问就不会受到密码文件的限制。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137419.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1010字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中