Oracle 集群sysbackup用户登陆随机报错ORA-01017
前言:
近期处理了一起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相关推荐
- k8s集群部署中etcd启动报错request sent was ignored (cluster ID mismatch: peer[c39bdec535db1fd5]=cdf818194e3a8c
k8s集群部署中etcd启动报错处理 报错信息如下,主要报错信息有两条 原因是/var/lib/etcd/目录下缓存导致 解决方法 问题2: Error starting daemon: SELinu ...
- 2.oracle的安装常识,Oralce服务器,oracle集群,oracle服务介绍,用户解锁相关
1 oracle的安装常识(oracle10g和oracle11g的版本差别): A 安装目录都不要有中文和空格 B oracle10g支持winxp 不支持win7,8和vista;Oracl ...
- oracle数据库报300006,Oracle归档日志所在目录时间不对Oracle集群日志时间显示错误...
Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 前言 这个问题在18 ...
- linux+Oracle集群课程全面升级
作为国内最早从事开源架构师级课程研发的公司,从2006年10月开始,荣新稳步提升,将互联网运维作为主导就业方向,并将Linux集群架构课程发展成为国内最顶级.覆盖技术最全面的Linux课程,作为荣新I ...
- linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...
目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...
综述 铁道部利用Oracle9i集群数据库系统(Oracle9i RAC),顺利开展铁道部运输管理信息系统(TMIS)的"三级建库"工程--在各铁路局和铁路分局利用Oracle9i ...
- aix oracle集群日志,在AIX环境下实施Oracle 集群RAC的结构 文平
<oracle大型数据库系统在AIX/unix上的实战详解>集中讨论34:在AIX环境下实施Oracle 集群RAC的结构 文平 看来能用的起IBM p服务器的用户,都能用的起RAC. ...
- 【RAC】Oracle集群心跳及其参数misscount/disktimeout/reboottime
Oracle 集群心跳及其参数misscount/disktimeout/reboottime 在Oracle RAC中,可以从多个层次,多个不同的机制来检测RAC的健康状况,即可以通过心跳机制以及一 ...
- oracle rac ocr文件,管理oracle集群中的ocr文件
OCR 文件及位置 ocrconfig 工具是Oracle 集群注册表的主要配置工具.可以使用此工具执行以下操作: 使用–export 选项生成OCR 的逻辑备份,并在以后使用–import 选项从这 ...
最新文章
- 找到那些氪金大佬,然后榨干他们丨AIの特殊技能
- python与办公自动化专业就业方向_Python最好的几大就业方向与岗位技能要求【行业风向】...
- 趣图:当我捕获Bug的时候
- 如何利用SQL Server的事务日志?
- 用命令行快速打开软件
- PhpStorm快捷方式
- 如何使用Transact-SQL进行事务处理[示例]
- Unity 模拟两个小球位置变化,长度也动态变化
- 毒(得物)APP历史购买数据抓取
- 数学建模 —— 评价模型
- matlab排序函数 下标,[转载]MATLAB中的排序函数
- golang 读写 xlsx 文件
- 【规范】万字集大成的SCHPCB设计规范和AD的使用
- Base64对图片进行编码解码
- Subsequence Weighting
- 记测试双十一秒杀活动的坎坷历程
- 那些让我印象深刻的五个bug
- 手把手教你用Python打造一个语音合成系统(已生成软件)
- uniapp 微信小程序登录方法封装
- 小侃设计模式(八)-装饰者模式