oracle RAC在某节点对部分表执行DML时遭遇TNS-12154报错
来源:互联网 发布:电脑主题壁纸软件 编辑:程序博客网 时间:2024/05/21 23:00
最近应用系统接到用户报障,称对某几张表执行插入操作时报错TNS-12154:无法解析当前的服务名。现将排查过程记录如下,供大家讨论:
现象:
红帽6.4上的oracle 11g 三节点RAC,其中在节点3上对表A执行DML时报错TNS-12154:无法解析当前的服务名,对表A查询正常。在节点1和节点2执行DML正常。
分析:
检查集群状态正常,数据库alter日志无报错,数据库的其他表在任一节点执行DML都正常。根据TNS报错,推测是存在DBLINK导致的解析失败。检查插入的表名,确认是具有唯一对象名的一张普通表。尝试使用create table a-test as select * from a复制该表,发现对表a-test可以正常执行DML,同时,在尝试使用alter table a rename to a-bak重命名表a时,报错ORA-26563,表示有物化视图日志基于该表创建。联想到TNS的报错是跟dblink有关,而物化视图可以建立远程表,可能在与远程数据库通信时TNS服务名解析失败导致,于是检查三个节点的tnsnames.ora文件,发现节点1和节点2有一条信息是节点3的文件里没有的,抱着尝试的想法在节点3的tnsnames.ora文件里添加上这条记录后,DML执行正常。
处理:
在节点3的tnsnames.ora文件里添加上节点1和节点2文件里的记录,故障解决。
问题:
虽然问题解决了,但是逻辑并没有理清,因为要修改的表是一张普通表,不存在dblink,如果是基于该表的物化视图,且是基于on commit更新的,那么也只可能影响物化视图的更新,不会限制表的更新。同时,从重命名该表的报错ORA-26563来看,存在物化视图日志基于该表,但是查询物化视图日志信息时,并没有基于该表的物化视图日志。后续还需要测试其他情况来分析,在此仅为问题记录,并为出现该问题时提供一个思路。
- oracle RAC在某节点对部分表执行DML时遭遇TNS-12154报错
- rac TNS报错 mark
- 让job在指定oracle rac 节点上执行
- 安装RAC节点二执行root.sh报错
- 10 RAC CRS 2节点执行root.sh报错Waiting for the Oracle CRSD and EVMD 处理方法
- Oracle 11g RAC 执行root.sh时遭遇 CRS-0184/PRCR-1070
- 11G RAC 权限不对登陆时遇到监听报错:ORA-12537 TNS:connection closed/TNS-12518
- oracle 10g RAC添加节点遭遇ORA-02174错误解决
- rac oracle software报错
- Oracle执行SQL时遭遇特殊字符&
- ORACLE FUNCTION INSERT dml 报错 解决方法
- Oracle 10G RAC - 某个节点上缺失某些归档日志后删除报错问题
- Oracle 启动监听报错TNS-12547: TNS:lost contact
- oracle 启动监听报错TNS-12547: TNS:lost contact
- oracle服务器无法连接,报错TNS:tns:lost contact
- RAC执行VIPCA过程报错
- RAC启动监听报错:TNS-12555 TNS-12560 TNS-00525 Linux Error: 1: Operation not permitted
- 【Oracle】RAC删除节点
- jQuery语法结构
- 给IT新人的15点建议:苦逼程序员的辛酸反省与总结
- Git简单生成生成公钥和私钥方法
- SQL Java + 数据库 知识点大全
- Java常用API(二)
- oracle RAC在某节点对部分表执行DML时遭遇TNS-12154报错
- imx6q camera驱动添加自己的ioctl
- C程序设计谭浩强--总结
- 文章标题 CSU 1913 (线段树+二分答案)
- 线性规划--单纯形法
- sql 数据库 多表之间的查询 纯逻辑 共勉
- python 的日志logging模块学习
- Husky中文文档-C++ Husky Aggregator 指南
- OpenCV学习笔记3:找出人脸,同时比较两张图片中的人脸相似度