ITPub博客

首页 > 数据库 > Oracle > oracle11g查看全库及用户的资源限制

oracle11g查看全库及用户的资源限制

原创 Oracle 作者:xiaoyan5686670 时间:2015-12-08 13:49:27 0 删除 编辑
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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22569416/viewspace-1868212/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-07-25

  • 博文量
    108
  • 访问量
    197021