1、利用配置文件实施资源限制
Oracle只有在RESOURCE_LIMIT系统初始化参数值被设置为TRUE时才会实施资源限制,这个参数默认值为FALSE。
配置文件资源限制
设置 | 说明 |
CPU_PER_SESSION | 用户在一次会话期间可以占用的CPU时间问题,单位百分之一秒。达到限制,会话终止,并出现Oracle服务错误消息。断开连接可重置 |
CPU_PER_CALL | 单条SQL语句可以占用的CPU时间总量,单位百分之一秒。达到限制,SQL会终止,并且没有完成的任何事务都将回滚。用户保持连接状态 |
SESSIONS_PER_USER | 用户同时具有的最大并发会话数 |
CONNECT_TIME | 用户保持与实例连接的最长时间(以分钟为单位) |
IDLE_TIME | 用户在不执行任何数据库活动时保持与实例连接的最长时间(以分钟为单位) |
LOGICAL_READS_PER_SESSION | 用户在会话期间允许读取的数据块。一但读取完这个参数指定的数据块数,用户就需要另启会话 |
LOGICAL_READS_PER_USER | 用户执行一条SQL语句时允许读取的数据块数。一旦读取完这个参数指定的数据块数,这条SQL就会终止,并且没有完成的任何事务都将回滚 |
PRIVATE_SGA | 多线程服务器(Multi-Threaded Server,简写为MTS)环境中,指定用户会话在SGA中能占用的最大字节数。不是MTS环境,可以忽略 |
COMPOSITE_LIMIT | 指定下列4种资源限制的加权平均值: CPU_PER_SESSION CONNECT_TIME LOGICAL_READS_PER_SESSION PRIVATE_SGA COMPOSITE_LIMIT设置允许Oracle监视上述所有参数的值。如果这4个参数的加权平均值超过了COMPOSITE_LIMIT所指定的值,用户会话就会终止 |
2、创建、更改以及删除配置文件
使用CREATE PROFILE、ALTER PROFILE和DROP PROFILE命令创建、更改和删除配置文件。
CREATE PROFILE profile_name LIMIT [SESSIONS_PER_USER value] [CPU_PER_SESSION value] [CPU_PER_CALL value] [CONNECT_TIME value] [IDLE_TIME value] [LOGICAL_READS_PER_SESSION value] [LOGICAL_READS_PER_CALL value] [composite_LIMIT value] [PRIVATE_SGA bytes [K|M]] |
DROP PROFILE profile_name [CASCADE] |
SQL> select * from dba_profiles; |
3、为用户指派配置文件
在任意时候,用户都只具有一个有效的配置文件。
下面是例子:
SQL> create profile user_profile limit 2 sessions_per_user 2 3 connect_time 5; Profile created. SQL> alter user dandan profile user_profile; User altered. SQL> create user abc identified by abc123 2 profile user_profile; User created. |