oracle数据库老是死 怎么处理?
估计你的问题是这个,优化sql!仔细看看sql!
查看用户最大游标数量
这个cursor主要是由于应用程序端(JaVa)造成的,测试结果是
1、对于jdbc来说,每一个从connection中产生的statement相当于一个session,此时会在v$session中产生或者重用一条session记录,v$open_cursor中记录的就是每个session打开的cursor数量,一个对多个父子关系。
2、除非statement close物理关闭,否则在这个session在v$open_cursor中相关联的记录将一直存在,不会释放。
jakarta dbcp数据库连接池有一个statementcache功能,它不会物理关闭statement,所以造成了我们的cursor溢出,看来oracle的statement不能再客户端进行cache,当我的cache size就算为1,运行一段时间cursor也会溢出,我们必须close statementsession来确保相应session中打开的游标关闭。
3、系统参数open_cursor的含义就是这个session中能够打开游标的最大数,用sQL
表示如下:
select max(cursor_count) from (select count(*) cursor_count
from v$open_cursor where user_name="oRaL" group by sid);
当这条sQL返回结果达到open_cursor参数的取值,jdbc就会抛出
oracle 最大游标数
2008-06-26 09:241.
检查数据库中的 oPen_cuRsoRs 参数值。
可以使用如下查询语句:
sQL> show parameter open_cursors;
2. 获取打开的游标数。
下面的查询按降序显示用户“scott”为每个会话打开的游标数。
sQL> select o.sid, osuser, machine, count(*) num_curs
2 from v$open_cursor o, v$session s
3 where user_name = "oRaL" and o.sid=s.sid and machine !="sYstem"
4 group by o.sid, osuser, machine
5 order by num_curs desc;
3."oRa-01000:超出最多允许打开的游标数"问题
可以修改oracle中最大游标数
(1)修改srvm/admin/init.ora文件中的oPen_cuRsoR;
(2)alter system set open_cursor=(游标数) scope=both;
(3)在应用程序中执行完数据库操作后,及时关闭与数据库操作相关对象(statement,resultset,connection)
4.主要原因
在程序中没有及时关闭statement等相关对象造成游标资源一直被占用!
注:造成"打开最大游标数"问题主要之程序代码方面造成的.
(1)在事务操作是容易发生。
(2)程序中,在循环里面做statement操作时可能发生。
原文地址:https://www.weidianyuedu.com/content/3120663691026.html
oracle数据库老是死 怎么处理?相关推荐
- 第五十九期:商用数据库之死:Oracle 面临困境
作者:John Freeman.Fred McClimans 和 Zach Mitchell 我们预计到 2021 年,年产值 296 亿美元的商业数据库市场会收缩 20% 至 30%,认为 Orac ...
- ORACLE数据库数据类型
Oracle的数据类型 Oracle的数据类型分为标量(Scalar)类型.复合(Composite)类型.引用(Reference)类型和LOB(Large Object)类型4种类型. 因为标量类 ...
- Oracle数据库日常维护知识总结
DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源.同时,对一些"挂死"的连接,可能会需要DBA手工进行清理. 首 ...
- 重磅!亚马逊将在2019年全面弃用Oracle数据库
对于Oracle 创始人兼CTO Larry Ellison来说,每次公开场合不diss一下亚马逊似乎就不过瘾.他曾嘲讽亚马逊数据库:"亚马逊数据库就像半自动汽车,坐进去必死无疑." ...
- 批着DDD,实则是以数据库为中心------数据库已死
现代软件和以往传统软件主要区别在于:现代软件基于internet互联网技术,运行于开放的网络环境,不象传统软件只是运行在封闭的局域网,运行环境的区别就决定了软件操作用户的多少,在一个开放互联网环境, ...
- Oracle数据库日常维护
在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题.<?xml:namespace prefix = o ns = " ...
- Oracle学习笔记--第2章 oracle 数据库体系结构
第2章 oracle 数据库体系结构 目录: ------------- 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...
- Oracle数据库在进程中是,由浅入深讲解Oracle数据库进程的相关概念
Oracle数据库进程概述: Database buffer cache主要用于存储数据文件中的数据块 数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位.在Oracle数据库8i以前, ...
- Oracle数据库基础知识点汇总
1.数据库 database 2.主键 ,表的唯一性标识的一列,主键的值永远不能重.primary key 主键的类型:单一主键:一列构成的:复合主键:多个列组合起来充当主键.多采用流水号,单一列当做 ...
最新文章
- CTFshow php特性 web148
- linux网络报文接收发送浅析_Docker容器网络-基础篇
- js判断数组中对象是否存在某个值
- nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
- 在Delphi中使用indy SMTP发送gmail邮件[转]
- 神舟电脑装linux双系统,个人windows10和Ubuntu18.04游戏笔记本uefi双磁盘双系统安装过程...
- 三极管和MOS场效应管的区别
- 几幅图,拿下 HTTPS
- Hadoop优势,生态圈
- VB循环For的一点启示
- Spring 各种包功能
- 计算机网络之物理层、链路层、网络层
- 项目管理:研发项目经理为何难做
- 原型工具axure7.0
- 微信如何根据经纬度坐标查询具体地理位置
- SpringBoot中的html页面访问不到js,css等静态资源问题解决方案
- 二分类问题的micro-F1 score(f值)和Accuracy(准确度)
- 兄弟连python_兄弟连Python视频教程(完整版)
- 用python实现层次分析法(AHP)
- 西门子step7安装注册表删除_如何完全卸载Siemens PLC编程软件