1. 最大游标数
(1)作用:Oracle 使用 init.ora 中的初始化参数 OPEN_CURSORS 指定一个会话一次最多可以拥有的游标数。缺省值为 50。应用程序不同,该值也不同。即便会话打开的游标数未达 OPEN_CURSORS 指定的数量(即设置的值高于实际需要的值),也不会增加系统开销。
这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭。
一般来说,我们在写Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且使用了这些Statment后,及时关闭。最好是在执行了一次executeQuery、executeUpdate等之后,如果不需要使用结果集(ResultSet)的数据,就马上将Statment关闭。
(2)异常:ora-01000: maximum open cursors exceeded.
表示已经达到一个进程打开的最大游标数。
(3)修改Oracle游标数
1、查看游标数:show parameter open_cursors;
2、查看当前打开游标数:select count(*) from v$open_cursor;
3、修改Oracle最大游标数:alter system set open_cursors=1000 scope=both;
2.最大进程数
(1)作用:每一次数据连接,都开启数据库一个进程。当调用数据库的线程超过一定数量时出现,中间介数据源无法连接导致错误:这是连接数超过了数据库默认连接数导致的,数据库默认的连接数是150。
(2)修改Oracle最大连接数
1、SqlPlus /nolog
2、conn sys/syspwd as sysdba;
3、查询目前连接数:show parameter processes;
4、修改连接数:alter system set processes=1000 scope=spfile;
5、create pfile from spfile;
6、重新启动Oracle服务
(3)应用程序可以设置数据库开启的线程数。比如应用程序datasource.xml配置:
<system-datasource>
<type>oracle</type>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:Oracle:thin:@192.168.167.76:1521:ora11g</url>
<username>tb_ddbx</username>
<password>tb_ddbx</password>
</system-datasource>
<system-datasource-pool>
<init-capacity>5</init-capacity>
<max-capacity>10</max-capacity>
<max-idle>2</max-idle>
<timeout>50000</timeout>
</system-datasource-pool>
3.常用oracle 命令
--查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;
还有可以查询
select sessions_highwater from v$license;
sessions_highwater 记录的是数据库会话曾经达到的最大值
查询数据库自启动以来最大的并发数量
select * from v$license
其他:
ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE:
http://blog.csdn.net/haiross/article/details/41696035
ORACLE 如何查询被锁定表及如何解锁释放session:
http://www.jb51.net/article/34571.htm
修改Oracle最大连接数和游标数:
https://www.cnblogs.com/ITGIS/articles/1870539.html
java连接 oracle 遍历ResultSet,结果集耗尽:
http://blog.csdn.net/breaker892902/article/details/39397579
4. dba排错工具:
plsql 工具》会话查看当前会话
查看oracle是否有锁定的表和记录
tomcat 按ctrl+pausebreak 查看Java程序栈信息
jconsole 查看是否内存溢出。可以在系统变量中设置JAVA_HOME和JAVA_OPTS
表执行计划的优化(特别是数据大量变化时执行计划策略也要有相应变化)
多线程好文:Java 对象锁和类锁 死锁(多线程synchronized关键字)
http://blog.csdn.net/qq_33530388/article/details/63257485
java线程阻塞问题排查方法:
http://blog.csdn.net/bruce128/article/details/47402669
相关推荐
Oracle DBA在日常工作中经常会与UNIX/Linux操作系统打交道,掌握一些常用的UNIX命令对于高效管理Oracle数据库至关重要。以下是一些Oracle DBA在UNIX环境下常用的命令及其详细解释: 1. **删除Oracle进程**: - `ps...
#### 核心知识点五:Oracle DBA常用管理脚本与SQL语句 为了高效地进行数据库管理和维护,Oracle DBA需要掌握一系列常用的管理脚本和SQL语句。这些工具可以帮助他们快速执行如表空间管理、性能调优、安全性检查等...
Oracle数据库在IT行业中被广泛应用,尤其在大型...以上就是Oracle在实际项目中的一些常用但易错的操作经验,希望对你的工作有所帮助。在实践中不断积累,理解并熟练运用这些技巧,可以提升你的Oracle数据库管理技能。
以上只是《Oracle常用傻瓜问题1000问》中的一部分内容,学习Oracle需要不断地实践和积累经验。在日常操作中遇到问题时,查阅相关文档、社区问答以及官方资料都是解决问题的有效途径。希望这些解答能为初学者提供一些...
### Oracle常用命令详解 #### 创建用户 - **命令格式**: ```sql CREATE USER 用户名 IDENTIFIED BY 密码; ``` - **注意事项**: - 用户名与密码建议采用英文字符,以避免不必要的编码问题。 - 示例: ```sql...
Oracle是世界上最广泛使用的数据库管理系统之一,对于初学者和专业DBA来说,掌握Oracle的常用命令是必不可少的。本文将深入探讨Oracle的启动和关闭过程,以及如何有效地利用数据字典。 首先,Oracle数据库的启动和...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效的数据存储、管理及查询功能。以下是一些关于Oracle的常见问题和知识点...随着经验的积累,可以逐步探索更高级的主题,以提升自己的技能水平。
常用命令有:`CONNECT`连接数据库,`DESCRIBE`查看表结构,`SPOOL`用于将输出保存到文件,`QUIT`退出会话。 4. **CMD Oracle命令**: 在命令行环境中,你可以使用如`sqlplus username/password@database`来连接...
10. **Oracle常用指令**:手册可能会列出一些常用的数据库管理命令,如SQL*Plus命令、数据泵操作等,方便快速查找和执行。 由于文件列表中只有一个“新建文件夹”,没有具体的文件名,无法进一步细化知识点。但根据...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级...对于初学者来说,理解这些基本操作是学习Oracle数据库的基础,随着经验的积累,可以深入学习更高级的特性,以满足更复杂的数据管理需求。
### Oracle10g DBA 两日速成自学材料6:管理用户和安全性 #### 管理用户和安全性概述 在Oracle10g数据库管理中,“管理用户和安全性”是一个核心主题,对于确保数据库的安全运行至关重要。这部分内容主要涉及如何...
- **主要内容**:书中提供了常用的Unix命令的基本语法及其简短的示例,旨在帮助读者节省大量的手动操作时间。 - **组织结构**:全书按照主要主题领域进行了划分,包括理解Unix、构建Unix命令、Unix服务器环境等。 #...
首先,笔记介绍了SQL*Plus中的常用命令。SQL*Plus是Oracle数据库的命令行工具,用于交互式或批处理方式执行SQL语句和PL/SQL块。其中,`conn`用于连接数据库,`disconnect`用于断开连接但不退出窗口,`quit`或`exit`...
Burleson分享了他积累的20年的Unix技巧和技巧,为读者提供了基本的命令语法和简洁的示例。书中不仅包含命令的使用方法,还附有许多简短的Unix脚本,旨在帮助读者节省大量手动操作的时间。 ### 1.2 了解Unix 这一...
可以使用RMAN(Recovery Manager)工具或操作系统命令来备份Oracle数据库。 24. 如何恢复Oracle数据库? 当发生数据丢失或破坏时,可以使用RMAN或数据库的恢复模式来进行数据恢复。 25. 如何监控Oracle数据库性能...
#### SQL\*Plus的常用命令 - `conn[ect]`:用于连接数据库,如果是特权用户,需附加`as sysdba`或`as sysoper`。 - `disc[onnect]`:用于断开当前数据库连接。 - `psssw[ord]`:用于修改用户密码,需要以`sys`或`...
这篇教程将带你走进RMAN的世界,了解其基本概念和常用命令。 ### 1. RMAN简介 RMAN是Oracle 8i引入的一个内置组件,专门用于执行数据库备份和恢复任务。它通过与数据库服务器和物理存储设备的直接交互,提高了备份...
§3.4 DBA常用参数说明 71 §3.4.1 跟踪文件路径(BACKGROUND_DUMP_DEST) 71 §3.4.2 在缓冲区驻留对象(BUFFER_POOL_KEEP) 71 §3.4.3 版本兼容(COMPATIBLE) 72 §3.4.4 控制文件路径(CONTROL_FILES) 72 §...
3. **查看存储过程和包中的文本**:在Oracle中,存储过程和包是封装业务逻辑的常用方式。要查看存储过程或包的具体代码,可以使用`dba_source`视图。如`select * from dba_source where text like '%MASTER_FLAG%' ...
对于初学者来说,掌握Oracle的基础知识和常用命令是至关重要的。以下是一些Oracle的基本操作和查询语句的详细说明: 1. **查询语句**: - `SELECT` 语句用于从表中检索数据。例如,`SELECT * FROM table_name` 将...