当前位置:  数据库>oracle

使用 resource_limit 及 profile 限制用户连接

    来源: 互联网  发布时间:2017-05-23

    本文导语: 数据库性能是一个永恒的话题,那就是如何使用更少的资源以达到更高效的性能。Oracle系统参数RESOURCE_LIMIT是一个用于控制用户对于数据库资源使用的参数,当值为true的时候即为启用,否则禁用。该参数结合profile来可以控制多...

数据库性能是一个永恒的话题,那就是如何使用更少的资源以达到更高效的性能。Oracle系统参数RESOURCE_LIMIT是一个用于控制用户对于数据库资源使用的参数,当值为true的时候即为启用,否则禁用。该参数结合profile来可以控制多种资源的使用,如CPU_PER_SESSION, CONNECT_TIME,LOGICAL_READS_PER_SESSION,
PRIVATE_SGA等等从而达到到节省资源来实现高效性能。本文描述了数据资源限制并演示了IDLE_TIME及SESSIONS_PER_USER的用法。

1、数据库资源限制的主要步骤
Implemented by
    * Setting RESOURCE_LIMIT = TRUE in the database startup parameter file (spfile or pfile)
    * Creating or modifying existing user profiles (DBA_PROFILES) to have one or more resource limit
    * Assigning a profile to a user whose resources are wished to be limited

It could happen that if the idle_time has been set on the DEFAULT profile, this can lead to an MTS dispatchers being set to 'sniped' and then getting 'cleaned up' via the shell script.

The removal of the dispatcher will result in other sessions 'dying' .In that case, If you are to implement resource limits, may be advisable to create new profiles that be assigned to users and not to change the characteristics of DEFAULT.
Alternatively, if you do change DEFAULT, ensure that all the properties that you have affected have been fully tested in a development environment.

用户超出限制后的完成的动作
When a resource limit is exceeded (for example IDLE_TIME) ... PMON does the following
    * Mark the V$SESSION as SNIPED
    * Clean up the database resources for the session
    * Remove the V$SESSION entry

2、资源限制的配置

--演示环境
SQL> select * from v$version where rownum show parameter resource_limit

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                      boolean    FALSE

--修改参数resource_limit为true
SQL> alter system set resource_limit=true;

System altered.

SQL> show parameter resource_limit

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                      boolean    TRUE

--创建profile,其idle_time为3分钟
SQL> create profile app_user limit idle_time 3;

Profile created.

--修改profile,限制每个用户只能开一个session
SQL> alter profile app_user limit sessions_per_user 1;

Profile altered.

--将用户指派给特定的profile
SQL> alter user scott profile app_user;

User altered.

--查看刚刚创建的profile,查询结果中的RESOURCE_NAME都可以作相应的设置或修改
SQL> select * from dba_profiles where profile='APP_USER';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
APP_USER                      COMPOSITE_LIMIT                  KERNEL  DEFAULT
APP_USER                      SESSIONS_PER_USER                KERNEL  1
APP_USER                      CPU_PER_SESSION                  KERNEL  DEFAULT
APP_USER                      CPU_PER_CALL                    KERNEL  DEFAULT
APP_USER                      LOGICAL_READS_PER_SESSION        KERNEL  DEFAULT
APP_USER                      LOGICAL_READS_PER_CALL          KERNEL  DEFAULT
APP_USER                      IDLE_TIME                        KERNEL  3
APP_USER                      CONNECT_TIME                    KERNEL  DEFAULT
APP_USER                      PRIVATE_SGA                      KERNEL  DEFAULT
APP_USER                      FAILED_LOGIN_ATTEMPTS            PASSWORD DEFAULT
APP_USER                      PASSWORD_LIFE_TIME              PASSWORD DEFAULT
APP_USER                      PASSWORD_REUSE_TIME              PASSWORD DEFAULT
APP_USER                      PASSWORD_REUSE_MAX              PASSWORD DEFAULT
APP_USER                      PASSWORD_VERIFY_FUNCTION        PASSWORD DEFAULT
APP_USER                      PASSWORD_LOCK_TIME              PASSWORD DEFAULT
APP_USER                      PASSWORD_GRACE_TIME              PASSWORD DEFAULT

16 rows selected.


    
 
 

您可能感兴趣的文章:

  • 请问专家,Linux中,锁的使用有数量上的限制吗?
  • linux如何限制指定进程的内存使用量?
  • 急急!!!高分求助,关于实现LINUX软件的使用限制问题
  • 请问linux系统能不能限制用户的cpu使用上限
  • Linux上能创建限制使用磁盘空间的用户吗?
  • 如何限制linux服务器用户cpu和mem的使用率
  • Linux下使用exec时, 命令行参数长度有限制吗?
  • 请问在linux中如何限制用户的硬盘使用空间?
  • 请问,FIFO的读写是否有字节数限制,PIPE_BUF如何使用?
  • 从sun网站下的solaris Sparc版,有没有功能和使用时间的限制?
  • 我下载了jbuilder7,但是有30天的使用限制,真是不爽,哪位仁兄有注册码?50分相谢!
  • Linux 如何限制普通用户只能使用一部分SHELL
  • zf框架的session会话周期及次数限制使用示例
  • 使用 TOP 子句限制UPDATE 语句更新的数据
  • 限制他人使用linux路由器
  • 请问在UNIX下可同时使用的套接字有没有限制?如果有,大概是多少? 谢谢!
  • [Oracle] 如何使用触发器实现IP限制用户登录
  • 深度揭露Oracle索引使用中的限制
  • 使用正则限制input框只能输入数字/英文/中文等等
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在XP下使用VMWare安装了Linux AS 5.6之后,使用FTP工具可以远程连接Linux,而在cmd命令行中却连接不上,什么原因 ?
  • 在linux下可以使用dao方式连接数据库吗?可以连接musql吗?回答就给分!急
  • 一个连接池使用的问题:这种写法没用上连接池?
  • 使用连接池时能否使用预编译的PrepareStatement或CallableStatement,200分求教
  • 我直接在LINUX 系统命令符下使用有乱码?而在WINDOWS下,使用PUTTY 连接却很正常?
  • 几台机器做lvs,使用100M 网线连接,文件系统使用NFS共享,读写速度会出现问题吗?
  • 见鬼了,为什么死活不能使用静态连接???
  • 关于使用数据库连接的问题。
  • 请教数据库连接池的使用....
  • 使用什么命令查看系统的最大连接数?
  • 大虾帮忙,怎样用JDBC-ODBC连接SQL2000并使用呀?
  • 在Linux下同时使用5000个TCP连接的问题
  • Oracle中SQL语句连接字符串的符号使用介绍
  • 新手使用SecureCRT连接linux的问题
  • 急!无法使用SecureCRT连接openssh
  • 急,jsp如何使用jdbc连接DB2,解决就结贴
  • Web服务器/前端 iis7站长之家
  • 使用X manager连接oracle数据库的步骤
  • 如何使用JSP 连接SQLSERVER数据库,请不吝赐教!(在线等,急救!)
  • 请问:在UINX如何编写、使用动态连接库???
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,