两节点12c RAC,在两节点上export ORACLE_SID再sqlplus / as sysdba都正常登录,然而Commvault通过service_name方式(sqlplus sys/password@service_name as sysdba)登录则是在节点1正常,而节点2报:

ORA-01017: invalid username/password; logon denied 

测试一:1.怀疑是密码文件错误,通守PWD 重生成文件,问题未解决
测试二:2.创建普通用户测试,发现测试帐号节点一可以通过物理IP,VIP连接,节点二不可以连
测试三:3.把节点重启,此时节点二也不可以连接 

通过查询文档,网上有一篇 现象和此类似的情况,并按照文档操作,问题得以解决:https://blogs.oracle.com/database4cn/12cchm-bugora-01017 

4、对节点2的service连接做了strace:
 strace -fo /tmp/strace_ONE.output sqlplus ONE/password@ONE_TEST
并在设置了ORA-1017的errorstack( errorstack对于这种口令错误问题没什么用,但通过它可以判断连接在哪个实例上遇到的ORA-01017错误):
alter system set events '1017 trace name ERRORSTACK level 3';

然而重现问题之后,两实例上均无errorstack trace生成,alert log中也没有ORA-01017的记录。
故此怀疑报错的实例并非是这两个。
5、通过strace输出发现走了nameserver。但客户并没用到GNS解析,且只使用vip连接。建议客户将/etc/resolv.conf中的nameserver行注释掉看看。注释掉之后问题依旧,但从strace上已可以完全确定ORA-01017报错还是发生在本地库上。
6、回想起一开始检查listener status输出时曾发现如下可疑情况:
$lsnrctl status
... 
Service "ONE" has 2 instance(s).
 Instance "-MGMTDB", status READY, has 1 handler(s) for this service...<===
 Instance "ONE2", status READY, has 1 handler(s) for this service...
当时询问客户怎么这个service下多了个mgmtdb实例,客户说这个应该是12c自带的吧,所以并没在意。
但是它们在同一个service下,如果连接被传递给mgmtdb实例的话,那么肯定会发生ora-01017。查了下mgmtdb的用途,发现其与12c的新特性有关:原本在11g中由Berkeley DB管理的CHM repository改成了Oracle db管理:

MGMTDB is new database instance which is used for storing Cluster Health Monitor (CHM) data. In 11g this was being stored in berkley database but starting Oracle database 12c it is configured as  Oracle Database Instance.

7、于是建议客户将mgmtdb停掉试试。客户反馈停掉之后果然正常连接了。
8、进一步查看相关文档,发现如下bug:
MGMTDB registers Database Service (Doc ID 2063662.1)
GIMR (Management Database) Registers Into Same Service that the Database Instance also registers On RAC (Doc ID 2024572.1)

该问题在数据库与cluster name同名时发生,会导致mgmtdb把自己注册到这个与cluster name同名数据库的default service下。

经客户确认,其数据库名的确与Cluster name相同。 
文档中给出的Workaround有二:
一是办法将GIMR重建到不同的共享存储上;
另一个办法是按Doc ID 2024572.1给mgmtdb配置local_listener。当然如果可以使用不同的dbname重建数据库则是从根本上避免此bug。

应该还有个办法是通过srvctl stop mgmtdbsrvctl disable mgmtdb来禁用它,但Oracle不推荐将其禁用,因为使用opatchauto打psu时会去尝试启动mgmtdb,如果发现它被disable,则会报错:
PRCR-1005 : Resource ora.mgmtdb is already stopped


1)connect to MGMTDB
$ export ORACLE_SID=-MGMTDB
$ sqlplus / as sysdba
2)modify local_listener of MGMTDB
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=<node1 interconnect IP>)(PORT=<mgmtlsnr port number>))','(ADDRESS=(PROTOCOL=TCP)(HOST=<node2 interconnectのIP>)(PORT=<mgmtlsnr port number>))' scope=both;
5
 
1
1)connect to MGMTDB
2
$ export ORACLE_SID=-MGMTDB
3
$ sqlplus / as sysdba
4
2)modify local_listener of MGMTDB
5
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=<node1 interconnect IP>)(PORT=<mgmtlsnr port number>))','(ADDRESS=(PROTOCOL=TCP)(HOST=<node2 interconnectのIP>)(PORT=<mgmtlsnr port number>))' scope=both;



oracle 12.1.0.2的mgmt 导致的ORA-01017 bug的更多相关文章

  1. 12.1.0.2自适应特性导致SQL性能下降

    背景介绍 在升级到12.1.0.2.0数据库版本后,在使用12c中引入的自适应特性默认配置的情况下,可能引起SQL性能的下降. 问题现象升级到12.1.0.2.0后,SQL语句性能可能出现下降. 影响 ...

  2. Oracle 12.2.0.1 RAC for rhel 7.X 数据库安装(节点1执行root.sh失败)

    说明: 最开始是用的rehat7.2安装12.2.0.1,后面安装GI节点一执行root.sh脚本失败,排查原因,最开始以为是操作系统的问题,换成rehat7.6,同样的出现问题,经过一番折腾,后面通 ...

  3. Linux平台Oracle 12.1.0.2 单实例安装部署

    主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...

  4. 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要&quot;compat-libstdc++&quot;包

    在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包 来源于: Installation of ...

  5. Oracle 12.1.0.2 对JSON的支持

    Oracle 12.1.0.2版本有一个新功能就是可以存储.查询.索引JSON数据格式,而且也实现了使用SQL语句来解析JSON,非常方便.JSON数据在数据库中以VARCHAR2, CLOB或者BL ...

  6. oracle 12.1.0.2中对象锁对系统的较大影响

    环境:oracle 12.1.0.2  rac ,4节点 一.概述 通常来说,如果是oltp应用,那么部署在rac上,是不错的注意. 但实现情况中,往往是混合类型,既有OLTP也有OLAP. 如果没有 ...

  7. Oracle 12.2.0.1 Installation Fails With "PRVG-0449"

    Mac 电脑虚拟机 Parallels 中进行Oracle 12.2.0.1 数据库软件安装时,预环境检查过程中,提示堆栈大小限制[失败],即使修复问题依然如故. Oracle 12.2.0.1 In ...

  8. Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】

    翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column ...

  9. RedHat 7.3 Oracle 12.2.0.1 RAC 安装手册(转)

    1  准备工作 1.1   关于GRID的一些变化 1.1.1  简化的基于映像的Oracle Grid Infrastructure安装 从Oracle Grid Infrastructure 12 ...

随机推荐

  1. Arduino Wire.h(IIC)库函数详解

    此库中包含 1 Wire.begin() 2 Wire.requestFrom() 3 Wire.beginTransmission() 4 Wire.endTransmission() 5 Wire ...

  2. 福大软工1816 · 第五次作业 - 结对作业2_EXE图片_备用

    1_每日推荐界面.png 2_论文搜索界面.png 2_论文搜索界面_搜索功能.png 3_流行趋势_十大热词排名统计图.png 4_人物界面.png 5_我的收藏界面.png 6_设置界面.png ...

  3. wrodcount

    PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划  20  20 · Estimate · 估计这个任务需要多少时间 20   20 Development 开 ...

  4. 《Head First Servlets & JSP》-2-概述

    什么是容器 Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container). Web服务器应用(如Apache)得到一个指向Servlet的请求(如何 ...

  5. leetcode Jump Game I II 待续 贪心看不懂啊!!!!

    下面是这两个题的解法: 参考博客:http://blog.csdn.net/loverooney/article/details/38455475 自己写的第一题(TLE): #include< ...

  6. Java50道经典习题-程序49 子串出现的个数

    题目:计算首末不含空格各个子串之间只含一个空格的字符串中子串出现的次数分析:例如输入的字符串为"I come from County DingYuan Province AnHui.&quo ...

  7. 2 plan team 服务器搭建

    最近想搞个2-plan team看看,是不是适合小型团队任务管理 下了个包,解压了,发现里面的readme太简单了 readme中的install相关的内容如下 ### Installation in ...

  8. WPF之MVVM模式(3)

    有种想写一个MVVM框架的冲动!!! 1.Model中的属性应不应该支持OnPropertyChanged事件? 不应该.应该有ViewModel对该属性进行封装,由ViewModel提供OnProp ...

  9. C#封装的VSTO Excel操作类

    自己在用的Excel操作类,因为经常在工作中要操作Excel文件,可是使用vba实现起来实在是不方便,而且编写也很困难,拼接一个字符串都看的眼花. 这个时候C#出现了,发现使用C#来操作Excel非常 ...

  10. mysql服务启动不了解决方法

    sudo lsof |grep deleted  找占用大的kill一下,  一般是tomcat log和zookeeper的out比较吃磁盘 du -h --max-depth=1 / 今天作死,想 ...