前言:

近期处理了一起Oracle 19c集群sysbackup用户登陆随机报错ORA-01017: invalid username/password; logon denied的问题,后面分析发现是由于集群密码文件没有共享,两个节点的密码文件不一致,导致用户通过scan ip随机分发节点时,连接到了错误密码所在的节点,进而产生了ORA-01017。

问题现象:

集群sysbackup用户登陆节点随机报错ORA-01017: invalid username/password; logon denied

问题原因:

        用户进行配置sysbackup用户的操作,但由于集群密码文件没有共享,导致两个节点的密码文件不一致,在用户通过scan ip随机分发节点时,连接到了错误密码所在的节点,进而产生了ORA-01017。

问题解决:

方法一:在集群每个节点同时执行配置sysbackup的操作,确保节点密码文件一致

alter user testbackup identified by testbackup;
grant sysbackup to testbackup;

方法二:将正确节点的密码文件拷贝到其他节点,确保集群节点密码文件配置一致

scp $ORACLE_HOME/dbs/orapworcl1 node2@:$ORACLE_HOME/dbs/orapworcl2

方法三:将密码文件设置为asm共享文件

orapwd input_file='/u01/app/oracle/product/19.0.0/db_1/dbs/orapworcl1' file='+DATADG/ORCL/orapworcl' asm=y  force=y
---不需要重启数据库,密码文件会自己切换到asm路径下,可以通过GV$PASSWORDFILE_INFO进行验证

问题分析:

在节点一node1创建备份用户testbackup

create user testbackup identified by testbackup;
grant connect,resource,sysbackup to testbackup;

测试用户登陆,会出现随机登陆失败的情况

---通过scan_ip,第一次登陆成功
[oracle@node1 /u01/app/oracle/product/19.0.0/db_1/network/admin ]$ sqlplus testbackup/testbackup@orcl as sysbackup
​
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 18 17:21:28 2022
Version 19.3.0.0.0
​
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
​
​
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
​
SQL>
SQL>
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
---通过scan_ip,第二次登陆失败,报ORA-01017: invalid username/password; logon denied
[oracle@node1 /u01/app/oracle/product/19.0.0/db_1/network/admin ]$ sqlplus testbackup/testbackup@orcl as sysbackup
​
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 18 17:21:31 2022
Version 19.3.0.0.0
​
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
​
ERROR:
ORA-01017: invalid username/password; logon denied
​
Enter user-name:

查看sysbackup用户密码文件的配置

---会发现,只有节点一node1有写入TESTBACKUP这个sysbackup的用户,节点二node2没有写入sysbackup用户1* select inst_id,username,sysbackup from gv$pwfile_users
​INST_ID USERNAME                                  SYSBA
---------- -------------------------------------------------------------------------------------------------------------------------------- -----1 SYS                                              FALSE1 TESTBACKUP                                       TRUE2 SYS                                              FALSE

查看密码文件路径,可以发现密码文件都是节点本地存放

1* select * from GV$PASSWORDFILE_INFO
​INST_ID FILE_NAME              FORMAT IS_AS   CON_ID
---------- ------------------------------------------------------------ ------ ----- ----------1 /u01/app/oracle/product/19.0.0/db_1/dbs/orapworcl1    12     FALSE        02 /u01/app/oracle/product/19.0.0/db_1/dbs/orapworcl2    12     FALSE        0

测试通过节点vip访问登陆,节点一vip登陆没有报错,节点二vip登陆有报错ora-01017,这进一步验证了节点二密码文件有问题

---通过节点一vip登陆没有报错
[oracle@node1 /u01/app/oracle/product/19.0.0/db_1/network/admin ]$ rman target /
​
Recovery Manager: Release 19.0.0.0.0 - Production on Mon Jul 18 17:26:30 2022
Version 19.3.0.0.0
​
Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
​
RMAN> connect target 'testbackup/testbackup@node1-vip:1521/orcl as sysbackup'
connected to target database: ORCL (DBID=1632283697)
RMAN> exit
​
---通过节点二vip登陆报错ora-01017
[oracle@node1 /u01/app/oracle/product/19.0.0/db_1/network/admin ]$ rman target /
​
RMAN>  connect target 'testbackup/testbackup@node2-vip:1521/orcl as sysbackup';
​
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
ORA-01017: invalid username/password; logon denied
​
RMAN> exit
​

在节点二node2执行节点一配置sysbackup的操作

SQL> alter user testbackup identified by testbackup;
SQL> grant sysbackup to testbackup;
​
Grant succeeded.
​
​
SQL>  select * from gv$pwfile_users;
​INST_ID USERNAME                                  SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM ACCOUNT_STATUS           PASSWORD_PROFILE
---------- -------------------------------------------------------------------------------------------------------------------------------- ----- ----- ----- ----- ----- ----- ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
LAST_LOGIN                    LOCK_DATE EXPIRY_DA
--------------------------------------------------------------------------- --------- ---------
EXTERNAL_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AUTHENTI COM   CON_ID
-------- --- ----------2 SYS                                    TRUE  TRUE  FALSE FALSE FALSE FALSE OPEN
PASSWORD NO        02 TESTBACKUP                                  FALSE FALSE FALSE TRUE  FALSE FALSE OPEN
PASSWORD NO        0
​1 SYS                                    TRUE  TRUE  FALSE FALSE FALSE FALSE OPEN
PASSWORD NO        0
​1 TESTBACKUP                                  FALSE FALSE FALSE TRUE  FALSE FALSE OPEN
PASSWORD NO        0

再次通过节点二vip进行登陆,连接成功

RMAN> connect target 'testbackup/testbackup@node2-vip:1521/orcl as sysbackup';
​
connected to target database: ORCL (DBID=1632283697)
​
RMAN>  select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;
​
using target database control file instead of recovery catalog
​
​
CURRENT_SCHEMA
--------------------------------------------------------------------------------
SESSION_USER
--------------------------------------------------------------------------------
​
SYS
SYSBACKUPRMAN> exit

总结:

       sysbackup用户出现随机登陆失败ora-01017的原因为用户进行配置sysbackup用户的操作,但由于集群密码文件没有共享,导致两个节点的密码文件不一致,在用户通过scan ip随机分发节点时,连接到了错误密码所在的节点,进而产生了ORA-01017。
        可以通过以下方法修复问题
        方法一:在集群每个节点同时执行配置sysbackup的操作,确保节点密码文件一致。
        方法二:将正确节点的密码文件拷贝到其他节点,确保集群节点密码文件配置一致。
        方法三:将密码文件设置为asm共享文件。

Oracle 集群sysbackup用户登陆随机报错ORA-01017相关推荐

  1. k8s集群部署中etcd启动报错request sent was ignored (cluster ID mismatch: peer[c39bdec535db1fd5]=cdf818194e3a8c

    k8s集群部署中etcd启动报错处理 报错信息如下,主要报错信息有两条 原因是/var/lib/etcd/目录下缓存导致 解决方法 问题2: Error starting daemon: SELinu ...

  2. 2.oracle的安装常识,Oralce服务器,oracle集群,oracle服务介绍,用户解锁相关

     1 oracle的安装常识(oracle10g和oracle11g的版本差别): A 安装目录都不要有中文和空格 B oracle10g支持winxp 不支持win7,8和vista;Oracl ...

  3. oracle数据库报300006,Oracle归档日志所在目录时间不对Oracle集群日志时间显示错误...

    Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 前言 这个问题在18 ...

  4. linux+Oracle集群课程全面升级

    作为国内最早从事开源架构师级课程研发的公司,从2006年10月开始,荣新稳步提升,将互联网运维作为主导就业方向,并将Linux集群架构课程发展成为国内最顶级.覆盖技术最全面的Linux课程,作为荣新I ...

  5. linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...

    目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...

  6. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  7. oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...

    综述 铁道部利用Oracle9i集群数据库系统(Oracle9i RAC),顺利开展铁道部运输管理信息系统(TMIS)的"三级建库"工程--在各铁路局和铁路分局利用Oracle9i ...

  8. aix oracle集群日志,在AIX环境下实施Oracle 集群RAC的结构 文平

    <oracle大型数据库系统在AIX/unix上的实战详解>集中讨论34:在AIX环境下实施Oracle 集群RAC的结构   文平 看来能用的起IBM p服务器的用户,都能用的起RAC. ...

  9. 【RAC】Oracle集群心跳及其参数misscount/disktimeout/reboottime

    Oracle 集群心跳及其参数misscount/disktimeout/reboottime 在Oracle RAC中,可以从多个层次,多个不同的机制来检测RAC的健康状况,即可以通过心跳机制以及一 ...

  10. oracle rac ocr文件,管理oracle集群中的ocr文件

    OCR 文件及位置 ocrconfig 工具是Oracle 集群注册表的主要配置工具.可以使用此工具执行以下操作: 使用–export 选项生成OCR 的逻辑备份,并在以后使用–import 选项从这 ...

最新文章

  1. 找到那些氪金大佬,然后榨干他们丨AIの特殊技能
  2. python与办公自动化专业就业方向_Python最好的几大就业方向与岗位技能要求【行业风向】...
  3. 趣图:当我捕获Bug的时候
  4. 如何利用SQL Server的事务日志?
  5. 用命令行快速打开软件
  6. PhpStorm快捷方式
  7. 如何使用Transact-SQL进行事务处理[示例]
  8. Unity 模拟两个小球位置变化,长度也动态变化
  9. 毒(得物)APP历史购买数据抓取
  10. 数学建模 —— 评价模型
  11. matlab排序函数 下标,[转载]MATLAB中的排序函数
  12. golang 读写 xlsx 文件
  13. 【规范】万字集大成的SCHPCB设计规范和AD的使用
  14. Base64对图片进行编码解码
  15. Subsequence Weighting
  16. 记测试双十一秒杀活动的坎坷历程
  17. 那些让我印象深刻的五个bug
  18. 手把手教你用Python打造一个语音合成系统(已生成软件)
  19. uniapp 微信小程序登录方法封装
  20. 小侃设计模式(八)-装饰者模式

热门文章

  1. BlackBone工具集合:注入、hook、驱动程序
  2. fiddler使用文档
  3. 手把手教你做短视频去水印微信小程序(4-解析结果页)
  4. CSDN帐号管理规范
  5. 程序员面试宝典及Java面试题解析2021年
  6. 【Java教程】Java 适配器模式
  7. python-万年历
  8. WebView基本使用
  9. 免费的谷歌翻译api,Google Translate API
  10. resize2fs调整ext2\ext3\ext4文件系统的大小