iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误
  • 333
分享到

怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误

2024-04-02 19:04:59 333人浏览 薄情痞子
摘要

这篇文章主要介绍“怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误”,在日常操作中,相信很多人在怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS

这篇文章主要介绍“怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误”,在日常操作中,相信很多人在怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、环境说明:

操作系统:RHEL7.4

数据库版本:12.2.0.1

已打补丁:201910月的季度补丁

由于保密缘故,相关命名与IP已做变更

二、问题描述

在对GI打季度补丁时,节点1运行opatchauto apply后,CRS正常关闭,但是到自动拉起CRS时遇到ORA-12547: TNS:lost contact报错了,导致打补丁失败。

详细信息如下:

CRS-4123: Starting oracle High Availability Services-managed resources
CRS-2672: Attempting to start 'ora.mdnsd' on 'db1'
CRS-2672: Attempting to start 'ora.evmd' on 'db1'
CRS-2676: Start of 'ora.mdnsd' on 'db1' succeeded
CRS-2676: Start of 'ora.evmd' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'db1'
CRS-2676: Start of 'ora.gpnpd' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.gipcd' on 'db1'
CRS-2676: Start of 'ora.gipcd' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.CSSdmonitor' on 'db1'
CRS-2676: Start of 'ora.cssdmonitor' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'db1'
CRS-2672: Attempting to start 'ora.diskmon' on 'db1'
CRS-2676: Start of 'ora.diskmon' on 'db1' succeeded
CRS-2676: Start of 'ora.cssd' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'db1'
CRS-2672: Attempting to start 'ora.ctssd' on 'db1'
CRS-2676: Start of 'ora.ctssd' on 'db1' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'db1'
CRS-2676: Start of 'ora.asm' on 'db1' succeeded
CRS-2672: Attempting to start 'ora.storage' on 'db1'
ORA-12547: TNS:lost contact
ORA-12547: TNS:lost contact
ORA-15077: could not locate ASM instance serving a required diskgroup
CRS-2883: Resource 'ora.storage' failed during Clusterware stack start.
CRS-4406: Oracle High Availability Services synchronous start failed.
CRS-4000: Command Start failed, or completed with errors.
2020/06/10 16:46:12 CLSRSC-117: Failed to start Oracle Clusterware stack 
After fixing the cause of failure Run opatchauto resume
]
OPATCHAUTO-68061: The orchestration engine failed.
OPATCHAUTO-68061: The orchestration engine failed with return code 1
OPATCHAUTO-68061: Check the log for more details.
OPatchAuto failed.
OPatchauto session completed at Wed Jun 10 16:46:13 2020
Time taken to complete the session 17 minutes, 25 seconds
 opatchauto failed with error code 42

调用crsctl check crs查看集群服务,发现Cluster Ready Services、Event Manager异常。查看/u01/app/grid/diag/crs/db1/crs/trace/alert.log日志,发现如下信息:

2020-06-10 16:36:08.150 [ORAROOTAGENT(679524)]CRS-5019: All OCR locations are on ASM disk groups [OCR], and none of these disk groups are mounted. Details are at "(:CLSN00140:)" in "/u01/app/grid/diag/crs/db1/crs/trace/ohasd_orarootagent_root.trc".
2020-06-10 16:45:58.112 [ORAROOTAGENT(679524)]CRS-5818: Aborted command 'start' for resource 'ora.storage'. Details at (:CRSAGF00113:) {0:5:3} in /u01/app/grid/diag/crs/db1/crs/trace/ohasd_orarootagent_root.trc.
2020-06-10 16:46:00.427 [ORAROOTAGENT(679524)]CRS-5017: The resource action "ora.storage start" encountered the following error: 
2020-06-10 16:46:00.427+Storage agent start action aborted. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/db1/crs/trace/ohasd_orarootagent_root.trc".
2020-06-10 16:46:00.429 [OHASD(679429)]CRS-2757: Command 'Start' timed out waiting for response from the resource 'ora.storage'. Details at (:CRSPE00221:) {0:5:3} in /u01/app/grid/diag/crs/db1/crs/trace/ohasd.trc.
2020-06-10 16:47:12.689 [OSYSMOND(684959)]CRS-8500: Oracle Clusterware OSYSMOND process is starting with operating system process ID 684959

/u01/app/grid/diag/crs/db1/crs/trace/ohasd_orarootagent_root.trc日志如下:

2020-06-09 16:34:08.611 :CLSDYNAM:3440035584: [ora.storage]{0:1:251} [check] StorageAgent::parsekgforetcodes retcode = 0, kgfoCheckMount(OCR), flag 4
2020-06-09 16:34:08.611 :CLSDYNAM:3440035584: [ora.storage]{0:1:251} [check] StorageAgent::check kgfo returncode 0
2020-06-09 16:34:11.243 :CLSDYNAM:3429529344: [ ora.crf]{0:5:3} [check] Check return = 0, state detail = NULL
2020-06-09 16:34:15.926 :CLSDYNAM:2525263616: [ora.ctssd]{0:5:3} [check] translateReturnCodes, return = 0, state detail = OBSERVERCheckcb data [0x7f2369c293D0]: mode[0xee] offset[0 ms].
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Arg Value = check
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils::getOracleHomeAttrib getEnvVar oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils::getOracleHomeAttrib oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils::execCmd 1 USR_ORA_ENV: oracleHome:/u01/app/12.2.0/grid CrsHome:/u01/app/12.2.0/grid
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Adding Environment Variables ORA_DAEMON_LOGGING_LEVELS=GIPCLIB=2,GIPC=2,GIPCGEN=2,GIPCTRAC=2,GIPCWAIT=2,GIPCXCPT=2,GIPCOSD=2,GIPCBASE=2,GIPCCLSA=2,GIPCCLSC=2,GIPCEXMP=2,GIPCGMOD=2,GIPCHEAD=2,GIPCMUX=2,GIPCNET=2,GIPCNULL=2,GIPCPKT=2,GIPCSMEM=2,GIPCHAUP=2,GIPCHALO=2,GIPCHTHR=2,GIPCHGEN=2,GIPCHLCK=2,GIPCHDEM=2,GIPCHWRK=2,GIPCTLS=2,GIPCHGNS=2
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Adding Environment Variables ORA_DAEMON_TRACE_FILE_OPTIONS=filesize=26214400,numsegments=10
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Adding Environment Variables _ORA_AGENT_ACTION=TRUE
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Adding Environment Variables __IS_HASD_AGENT=
2020-06-09 16:34:19.107 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils:execCmd action = 3 flags = 6 ohome = (null) cmdname = acfsload. 
2020-06-09 16:34:19.108 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils::getOracleHomeAttrib getEnvVar oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:19.108 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] Utils::getOracleHomeAttrib oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:19.219 :CLSDYNAM:3425326848: [ora.drivers.acfs]{0:0:2} [check] execCmd ret = 0
2020-06-09 16:34:20.911 :CLSDYNAM:3427428096: [ora.driver.afd]{0:0:2} [check] Utils:execCmd action = 3 flags = 38 ohome = (null) cmdname = afddriverstate. 
2020-06-09 16:34:20.911 :CLSDYNAM:3427428096: [ora.driver.afd]{0:0:2} [check] Utils::getOracleHomeAttrib getEnvVar oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:20.911 :CLSDYNAM:3427428096: [ora.driver.afd]{0:0:2} [check] Utils::getOracleHomeAttrib oracle_home:/u01/app/12.2.0/grid
2020-06-09 16:34:21.121 :CLSDYNAM:3427428096: [ora.driver.afd]{0:0:2} [check] execCmd ret = 0
2020-06-09 16:34:22.763 : USRTHRD:2548033280: {0:5:3} Check: 0-1
2020-06-09 16:34:26.337 :    AGFW:3435833088: {0:0:2} Agent received the message: AGENT_HB[Engine] ID 12293:2086505
2020-06-09 16:34:32.281 :  CLSDMC:3425326848: command 0 failed with status 16843265
2020-06-09 16:34:32.282 :CLSDYNAM:3425326848: [ora.crsd]{0:1:52} [check] DaemonAgent::check returned 0
2020-06-09 16:34:32.282 :CLSDYNAM:3425326848: [ora.crsd]{0:1:52} [check] DaemonAgent::check checkErrorCode=16843265, pestate=512,perole=65536, pemode=1
2020-06-09 16:34:38.611 :CLSDYNAM:3427428096: [ora.storage]{0:1:251} [check] StorageAgent::check nodeROLE_HUB getOCRdetails
2020-06-09 16:34:38.686 :CLSDYNAM:3427428096: [ora.storage]{0:1:251} [check] StorageAgent::parsekgforetcodes retcode = 0, kgfoCheckMount(OCR), flag 2
2020-06-09 16:34:38.686 :CLSDYNAM:3427428096: [ora.storage]{0:1:251} [check] StorageAgent::check kgfo returncode 0
2020-06-09 16:34:41.239 :CLSDYNAM:3444238080: [ ora.crf]{0:5:3} [check] Check return = 0, state detail = NULL
2020-06-09 16:34:45.921 :CLSDYNAM:3444238080: [ora.ctssd]{0:5:3} [check] translateReturnCodes, return = 0, state detail = OBSERVERCheckcb data [0x7f23baa99360]: mode[0xee] offset[0 ms].
2020-06-09 16:34:52.763 : USRTHRD:2548033280: {0:5:3} Check: 0-1
2020-06-09 16:34:56.341 :    AGFW:3435833088: {0:0:2} Agent received the message: AGENT_HB[Engine] ID 12293:2086522
2020-06-09 16:35:02.285 :  CLSDMC:2525263616: command 0 failed with status 16843265
2020-06-09 16:35:02.285 :CLSDYNAM:2525263616: [ora.crsd]{0:1:52} [check] DaemonAgent::check returned 0

三、故障分析

从告警日志中可知,CRS进程未能识别到OCR磁盘有挂载导致CRS服务启动失败。

尝试手工启动ASM实例,CRS启动成功:

sqlplus / as sysasm
startup

关闭CRS后再调用crsctl start crs,ASM实例一样未能自动拉起,只能通过startup的方式。

查看/u01/app/grid/diag/crs/db1/crs/trace/crsd.trc日志,发现如下信息:

2020-06-10 16:48:24.867*:kgfn.c@1370: kgfnFindLocalNode: found no members
2020-06-10 16:48:24.867 :  OCRRAW:633798784: kgfnFindLocalNode: not ok
2020-06-10 16:48:24.867*:kgfn.c@1422: kgfnFindLocalNode: not ok
2020-06-10 16:48:24.867 :  OCRRAW:633798784: kgfnTgtInit: local node not found, free kgfnpds
2020-06-10 16:48:24.867*:kgfn.c@2208: kgfnTgtInit: not found
2020-06-10 16:48:24.867 :  OCRRAW:633798784: kgfnGetBeqData failed init target; inst=(null) flags=0x6000
2020-06-10 16:48:24.867*:kgfn.c@5791: kgfnGetBeqData: kgfnTgtInit failed, inst=NULL flags=0x6000
2020-06-10 16:48:24.867 :   CLSNS:633798784: clsns_SetTraceLevel:trace level set to 1.
2020-06-10 16:48:24.900 :  OCRRAW:633798784: 8154 Error 4 querying length of attr ASM_DISCOVERY_ADDRESS
2020-06-10 16:48:24.904 :  OCRRAW:633798784: 8154 Error 4 querying length of attr ASM_STATIC_DISCOVERY_ADDRESS
2020-06-10 16:48:24.940 :  OCRRAW:633798784: 7872 Error 4 opening dom root in 0x5fb60d0
2020-06-10 16:48:24.958 :  OCRRAW:633798784: kgfnConnect2: kgfnGetBeqData failed
2020-06-10 16:48:24.958*:kgfn.c@5012: kgfnConnect2: kgfnGetBeqData failed
2020-06-10 16:48:24.992 :  OCRRAW:633798784: kgfnConnect2Int: cstr=(DESCRIPTION=(tcp_USER_TIMEOUT=1)(TRANSPORT_CONNECT_TIMEOUT=60)(EXPIRE_TIME=1)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.43)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=+ASM)))
2020-06-10 16:48:24.992*:kgfn.c@6788: kgfnConnect2Int: cstr=(DESCRIPTION=(TCP_USER_TIMEOUT=1)(TRANSPORT_CONNECT_TIMEOUT=60)(EXPIRE_TIME=1)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.43)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=+ASM)))
2020-06-10 16:48:24.993 :  OCRRAW:633798784: kgfnConnect2Int: ServerAttach
2020-06-10 16:48:24.993*:kgfn.c@6811: kgfnConnect2Int: OCIServerAttach failed
Failed to connect to ASM 1 0 0 (nil) 0
2020-06-10 16:48:25.994 :  OCRRAW:633798784: kgfnRecordErr 12547 OCI error:
ORA-12547: TNS:lost contact
2020-06-10 16:48:25.994*:kgfn.c@1740: kgfnRecordErrPriv: 12547 error=ORA-12547: TNS:lost contact
2020-06-10 16:48:25.995 :  OCRRAW:633798784: kgfnConnect2: failed to connect
2020-06-10 16:48:25.995*:kgfn.c@5333: kgfnConnect2: failed to connect
2020-06-10 16:48:25.995 :  OCRRAW:633798784: kgfnConnect2Retry: failed to connect connect after 2 attempts, 331s elapsed
2020-06-10 16:48:25.995 :  OCRRAW:633798784: kgfo_kge2slos error stack at kgfoAl06: ORA-12547: TNS:lost contact

ORA-12547: TNS:lost contact的报错出现在该日志文件中,而该报错是要访问私网IP10.10.10.43 1526端口失败所致。

四、问题原因

1526端口是运行在ASMNET1LSNR_ASM监听上的。在12cRAC中,从FLEXASM开始,crsd.bin将使用ASMNET1LSNR_ASM监听进行远程连接。即会连接10.10.10.43的1526端口。

那么为何连接节点2的1526端口会失败呢。

查看节点2的sqlnet.ora配置,发现配置了白名单,但是没有增加节点1的私网IP。

五、解决办法

1) Modify the file sqlnet.ora
vi $GRID_HOME/network/admin/sqlnet.ora
2) Add the IP which are used for Private interconnect.
e.g.
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES=(node1.localhost, node2.localhost,node1-priv.localhost,node2-priv.localhost, node1-vip.localhost, node2-vip.localhost, application server VIPS)
3) Restart the CRS in issue node.

到此,关于“怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么解决12cRAC打季度补丁时遇到ORA-12547: TNS:lost contact错误

本文链接: https://www.lsjlt.com/news/62882.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中外码怎么设置
    sql 中外码设置步骤:确定父表和子表。在子表中创建外码列,引用父表主键。使用 foreign key 约束将外码列链接到父表主键。指定引用动作,以处理父表数据更改时的子表数据操作。 ...
    99+
    2024-05-15
  • sql中having是什么
    having 子句用于过滤分组结果,应用于分组后的数据集。它与 where 子句类似,但基于分组结果而不是原始数据。用法:1. 过滤分组后的聚合值。2. 根据分组后的...
    99+
    2024-05-15
  • 在sql中空值用什么表示
    在 sql 中,空值表示未知或不存在的值,可使用 null、空字符串或特殊值表示。处理空值的方法包括使用操作符(is null/is not null)、coalesce 函数(返回第一...
    99+
    2024-05-15
    oracle
  • sql中number什么意思
    sql 中的 number 类型用于存储数值数据,包括小数和整数,特别适合货币、度量和科学数据。其精度由 scale(小数点位数)和 precision(整数字段和小数字段总位数)决定。...
    99+
    2024-05-15
  • sql中空值赋值为0怎么写
    可以通过使用 coalesce() 函数将 sql 中的空值替换为指定值(如 0)。coalesce() 的语法为 coalesce(expression, replacement),其...
    99+
    2024-05-15
  • sql中revoke语句的功能
    revoke 语句用于撤销指定用户或角色的权限或角色成员资格。可撤销的权限包括 select、insert、update、delete 等,撤销的对象类型包括表、视图、存储过程...
    99+
    2024-05-15
    敏感数据
  • sql中REVOKE是什么意思
    revoke 是 sql 中用于撤销用户或角色对数据库对象权限的命令。它通过撤销权限类型、对象级别和目标权限来实现:权限类型:撤销 select、insert、update、d...
    99+
    2024-05-15
  • sql中sp是什么意思
    sql中的sp是存储过程的缩写,它是一种预编译的、已命名的sql语句块,存储在数据库中,可以被用户通过简单命令调用。存储过程的特点有:可重用性、模块化、性能优化、安全性、事务支持。存储过...
    99+
    2024-05-15
    敏感数据
  • sql中references是什么意思
    sql 中的 references 关键字用于在外键约束中定义表之间的父-子关系。外键约束确保子表中的行都引用父表中存在的行,从而维护数据完整性。references 语法的格式为:fo...
    99+
    2024-05-15
  • sql中判断字段为空怎么写
    sql 中可通过 4 种方法判断字段是否为空:1)is null 运算符;2)is not null 运算符;3)coalesce() 函数;4)case 语句。例如,查询所有 colu...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作