问题现象

问题单:YAS-00103 no free block in sql main pool part 0,YAS-00105 out of memory to allocate hash table of size = 256

现象:业务处理sql时,报错YAS-00103 no free block in sql main pool part 0

问题风险及影响

业务处理报错,影响功能使用

问题影响版本

客户版本:22.2.4.1

问题发生原因

表现原因:sql pool空间不足,申请不到报错。

根原因:stmt使用后,未调用close,session长时间未关闭。open coursor无法循环使用,导致该问题。

解决方式及规避方法

规避方法:增大share_pool_size;alter system set share_pool_size=xxx scope=spfile;

解决方案:stmt调用,不使用后调用close关闭。

问题分析和处理过程

复现方案:

如上报错

分析

查看v$open_cursor视图

每个cursor的状态都是0,0是idle状态,无法循环使用。

代码分析:

typedef enum EnAnlStmtStatus {
STMT_STATUS_IDLE = 0,
STMT_STATUS_PREPARE = 1,
STMT_STATUS_EXECUTE = 2,
STMT_STATUS_FETCH = 3,
STMT_STATUS_FREE = 4,
} AnlStmtStatus;





没有close的stmt,并且执行完毕这条sql语句了,就是idle。

close的stmt,则是free状态。只有free状态的stmt可以复用。

cursor连接不会销毁,只有session断开连接才会销毁,每个session用open_cursors控制最大的cursor数量。

经验总结

v$global_mpool //查看sql pool使用情况

v$open_cursor //查看stmt的cursor使用状况

OPEN_CURSORS //配置session最大cursor的使用个数

【YashanDB知识库】stmt未close,导致YAS-00103 no free block in sql main pool part 0报错分析的更多相关文章

  1. 内存写越界导致破环堆结构引起的崩溃问题定位经验[如报错malloc(): memory corruption或free(): invalid next size]

    前段时间开发的一个后端C模块上线后,线上出core,初始时,因为訪问压力不大,所以崩溃是上线3天左右出现的.当时用gdb跟进调用堆栈并检查源代码,发现出core位置的代码沒有啥问题.因为当时开发任务较 ...

  2. 【SQL】SQL2012 导入导出报错,未在计算机上注册...

    导出时报错: 如图: 解决方法:下载插件: 下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463 ...

  3. zabbix5.0报错PHP时区未设置(配置参数"date.timezone")

    解决办法 : #1.编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并设置为所在地时区 vim /etc/opt/rh/rh-php72/php- ...

  4. SQL SERVER 导入EXCEL表 报错 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    1 已经正确安装了 accessdatabaseengine 2 使用 Microsoft SQL Server Management Studio 里面的数据库 右键-->导入数据 解决方案 ...

  5. Oozie调度报错——ORA-00918:未明确定义列

    Oozie在执行sqoop的时候报错,同样的SQL在sqoop中可用,在oozie中不可用: Caused by: java.sql.SQLSyntaxErrorException: ORA-0091 ...

  6. 记一次mysql事务未提交导致锁未释放的问题

    记一次mysql事务未提交导致锁未释放的问题 ## 查看未提交的事务(3秒内未操作的事务) SELECT p.ID AS conn_id, P.USER AS login_user, P.HOST A ...

  7. MySQL事务未提交导致整个表锁死

    问题及说明: 当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束:报错信息如下: mysql> ERROR 1205 (HY000): Lock wait tim ...

  8. for update未提交导致锁表

    select for update 是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性. 应用场景: 什么时候需要使用for update?就是那些需要业务层面数据独占时, ...

  9. undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致

    本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...

  10. 允许asp.net MVC报 错说明: 访问服务此请求所需的资源时出错。服务器可能未配置为访问所请求的 URL。错误消息 401.2。: 未经授权

    运行mvc3程序报以下错误 详细报错如下: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未 ...

随机推荐

  1. css 手稿

    CSS 网页的布局和外观的显示样式 没有一张图解决不了的事:https://www.processon.com/mindmap/5e368a8be4b0d27af184e118 选择器 * 通配符选择 ...

  2. B+树要点梳理

    B+树重要操作 中间节点 中间节点的key,与其对应的指针的原则是,小于key的元素在其指针指向的节点中 中间节点的key可以看成是右斜着排放的,即小于等于key的节点由key对应的指针指定,最有一个 ...

  3. [oeasy]python0143_主控程序_main

    主控程序 回忆上次内容 上次把 apple.py 拆分成了 输入 主函数   引用模块中变量的时候 要带上包(module)名 get_fruits.a get_fruits.b     最终 拆分代 ...

  4. [oeasy]教您玩转python - 0006 - 自由软件运动和开源运动

    ​ 顺序执行 回忆上次内容 上次写了10000行代码 10000行代码 都是写在明面上的 人家一下载​​py​​ 文件 就能看个明明白白 修改或者运行程序都很方便 这程序全都这么公开出来 大家随意修改 ...

  5. [oeasy]教您玩转linux0001 - 先跑起来 🥊

    Python 什么是 Python? Python 很好用 适合初学者 而且在各个领域都很强大   ​   添加图片注释,不超过 140 字(可选)   后来居上 下图可以点开   ​   添加图片注 ...

  6. WRONG(COPY)

    去年总结的列表,欢迎大家补充!! 两个int相乘,50%几率会爆了int.(不开long long见祖宗) 无向图邻接表的边表忘了这是心口永远的痛: 线段树数组开小是4(乘4有时候不够) 调用多个函数 ...

  7. FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

    ​<FFmpeg开发实战:从零基础到短视频上线>一书的"第11章  FFmpeg的桌面开发"介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Win ...

  8. 网络基础 CAS协议学习总结

    架构介绍 系统组件 CAS服务器和客户端构成了CAS系统体系结构的两个物理组件,它们通过各种协议进行通信. CAS服务器 CAS服务器是基于Spring Framework构建的Java servle ...

  9. Django 解决跨域访问API失败问题

    解决跨域访问API失败问题   By:授客 QQ:103355122   实践环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址: https://w ...

  10. useRoute 函数的详细介绍与使用示例

    title: useRoute 函数的详细介绍与使用示例 date: 2024/7/27 updated: 2024/7/27 author: cmdragon excerpt: 摘要:本文介绍了Nu ...