Oracle全库的资源限制
Oracle初始化参数中很多都是用于对资源的配置,其中有一些常用的资源限制:
SQL> show parameter ga_
NAME TYPE VALUE
------------------------------------ ----------- -------
pga_aggregate_target big integer 348M
sga_max_size big integer 524M
sga_target big integer 524M
这些为oracle的内存限制参数,11g还有memory_target
SQL> show parameter session
NAME TYPE VALUE
------------------------------------ ----------- -------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
session_cached_cursors integer 20
session_max_open_files integer 10
sessions integer 170
shared_server_sessions integer
#这些为session数的相关设置,常用的是“sessions”,表示系统允许的最多session数目
SQL> show parameter process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
# 进程的相关参数,常用的processes,表示系统所允许的最多进程数。我们常常用sessions+processes来限制数据库的并行处理度,避免太高的并发造成系统反应异常。而且大多数时候过多的session或process数往往标志着某种异常的使用!
SQL> show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------
cpu_count integer 12
parallel_threads_per_cpu integer 2
#限制oracle的cpu使用,系统一般默认配置为所有cpu
SQL> show parameter size
NAME TYPE VALUE
------------------------------------ ----------- --------
bitmap_merge_area_size integer 1048576
create_bitmap_area_size integer 8388608
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
...
max_dump_file_size string UNLIMITED
# 大多的_size参数都是oracle内部工作区的大小设置,这个oracle都能自动优化设置,一般无需人为干预。
# max_dump_file_size定义DUMP文件的大小限制
2.用户资源限制:
【表空间的限制】
用户默认对所有表空间的限额都为unlimited即无限制的,可以人为地限制某用户仅对特定表空间有写权限:
revoke unlimited tablespace from user1;
alter user user1 quota unlimited on tablespaceA;
alter user user1 quota unlimited on tablespaceB;
从下面视图可查看表空间的限额情况:
SQL> select * from dba_ts_quotas
TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS
----------------- ------------ ------- ---------- ------- ----------
FLYINFO_DAT FLYINFO 589824 -1 72 -1
TEMP DCS_SYS 0 -1 0 -1
T3_NEWBPP_DAT DCS_SYS 6881280 -1 840 -1
T3_NEWBPP_DAT DCS_SYS_BAK 4325376 -1 528 -1
【profile对用户资源的限制】
下面为10.2.0.3 oracle上默认的DEFAULT profile包含的参数及默认值:
SQL> select * from dba_profiles
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 10
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定义里面只有两类,一类是定义用户登陆验证的各种行为限制,一类就是对系统资源的限制。
具体资源限制项的含义:
session_per_user:用户所允许的最多并发会话数
cpu_per_session:会话的CPU时间限制,单位为百分之一秒
cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒
connect_time:指定会话的总的连接时间,以分钟为单位
idle_time:指定会话连续idle的最长时间,超过则会自动断开,单位:分钟
logical_reads_per_session:指定一个会话允许最大逻辑读数
logical_read_per_call:一次执行SQL(解析、执行和提取)调用所允许的最大逻辑读数目
private_sga:一个会话在SGA中所允许分配的最大空间,单位:字节(只对共享服务器结构有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)
composite_limit:一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算cpu_per_session,connect_time,logical_reads_per_session和private-sga总的service units
资源限制配置过程:
(1)首先得保证初始化参数resource_limit为true,否则profile里的这些资源限制并不起作用
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- -------
resource_limit boolean FALSE --默认为false的!
SQL> alter system set resource_limit=true scope=both;
System altered.
(2)新建用户profile(不建议直接修改默认DEFAULT profile)
SQL> create profile my_user_profile limit
sessions_per_user 20
idle_time 60;
SQL> alter user zhangsan profile my_user_profile;
这时再查看dba_profiles视图就可看到新建的profile设置。
可以动态修改profile的参数:
SQL> alter profile my_user_profile sessions_per_user 3;
Oracle初始化参数中很多都是用于对资源的配置,其中有一些常用的资源限制:
SQL> show parameter ga_
NAME TYPE VALUE
------------------------------------ ----------- -------
pga_aggregate_target big integer 348M
sga_max_size big integer 524M
sga_target big integer 524M
这些为oracle的内存限制参数,11g还有memory_target
SQL> show parameter session
NAME TYPE VALUE
------------------------------------ ----------- -------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
session_cached_cursors integer 20
session_max_open_files integer 10
sessions integer 170
shared_server_sessions integer
#这些为session数的相关设置,常用的是“sessions”,表示系统允许的最多session数目
SQL> show parameter process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
# 进程的相关参数,常用的processes,表示系统所允许的最多进程数。我们常常用sessions+processes来限制数据库的并行处理度,避免太高的并发造成系统反应异常。而且大多数时候过多的session或process数往往标志着某种异常的使用!
SQL> show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------
cpu_count integer 12
parallel_threads_per_cpu integer 2
#限制oracle的cpu使用,系统一般默认配置为所有cpu
SQL> show parameter size
NAME TYPE VALUE
------------------------------------ ----------- --------
bitmap_merge_area_size integer 1048576
create_bitmap_area_size integer 8388608
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
...
max_dump_file_size string UNLIMITED
# 大多的_size参数都是oracle内部工作区的大小设置,这个oracle都能自动优化设置,一般无需人为干预。
# max_dump_file_size定义DUMP文件的大小限制
2.用户资源限制:
【表空间的限制】
用户默认对所有表空间的限额都为unlimited即无限制的,可以人为地限制某用户仅对特定表空间有写权限:
revoke unlimited tablespace from user1;
alter user user1 quota unlimited on tablespaceA;
alter user user1 quota unlimited on tablespaceB;
从下面视图可查看表空间的限额情况:
SQL> select * from dba_ts_quotas
TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS
----------------- ------------ ------- ---------- ------- ----------
FLYINFO_DAT FLYINFO 589824 -1 72 -1
TEMP DCS_SYS 0 -1 0 -1
T3_NEWBPP_DAT DCS_SYS 6881280 -1 840 -1
T3_NEWBPP_DAT DCS_SYS_BAK 4325376 -1 528 -1
【profile对用户资源的限制】
下面为10.2.0.3 oracle上默认的DEFAULT profile包含的参数及默认值:
SQL> select * from dba_profiles
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 10
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定义里面只有两类,一类是定义用户登陆验证的各种行为限制,一类就是对系统资源的限制。
具体资源限制项的含义:
session_per_user:用户所允许的最多并发会话数
cpu_per_session:会话的CPU时间限制,单位为百分之一秒
cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒
connect_time:指定会话的总的连接时间,以分钟为单位
idle_time:指定会话连续idle的最长时间,超过则会自动断开,单位:分钟
logical_reads_per_session:指定一个会话允许最大逻辑读数
logical_read_per_call:一次执行SQL(解析、执行和提取)调用所允许的最大逻辑读数目
private_sga:一个会话在SGA中所允许分配的最大空间,单位:字节(只对共享服务器结构有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)
composite_limit:一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算cpu_per_session,connect_time,logical_reads_per_session和private-sga总的service units
资源限制配置过程:
(1)首先得保证初始化参数resource_limit为true,否则profile里的这些资源限制并不起作用
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- -------
resource_limit boolean FALSE --默认为false的!
SQL> alter system set resource_limit=true scope=both;
System altered.
(2)新建用户profile(不建议直接修改默认DEFAULT profile)
SQL> create profile my_user_profile limit
sessions_per_user 20
idle_time 60;
SQL> alter user zhangsan profile my_user_profile;
这时再查看dba_profiles视图就可看到新建的profile设置。
可以动态修改profile的参数:
SQL> alter profile my_user_profile sessions_per_user 3;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22569416/viewspace-1868212/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22569416/viewspace-1868212/