Oracle 集群资源db_unique_name不一致导致密码文件失效

情况描述:
RAC集群环境,尝试通过tnsname连接备库.出现密码不正确的问题,问题反馈到我这里:

[oracle@rac1 ~]$ sqlplus sys/oracle@orcldg as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 21 10:57:38 2021
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied

Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied

Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied

那么已经同步好密码文件了,怎么还无法登录.
远程连上环境,自己同步了一下密码文件,依旧出现这样的问题

这里要注意的一点是
关于11g 12c以后RAC环境下密码文件管理以及参数文件管理都出现了变化:
从12c开始数据库实例密码文件信息记录在了OCR中.

具体看

Oracle RAC参数文件管理
Oracle RAC密码文件管理

然后进行排查:
查看在集群中密码文件记录位置:

[oracle@rac2 ~]$ srvctl config database -d orcl
Database unique name: orcl
Database name: orcl
Oracle home: /oracle/app/product/12.2.0/db_1
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfileorcl
Password file: +data/orcl/password/pwdorcl
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: 
Database instances: orcl1,orcl2
Configured nodes: rac1,rac2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services: 
Database is administrator managed

看了一下没有问题.
去数据库层面查看:

SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string      orcldg
cell_offloadgroup_name               string
db_file_name_convert                 string      +DATA/ORCL/DATAFILE/, +DATA/OR
                                                 CL/DATAFILE/, +DATA/ORCL/4700A
                                                 987085B3DFAE05387E5E50A8C7B/,
                                                 +DATA/ORCL/DATAFILE/, +DATA/OR
                                                 CL/B953DF0CE8892A15E05337F2A8C
                                                 0CAC4/, +DATA/ORCL/DATAFILE/
db_name                              string      orcl
db_unique_name                       string      orcldg
global_names                         boolean     FALSE

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl2
lock_name_space                      string
log_file_name_convert                string      +DATA/ORCL/ONLINELOG/, +data/o
                                                 rcl/logfile/
pdb_file_name_convert                string
processor_group_name                 string
service_names                        string      orcldg

这里就可以发现原因.db_unqiue_name被修改,导致这个资源与真实的数据库实例信息不一致,所以这个实例也就无法认知到该密码文件

解决方案:
1.仅修改数据库资源信息中的db_unique_name.

但是12c开始已经不支持使用crsctl修改资源配置.12c需要加上-unsupported

[root@rac1 ~]# crsctl modify res ora.orcl.db -attr 'DB_UNIQUE_NAME=orcldg' -unsupported
​
[oracle@rac1 ~]$ srvctl config database -d orcl
Database unique name: orcldg
Database name: orcl
Oracle home: /oracle/app/product/12.2.0/db_1
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfileorcl
Password file: +data/orcl/password/pwdorcl
...
...
Database instances: orcl1,orcl2
Configured nodes: rac1,rac2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services: 
Database is administrator managed

修改成功,但是这种方式仅仅修改了OCR中记录的db_unique_name,修改后集群数据库资源状态与真实数据库实例状态会出现不一致。

2.添加数据库资源.

[oracle@rac1 ~]$ 
srvctl add database  -d orcldg  -o /oracle/app/product/12.2.0/db_1 
-n orcl -p +DATA/ORCL/PARAMETERFILE/spfileorcl  -s open  -t immediate  -y  AUTOMATIC 

向数据库资源添加实例:

[oracle@rac1 ~]$ srvctl add instance -d orcldg -i orcl1 -n rac1
[oracle@rac1 ~]$ srvctl add instance -d orcldg -i orcl2 -n rac2

删除旧数据库资源

[root@rac1 ~]#crsctl delete res ora.orcl.db

之前关于RAC中的db_unique_name已经总结了一次.
Oracle RAC集群数据库资源状态与数据库实例状态不一致的情况

问题解决!

记录于20210121

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值