首页 » MySQL, ORACLE [C]系列 » Troubleshooting DB Logon failed ORA-01017 when Service has 2 instances

Troubleshooting DB Logon failed ORA-01017 when Service has 2 instances

一套oracle 12c physical casecade dataguard 多租户环境,a–>b –>c, 用户在登录B standby数据库时间隔性提示ora-1017密码错误, 并且发现只是其中一个Pdb 存在这样的问题,如连续多次登录中其中有部分登录成功。

分析

如果是持续登录失败,我们可以检查:
>sec_case_sensitive_logon参数
>sqlnet.ora
>dba_users.password_version
>刷新shared_pool 重试
>重置密码
>密码大小写
>密码中存储特殊符号

间断性的密码失败:
tns连接串中alias name是否有重复,解析到了不同的db,  我们使用ezconnect 方式问题依旧; 创建新用户尝试问题依旧;在primary db尝试不存在相同问题。 数据库本机登录问题依旧; 使用ip 方式不存在域名解析问题。 启用errorstack 跟踪:

alter system set events '1017 trace name ERRORSTACK level 3';

复现报错,实例alert log中并没有报错信息,检查发现本机存在多个数据库实例, 检查listener service状态

Note:
注意一个service下有两个实例,这也就是问题根本原因,因为同一主机不同实例中有2个同名PDB name, 默认的与db 同名的service被注册在两个实例下,数据库登录使用该service name时就有可能分发到了不同的实例出现随机性密码错误问题,还好报错,如果密码刚好相同,而操作错误了数据库内的数据后果可能就更加严重。

解决方法:
创建自定义service 或规避同一主机相同pdb name问题。

增加检查项:
lsnrctl status中service has 实例数大于1的告警。

注:当存在静态注册时会存有2个相同SID的instance, 其中静态注册为unknown

打赏

目前这篇文章还没有评论(Rss)

我要评论