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

简介: 客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有 YashanDB 版本。原因是操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常源于 system() 函数调用失败,返回 -1,通常是因为 fork() 失败。未来 YashanDB 将优化日志信息以更好地诊断类似问题。

问题现象

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

SQL> select 1 from dual@link_oracle;

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

问题的风险及影响

dblink 功能无法正常使用

问题影响的版本

所有的 YashanDB 版本

问题发生原因

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

18.jpeg

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

解决方法及规避方式

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

问题分析和处理过程

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

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

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

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

19.jpeg

经验总结

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

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

相关文章
|
10月前
|
存储 API 开发者
百宝箱开放平台 ✖️ 查询知识库文件列表
通过调用该接口,开发者可查询指定知识库中的文件列表,支持分页参数设置,需提供Authorization令牌及知识库ID,返回文件信息包括名称、大小等,并附带错误码说明。
356 4
|
10月前
|
API 开发者
百宝箱开放平台 ✖️ 查询知识库文件的构建状态
本接口用于查询目标文件在知识库中的构建状态,需提供documentId并配置有效token。支持查看初始化、处理中、成功、失败等状态,并返回详细错误信息以便排查问题。
534 4
|
10月前
|
存储 API 开发者
蚂蚁开放平台 ✖️ 查询知识库列表
通过调用该接口,开发者可查询租户内知识库列表,支持分页参数配置,需提供有效授权令牌。返回信息包含知识库ID、名称、描述及存储大小等。
352 4
|
存储 人工智能 搜索推荐
WiseMindAI:一款AI智能知识库,数据完全本地化,支持文档对话、10+种文档、10+AI大模型等
WiseMindAI 是一款由 Chris 开发的 AI 智能学习助手,支持数据完全本地化存储,确保用户隐私安全。它兼容多种文档格式(如 PDF、Markdown 等),并提供 AI 文档总结、智能笔记、沉浸式翻译、知识卡片生成等功能。此外,WiseMindAI 支持 10+ 大语言模型和自定义 AI 插件,适用于 Windows 和 Mac 平台,支持简体中文、繁体中文及英文。
1689 74
WiseMindAI:一款AI智能知识库,数据完全本地化,支持文档对话、10+种文档、10+AI大模型等
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的闪回版本查询
本文介绍了Oracle数据库的闪回版本查询(Flashback Version Query)功能,通过示例详细讲解了其使用方法。闪回版本查询可获取指定时间区间内行的不同版本,利用`versions between`子句实现。文中包含视频讲解,并通过创建测试表、插入数据及执行查询等步骤,演示如何获取历史版本信息和伪列详情,帮助用户深入了解该功能的实际应用。
497 13
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回事务查询
Oracle数据库的闪回事务查询(Flashback Transaction Query)是闪回版本查询的扩充,可用于审计或撤销已提交的事务。通过`flashback_transaction_query`视图,可生成还原特定事务的SQL语句。本文介绍了其基本概念,并通过实战演示如何使用该功能:从授权、开启UNDO数据增强,到创建测试表和事务,最后利用闪回查询撤销已提交的事务,验证数据恢复效果。附带视频讲解,帮助深入理解。
501 3
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
SQL Oracle 关系型数据库
|
SQL 关系型数据库 PostgreSQL
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对

推荐镜像

更多