【YashanDB知识库】stmt未close,导致YAS-00103 no free block in sql main pool part 0报错分析
问题现象
问题单: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报错分析的更多相关文章
- 内存写越界导致破环堆结构引起的崩溃问题定位经验[如报错malloc(): memory corruption或free(): invalid next size]
		
前段时间开发的一个后端C模块上线后,线上出core,初始时,因为訪问压力不大,所以崩溃是上线3天左右出现的.当时用gdb跟进调用堆栈并检查源代码,发现出core位置的代码沒有啥问题.因为当时开发任务较 ...
 - 【SQL】SQL2012 导入导出报错,未在计算机上注册...
		
导出时报错: 如图: 解决方法:下载插件: 下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463 ...
 - zabbix5.0报错PHP时区未设置(配置参数"date.timezone")
		
解决办法 : #1.编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并设置为所在地时区 vim /etc/opt/rh/rh-php72/php- ...
 - SQL SERVER 导入EXCEL表 报错  未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
		
1 已经正确安装了 accessdatabaseengine 2 使用 Microsoft SQL Server Management Studio 里面的数据库 右键-->导入数据 解决方案 ...
 - Oozie调度报错——ORA-00918:未明确定义列
		
Oozie在执行sqoop的时候报错,同样的SQL在sqoop中可用,在oozie中不可用: Caused by: java.sql.SQLSyntaxErrorException: ORA-0091 ...
 - 记一次mysql事务未提交导致锁未释放的问题
		
记一次mysql事务未提交导致锁未释放的问题 ## 查看未提交的事务(3秒内未操作的事务) SELECT p.ID AS conn_id, P.USER AS login_user, P.HOST A ...
 - MySQL事务未提交导致整个表锁死
		
问题及说明: 当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束:报错信息如下: mysql> ERROR 1205 (HY000): Lock wait tim ...
 - for update未提交导致锁表
		
select for update 是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性. 应用场景: 什么时候需要使用for update?就是那些需要业务层面数据独占时, ...
 - undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致
		
本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...
 - 允许asp.net MVC报 错说明: 访问服务此请求所需的资源时出错。服务器可能未配置为访问所请求的 URL。错误消息 401.2。: 未经授权
		
运行mvc3程序报以下错误 详细报错如下: “/”应用程序中的服务器错误. 访问被拒绝. 说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未 ...
 
随机推荐
- win10 搭建 npm 环境
			
前言 最近,根据CSDN和博客园等文章的帮助下,搭建了一个npm的环境,现在将搭建过程记录下来,留作参考. 搭建过程 下载nodejs,我是使用的zip包安装的,安装包官网地址https://node ...
 - Linux启动Java程序jar包Shell脚本
			
手动方式启动和终止java程序 启动java程序jar:nohup java -jar XXX.jar 查看程序占用pid:ps -ef | grep XXX.jar 或 jps jps是jdk提供的 ...
 - SpringCloud 微服务与微服务对接心德
			
导读 先简单介绍下背景,公司里的项目,有一块需要与公司里的其他项目组对接.我们这边用的注册中心Nacos,对方用的eureka,之前都是自己写接口,然后服务中引入这个接口工程,都是注册到同一个注册中心 ...
 - 解决方案 | Chrome/Edge 总是自动修改我的pdf默认打开方式
			
1.问题描述 最近我的pdf文件总是被chrome打开(如图1),而且点击属性,更改别的pdf阅读器也不管用(如图2),此时的chrome就像个流氓软件一样. 图1 被chrome劫持 图2 点击属性 ...
 - 拥抱未来:GPT-4将如何改变我们的世界
			
随着人工智能技术的迅猛发展,我们正迎来一个全新的智能时代.在这个时代的前沿,GPT-4作为开拓者和领航者,正在重新定义人机交互.创意创新和个性化服务的标准.无论是在商业领域.教育场景还是科研领域,GP ...
 - CGI、FastCGI和PHP-FPM区别和关系详解
			
在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM.FastCGI和CGI 这几个概念.如果对它们一知半解,很难搭建出高性能的服务器.接下来我们就以图形方式,解释这些概念之间的关系. 1 ...
 - MySql(Innodb)事务隔离级别
			
事务将数据库从一个一致状态转换至另外一个一致状态,若某个事务看到了另外一个事务在状态转换过程中的中间态数据(不一致状态),将有可能导致另外一个事务的操作基于一个不一致的数据库状态,进而数据库失去一致性 ...
 - 在Django中,多数据操作,你可以编写测试来查询另一个数据库服务器中的数据,并将结果导入当前Django项目的数据库表中
			
在Django中,你可以编写测试来查询另一个数据库服务器中的数据,并将结果导入当前Django项目的数据库表中.下面是一个简单的示例: 假设你有一个Django应用程序,名为myapp,并且你希望从另 ...
 - [oeasy]python0100_wintel联盟_intel_微软_microsoft_msDOS_基尔代尔
			
wintel联盟 回忆上次内容 上次 了解了IBM的 背水一战 IBM 已经不在乎 软硬一体全自主的设计 了 而采用了 开放的架构 任何 硬件厂商和软件厂商 都可以来合作 以丧失 自主控制力的方式 获 ...
 - oeasy教您玩转vim - 2 - # 使用帮助
			
回忆上节课内容 更新和运行 vim 进入和退出 vim 存活了下来 从中我们知道 vim 有两种模式:正常模式(Normal mode)和命令行模式 (Command-Line mode) 为了您能更 ...