暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

'SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS)'参数导致Oracle RAC 中 ASM 无法启动的原因分析

原创 crysjackbear 2023-10-27
515

在 Oracle RAC 中,ASM 无法启动通常是由于以下几个原因:

  • ASM 实例启动脚本中指定的用户名或密码错误。
  • ASM 实例所在的 Oracle home 中 tnsnames.ora 文件中指定的用户名或密码错误。
  • ASM 实例所在的 Oracle home 中 sqlnet.ora 文件中指定的认证方式错误。

在本文中,我们将讨论第三种情况,即 ASM 实例所在的 Oracle home 中 sqlnet.ora 文件中指定的认证方式错误导致 ASM 无法启动的问题。

问题描述

在本文中,我们将使用以下场景来进行说明:

  • 集群中包含两个节点,分别为 node1 和 node2。
  • ASM 实例所在的 Oracle home 为 /u01/app/11.2.0.4/grid。
  • sqlnet.ora 文件中指定的认证方式为 TCPS 和 NTS。

在这种情况下,当我们尝试启动 ASM 实例时,会出现以下错误:

[ora.asm][3219122496]{0:0:2} [start] ORA-01017: invalid username/password; logon denied

问题分析

在 Oracle RAC 中,ASM 实例使用 SYSASM 用户登录。当我们在 sqlnet.ora 文件中指定的认证方式为 TCPS 和 NTS 时,ASM 实例将使用 TCP 协议连接到 Oracle Listener 进行身份验证。

在这种情况下,如果 ASM 实例所在的 Oracle home 中 tnsnames.ora 文件中指定的用户名或密码错误,则 ASM 实例将无法连接到 Oracle Listener,并会出现 ORA-01017 错误。

解决方案

要解决此问题,我们需要将 sqlnet.ora 文件中指定的认证方式修改为 NTS。

修改 sqlnet.ora 文件后,重启 ASM 实例,ASM 实例将能够正常启动。

修改 sqlnet.ora 文件

在 sqlnet.ora 文件中,找到以下行:

SQLNET.AUTHENTICATION_SERVICES = (TCPS,NTS)

将其修改为:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

重启 ASM 实例

在修改 sqlnet.ora 文件后,需要重启 ASM 实例才能使修改生效。

在 node1 和 node2 节点上,执行以下命令重启 ASM 实例:

crsctl stop asm
crsctl start asm

验证 ASM 实例是否启动成功

在 node1 和 node2 节点上,执行以下命令验证 ASM 实例是否启动成功:

crsctl status asm

如果 ASM 实例启动成功,则将显示以下输出:

ASM is running

总结

在 Oracle RAC 中,ASM 实例无法启动通常是由于以下几个原因:

  • ASM 实例启动脚本中指定的用户名或密码错误。
  • ASM 实例所在的 Oracle home 中 tnsnames.ora 文件中指定的用户名或密码错误。
  • ASM 实例所在的 Oracle home 中 sqlnet.ora 文件中指定的认证方式错误。

在本文中,我们讨论了第三种情况,即 ASM 实例所在的 Oracle home 中 sqlnet.ora 文件中指定的认证方式错误导致 ASM 无法启动的问题。解决此问题的方法是将 sqlnet.ora 文件中指定的认证方式修改为 NTS,并重启 ASM 实例。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论