- 浏览: 117095 次
- 性别:
- 来自: 重庆
文章分类
最新评论
ORA问题的分析和解决其实是一个很好的学习思路,抓住一个每一个ORA错误,然后进一步分析一些原因,总结,总会有不一样的收获,还是那句话,任何问题背后都是有原因的。
今天早上,开发的同事反馈说客户端中抛出了ORA错误。
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
希望我们能够帮忙看看是什么原因,怎么修复一下。
这个问题其实还是比较清晰的,就是在我们设置的profile中会定义对应session数限制,比如存在用户test,sessions_per_user为50,则test用户最多使用50个session.
默认的profile是DEFAULT ,在创建数据库之后会做基本的初始化,比如密码的过期时间等等
SQL> select *from DBA_PROFILES WHERE PROFILE='DEFAULT'
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
默认的profile DEFAULT中sessions_per_user是Unlimited,但是实际中我们为了限制资源的使用,还是会自定义profile,其实还是基于profile DEFAULT
sql> select username,profile from dba_users where username=’ USER_TEST’;
USERNAME PROFILE
------------------------------ ------------------------------
USER_TEST APP_TEST
这个时候可以看到对应的最大session数就是20了。
SQL> select * from dba_profiles where profile='APP_TEST';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------ -------------------------------- -------- ----------------------------------------
APP_TEST COMPOSITE_LIMIT KERNEL DEFAULT
APP_TEST SESSIONS_PER_USER KERNEL 20
APP_TEST CPU_PER_SESSION KERNEL DEFAULT
APP_TEST CPU_PER_CALL KERNEL DEFAULT
APP_TEST LOGICAL_READS_PER_SESSION KERNEL DEFAULT
APP_TEST LOGICAL_READS_PER_CALL KERNEL DEFAULT
APP_TEST IDLE_TIME KERNEL DEFAULT
APP_TEST CONNECT_TIME KERNEL DEFAULT
APP_TEST PRIVATE_SGA KERNEL DEFAULT
APP_TEST FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
APP_TEST PASSWORD_LIFE_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_REUSE_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_REUSE_MAX PASSWORD DEFAULT
APP_TEST PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
APP_TEST PASSWORD_LOCK_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_GRACE_TIME PASSWORD DEFAULT
基本知识介绍完毕。
如果抛出了ora-02391,我们可以通过alter user xxxxx profile xxxx sessions_per_user xxxx来进行解决。
问题是这种错误在数据库日志中不会显示,所以DBA也无从知晓,只能等待反馈,得到反馈后再解决问题。
我们可以变被动为主动。
使用下面的监控语句来进行检查。
比如我们设置阀值为90%,即每个user的对应的session超过profile中设定值的90%,就会返回结果。
select u.username||' with related profile '||p.profile||' has potential issue on '||p.resource_name ||' current value is '||s.cnt||' of '||p.limit ,
p.limit , s.cnt , p.profile
from dba_profiles p,
(select username,count(*) cnt from v$session where username is not null group by username) s,
dba_users u
where p.RESOURCE_NAME = 'SESSIONS_PER_USER'
and p.profile=u.profile
and s.username=u.username
--and p.profile !='DEFAULT'
and s.cnt*100/decode(p.limit,'DEFAULT',999,p.limit)>=90;
返回结果类似下面的形式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 MPC with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 5 of 100 100 5 DEFAULT
2 APCUSE with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 5 of 100 100 5 DEFAULT
3 CLIFF with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 16 of 100 100 16 DEFAULT
4 RPTMGR with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 12 of 100 100 12 DEFAULT
5 M2P with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 1 of 100 100 1 DEFAULT
6 GRACE with related profile SESSION_LIMIT3 has potential issue on SESSIONS_PER_USER current value is 30 of 120 120 30 SESSION_LIMIT3
7 RPTDB with related profile SESSION_LIMIT3 has potential issue on SESSIONS_PER_USER current value is 57 of 120 120 57 SESSION_LIMIT3
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2015-08/122360.htm
今天早上,开发的同事反馈说客户端中抛出了ORA错误。
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
希望我们能够帮忙看看是什么原因,怎么修复一下。
这个问题其实还是比较清晰的,就是在我们设置的profile中会定义对应session数限制,比如存在用户test,sessions_per_user为50,则test用户最多使用50个session.
默认的profile是DEFAULT ,在创建数据库之后会做基本的初始化,比如密码的过期时间等等
SQL> select *from DBA_PROFILES WHERE PROFILE='DEFAULT'
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
默认的profile DEFAULT中sessions_per_user是Unlimited,但是实际中我们为了限制资源的使用,还是会自定义profile,其实还是基于profile DEFAULT
sql> select username,profile from dba_users where username=’ USER_TEST’;
USERNAME PROFILE
------------------------------ ------------------------------
USER_TEST APP_TEST
这个时候可以看到对应的最大session数就是20了。
SQL> select * from dba_profiles where profile='APP_TEST';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------ -------------------------------- -------- ----------------------------------------
APP_TEST COMPOSITE_LIMIT KERNEL DEFAULT
APP_TEST SESSIONS_PER_USER KERNEL 20
APP_TEST CPU_PER_SESSION KERNEL DEFAULT
APP_TEST CPU_PER_CALL KERNEL DEFAULT
APP_TEST LOGICAL_READS_PER_SESSION KERNEL DEFAULT
APP_TEST LOGICAL_READS_PER_CALL KERNEL DEFAULT
APP_TEST IDLE_TIME KERNEL DEFAULT
APP_TEST CONNECT_TIME KERNEL DEFAULT
APP_TEST PRIVATE_SGA KERNEL DEFAULT
APP_TEST FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
APP_TEST PASSWORD_LIFE_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_REUSE_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_REUSE_MAX PASSWORD DEFAULT
APP_TEST PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
APP_TEST PASSWORD_LOCK_TIME PASSWORD DEFAULT
APP_TEST PASSWORD_GRACE_TIME PASSWORD DEFAULT
基本知识介绍完毕。
如果抛出了ora-02391,我们可以通过alter user xxxxx profile xxxx sessions_per_user xxxx来进行解决。
问题是这种错误在数据库日志中不会显示,所以DBA也无从知晓,只能等待反馈,得到反馈后再解决问题。
我们可以变被动为主动。
使用下面的监控语句来进行检查。
比如我们设置阀值为90%,即每个user的对应的session超过profile中设定值的90%,就会返回结果。
select u.username||' with related profile '||p.profile||' has potential issue on '||p.resource_name ||' current value is '||s.cnt||' of '||p.limit ,
p.limit , s.cnt , p.profile
from dba_profiles p,
(select username,count(*) cnt from v$session where username is not null group by username) s,
dba_users u
where p.RESOURCE_NAME = 'SESSIONS_PER_USER'
and p.profile=u.profile
and s.username=u.username
--and p.profile !='DEFAULT'
and s.cnt*100/decode(p.limit,'DEFAULT',999,p.limit)>=90;
返回结果类似下面的形式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 MPC with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 5 of 100 100 5 DEFAULT
2 APCUSE with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 5 of 100 100 5 DEFAULT
3 CLIFF with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 16 of 100 100 16 DEFAULT
4 RPTMGR with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 12 of 100 100 12 DEFAULT
5 M2P with related profile DEFAULT has potential issue on SESSIONS_PER_USER current value is 1 of 100 100 1 DEFAULT
6 GRACE with related profile SESSION_LIMIT3 has potential issue on SESSIONS_PER_USER current value is 30 of 120 120 30 SESSION_LIMIT3
7 RPTDB with related profile SESSION_LIMIT3 has potential issue on SESSIONS_PER_USER current value is 57 of 120 120 57 SESSION_LIMIT3
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2015-08/122360.htm
发表评论
-
Oracle Delete误删除数据恢复
2019-02-19 11:11 472获得chamber_move给定时间点时数据内容 select ... -
Oracle 操作
2016-07-19 09:25 543删除表空间及对应磁盘文件; drop tablespace R ... -
oracle recyclebin
2016-07-13 14:06 0oracle 回收站recyclebin是10g才有的新特性, ... -
Oracle数据库远程导入(EXP)、导出(IMP)
2016-04-25 16:20 2126用exp/imp远程(本地)操作 ... -
EXP-00091错误的说明和解决方法
2016-04-25 15:33 1041对于一个经常用oracle的 ... -
查看表空间使用情况
2016-03-10 11:46 669查看表空间使用情况 方法一: SELECT a.tablesp ... -
oracle 在删除表,表空间,用户时 如何释放磁盘空间
2016-03-10 11:30 1165一、drop表 执行drop table xx 语句 dr ... -
oracle 查看用户表数目,表大小,视图数目等
2016-03-10 11:01 1660oracle 查看用户表数目,表大小,视图数目等 查看当前用 ... -
小数处理函数(trun(),round(),ceil()和floor())
2015-07-28 16:49 1317trun()round()函数 trunc截取 ... -
关于Oracle取整的函数
2015-07-06 15:09 915关于Oracle取整的函数分别有以下几种: 1.取整( ... -
权限分配
2015-06-18 17:01 661view 权限分配 grant select on vw_mf ... -
Oracle回闪空间不足引起的ORA-03113问题排解
2015-04-03 13:44 4453Oracle回闪空间不足引起的ORA-03113问题排解 现 ... -
function
2014-09-02 16:03 486create or replace function getS ... -
oracle中替换字符串中回车换行符
2014-04-29 18:24 2144select trim(replace(a.ctimer_pi ... -
Oracle字符串处理函数
2014-01-08 17:09 722项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料 ... -
oracle translate() 详解+实例
2014-01-08 17:05 738oracle translate() 详解+实 ... -
ITPUB网址
2013-12-24 09:34 909ITPUB网址: http://blog.itpub.net/ ... -
oracle常用系统表
2013-09-10 13:26 670dba_开头..... dba_users 数据库用户信息 ... -
分布式 ORA-02049 错误的解决[转]
2013-09-04 13:59 2334一.系统环境: ORACLE:9IR2 OS:WINDOWS ... -
ORACLE 异常错误处理
2013-07-26 09:44 701ORACLE 异常错误处理 本篇主要内容如下: 5.1 异常 ...
相关推荐
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决这些问题。 ORA-28040错误是因为客户端和数据库服务器在版本兼容性上存在不匹配。...
### 创建物化视图ORA-12014错误解决方法 #### 背景介绍 在Oracle数据库中,物化视图(Materialized View)是一种用于优化查询性能的重要工具。它预先计算并存储了复杂的查询结果,从而在实际查询时能够快速地返回...
摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP工具的应用 Oracle 8I数据库EXP工具是Oracle数据库提供...
### ORA-01033 错误解决方法 #### 概述 在数据库管理过程中,遇到诸如ORA-01033等错误代码是非常常见的。这些错误往往与数据库实例的状态、文件系统问题或是配置不当有关。ORA-01033 错误通常表示在启动或关闭...
然而,在日常使用过程中,我们可能会遇到各种错误代码,其中“ORA-12737”是一个常见的错误,它通常与网络连接或者数据库实例的启动有关。本文将深入探讨ORA-12737错误的原因、解决方案以及如何利用Oracle最新版本的...
### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...
完美解决Navicat连接Oracle时提示:“ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK”问题的方法。
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
"ora-28056解决方法" Oracle 11g中,ora-28056错误是由于写入审核记录到Windows事件日志失败所致。该错误通常会导致数据库不可用,无法连接到数据库。 解决方法: 1. 打开事件查看器(Event Viewer):在 Windows...
在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行详细解析,并给出相应的解决方案。 #### 二、ORA-00132: Syntax Error or ...
解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题
### 解决Drop Goldengate 用户时报ORA-00604 ORA-20782 ORA-06512问题 #### 一、问题背景与现象 在进行Oracle数据库管理过程中,经常会遇到需要删除用户的场景。当尝试执行`drop user goldengate cascade;`命令时,...
如果发现目录权限存在问题,可以调整目录权限以解决问题。示例中的解决方案为: ```sql sys@sec> drop directory dpump_dir; -- 删除原有目录 Directory dropped. sys@sec> create directory dpump_dir as '/db_...
本文将详细介绍如何在Windows和Linux操作系统下解决ORA-00702错误。 **ORA-00702错误解析** ORA-00702错误信息表明数据库实例试图访问一个尚未完全初始化的数据文件或控制文件。这可能是由于数据库在不正常的情况下...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
标题中的"ora-0094问题解决"指的是在Oracle数据库操作中遇到的错误代码ORA-0094。这个错误通常表示用户尝试执行的SQL语句违反了表的约束条件,可能是由于试图添加的数据与现有数据冲突,比如违反了唯一性约束、外键...
Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的...本文通过对ORA-04031错误的分析和解决方法的介绍,旨在帮助读者更好地理解Oracle数据库中的ORA-04031错误,并提供了实用的解决方法。