写点什么

【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常

作者:YashanDB
  • 2024-12-26
    广东
  • 本文字数:477 字

    阅读完需:约 2 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7802968.html?templateId=1718516


问题现象


某客户在通过 yasql 查询 Oracle 数据时,报如下异常:


SQL> select 1 from dual@link_oracle;


YAS-07301 external module timeout, reason: yex_server heatbeat timeout


问题的风险及影响


dblink 功能无法正常使用


问题影响的版本


所有的 YashanDB 版本


问题发生原因


查看 YashanDB 的 run.log,有如下异常:



问题原因可能为操作系统资源紧张,无法 fork 出新的子进程。


解决方法及规避方式


操作系统资源紧张可能为进程数量过多或者内存不足,根据实际情况,停掉不需要的进程/增大进程数上限或者停止耗时内存的进程,释放内存资源。


问题分析和处理过程


在日志中打[YEX] failed to run yex_server, error no:-1 时,YashanDB 实际上执行了 linux 的函数 system(const char * command),


正常这个函数执行成功返回 0。


返回-1 是不正常的情况,什么时候返回-1 呢?


从 glibc 的源码 system.c 中可以看到,大概率是 fork()失败返回-1。



经验总结


通过分析操作系统源码推断问题的可能原因。


YashanDB 会在这里做优化,在出异常时在日志中提供更多的信息。

发布于: 刚刚阅读数: 5
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常_数据库_YashanDB_InfoQ写作社区