问题现象

问题单: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. Class 与 Style 如何动态绑定?

    Class 可以通过对象语法和数组语法进行动态绑定: 对象语法: <div v-bind:class="{ active: isActive, 'text-danger': hasEr ...

  2. SpringBoot 校验post请求参数

    导读 前后端分离项目中,前端往后端传值时,后端都要做参数格式校验,比如校验数字最大值.最小值.是否允许为空.日期格式等等. 添加依赖 <!-- 参数校验 --> <dependenc ...

  3. DASCTF X CBCTF 2023|无畏者先行 [PWN] WP

    DASCTF X CBCTF 2023|无畏者先行 [PWN] WP 1.GuestBook 题目保护情况 开启canary,nx保护 64位ida载入 首先可以通过输入0x18个垃圾数据可以通过打印 ...

  4. Java 知识总结大汇总!看完哪个都变大佬!

    免费编程资源大全项目:https://github.com/liyupi/free-programming-resources 大家好,我是鱼皮,今天分享 十几个 让人直呼 "哇塞" ...

  5. 求之不得的 Java 文档教程大汇总!

    已收录至免费编程资源大全:https://github.com/liyupi/free-programming-resources 大家好,我是鱼皮,今天分享几个 GitHub 上非常实用的 Java ...

  6. SQL常用数据过滤---IN操作符

    在SQL中,IN操作符常用于过滤数据,允许在WHERE子句中指定多个可能的值.如果列中的值匹配IN操作符后面括号中的任何一个值,那么该行就会被选中. 以下是使用IN操作符的基本语法: SELECT c ...

  7. ProgressBar 进度控件

    在 VB.NET 中,你可以使用 ProgressBar 控件或者自定义的进度提示方法来实现这个功能.以下是一个示例代码,展示如何使用 ProgressBar 控件来显示导入情况: ' 创建一个 Pr ...

  8. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点

    各种符号 回忆上次内容 中文字符可以有各种分类方法 声母 拼音检字法   韵母 合辙押韵的分类   偏旁部首 实际上unicode的排序方法     ​   添加图片注释,不超过 140 字(可选) ...

  9. 记一次 redis 事件注册不当导致的内存泄露

    线上的程序跑着跑着内存越来越大,并且没有下降的趋势,重启一下程序也只能短暂恢复.通过 htop 命令再按一下 M 键按内存占用大小排个序,程序会占好几个G.那好,让我们来分析一下. 收集dump 通过 ...

  10. DSCL:已开源,北京大学提出解耦对比损失 | AAAI 2024

    监督对比损失(SCL)在视觉表征学习中很流行.但在长尾识别场景中,由于每类样本数量不平衡,对两类正样本进行同等对待会导致类内距离的优化出现偏差.此外,SCL忽略了负样本之间的相似关系的语义线索.为了提 ...