两节点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. ROS Learning-020 learning_tf-04(编程)让turtle2 海龟跟随turtle1海龟,并绕着 turtle1海龟转圈 (Python版)

    ROS Indigo learning_tf-04 (编程)让 turtle2 海龟跟随 turtle1 海龟,并绕着 turtle1 海龟转圈 (Python版) 我使用的虚拟机软件:VMware ...

  2. linux deb及rpm格式软件安装

    deb格式软件安装 deb包是debian,ubuntu等LINUX发行版的软件安装包,是类似于rpm的软件包,而非debian,ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装 ...

  3. Ubuntu16安装GTK+2.0教程

    Step 1 修改清华源(修改完可提高下载速度) 先运行 sudo gedit /etc/apt/sources.list 替换文本内容,保存,退出. # 默认注释了源码镜像以提高 apt updat ...

  4. c#创建Table

    private void BindDatazhangting() { DataTable dt = new DataTable(); dt.Columns.Add("channel" ...

  5. HBase - 安装过程中的问题

    问题1:启动时start-hbase.sh 报 权限不够 原因:在移动文件时,使用root用户在/usr/local下创建的hbase,所以hbase文件夹的使用者为root,其他人没权限 解决方案: ...

  6. webpack4 入门(二)

    一.管理输出 1.多入口配置 entry: { index1: './src/index.js', index2: './src/index2.js' }, output: { filename: ' ...

  7. AI进阶之路

    一.方法论 二.发展趋势 三.入门查看 1. https://hongyuxie.github.io/MyResume_CN/ 上班后大家还刷算法题吗 编程面试的 10 大算法概念汇总 技术面试宝典: ...

  8. .NET 反射

    反射是.NET很强大的一个机制. 它就像照妖镜一般的存在.它能调用你的任意私有成员,如:私有构造函数.私有方法.私有字段. 类的构造函数声明为了private,别人无法实例化对象出来?No,No,No ...

  9. FFT字符串匹配

    本文半原创 参考资料:其实就是照抄的什么参考啊 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可 ...

  10. 取石子游戏 BZOJ1874 博弈

    小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子, 每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作,他想问你他是否有必胜策略, ...