• Oracle 的process和Session


    Oracle 的process和Session

    1.process 和session的概念:
    process:这个参数限制了能够连接到SGA的操作系统进程数(或者是Windows 系统中的线程数),这个总数必须足够大,从而能够适用于后台进程与所有的专用服务器进程,此外,共享服务器进程与调度进程的数目也被计算在内.此外,共享 服务器进程与调度进程的数目也被计算在内.因此,在专用服务器环境中,这是一种限制并发连接数的方法.

    疑点一:能够连接到SGA的操作系统进程数,这种进程包括哪些进程? Windows系统中的线程数,是指所有与oracle相关的进程的线程数之和?

    疑点二:在共享服务器和专用服务器环境中,算法有什么不同?

    哪位兄弟了解比较透彻,请指点一下,拜谢!

    Sessions:是被应用于oracle层次而非操作系统层次.在不考虑通过专用服务器或共享服务器进行登录的情况下,这个参数限制了对指定实例的并发登陆数.

    疑问:在C/架构中,是指Oracle用户登陆建立的会话数?在B/S架构中又怎么算呢?

    2,尽管概念不是很明白,遇到这种问题还得干活先:

     

    2.1  查看session:

    select * from v$session where username is not null

    select username,count(username) from v$session where username is not null group by username

     2.2  当前连接数:

    select count(*) from v$process

     2.3  查看连接数参数的设置情况

    select value from v$parameter where name = 'processes'

     

     

    2.4  Select count(*) from v$session where status='ACTIVE' #并发连接数

     


    1).通过SQLPlus修改
    Oracle的sessions和processes的关系是
    sessions=1.1*processes + 5

    使用sys,以sysdba权限登录:
    SQL> show parameter processes;
    NAME TYPE VALUE
    ------------------------------------ ----------- ---------------------------------------
    aq_tm_processes integer 1
    db_writer_processes integer 1
    job_queue_processes integer 10
    log_archive_max_processes integer 1
    processes integer 150
    SQL> alter system set processes=400 scope = spfile;
    系统已更改。
    SQL> show parameter processes;
    NAME TYPE VALUE
    ------------------------------------ ----------- -----------------------------------------
    aq_tm_processes integer 1
    db_writer_processes integer 1
    job_queue_processes integer 10
    log_archive_max_processes integer 1
    processes integer 150
    SQL> create pfile from spfile;
    文件已创建。


    重启数据库,OK!

    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  171966464 bytes
    Fixed Size                   787988 bytes
    Variable Size             145488364 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 524288 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> show parameter processes;

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ----------------
    aq_tm_processes                      integer     0
    db_writer_processes                  integer     1
    gcs_server_processes                 integer     0
    job_queue_processes                  integer     10
    log_archive_max_processes            integer     2
    processes                            integer     400
    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     0
    session_max_open_files               integer     10
    sessions                             integer     445
    shared_server_sessions               integer
    SQL>


    【注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5】


    2).通过修改oracle配置文件进行修改
    修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是init.ora文件,在9i中修改init.ora文件是无效的,这个文件由于是一个二进制的文件,不能直接使用notepad此类的编辑器打开。
    否则会报错误ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开此文件(直接编辑二进制文件),然后在Windows服务中重新启动Oracle服务器即可。
    3).通过Oracle Enterprise Manager Console在图形化管理器中修改
    a.以系统管理员的身份登入
    b.进入数据库的例程-配置-一般信息-所有初始化参数
    c.修改processes的值
    d.Sessions的值由公式sessions=1.1*process + 5派生得到

    本文出自 “蓝天--大海--” 博客,请务必保留此出处http://sunwayle.blog.51cto.com/114995/88870

  • 相关阅读:
    Linux客户/服务器程序设计范式——阿帕奇服务器(多进程)
    Linux客户/服务器程序设计范式2——并发服务器(进程池)
    封装readn
    C++学习之路: 函数适配器
    C++学习之路: 智能指针入门
    C++学习之路: 单例模板
    C++学习之路: 左值&右值 的讨论 和 ”move“ 值传递方式
    C++学习之路: 特殊操作符->的重载
    C++学习之路: 模板函数
    C++学习之路: 时间戳 封装成类
  • 原文地址:https://www.cnblogs.com/grefr/p/5046325.html
Copyright © 2020-2023  润新知