欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

查看oracle数据库允许的最大连接数和当前连接数的方法

程序员文章站 2022-09-14 15:14:52
第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter...

第一步,在cmd命令行,输入sqlplus

第二步,根据提示输入用户名与密码

1. 查看processes和sessions参数

SQL> show parameter processes

NAME TYPE VALUE

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 50

SQL> show parameter sessions

NAME TYPE VALUE

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

sessions integer 60

shared_server_sessions integer

2. 修改processes和sessions值

SQL> alter system set processes=300 scope=spfile;

系统已更改。

SQL> alter system set sessions=335 scope=spfile;

系统已更改。

Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围

++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改

++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了

++ scope=both 内存和spfile都更改

++ 不指定scope参数,等同于scope=both.

3. 修改processes和sessions值必须重启oracle服务器才能生效

ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:

sessions=(1.1*process+5)

摘(二)

查询数据库当前进程的连接数:

select count(*) from v$process;

查看数据库当前会话的连接数:

elect count(*) from v$session;

查看数据库的并发连接数:

select count(*) from v$session where status='ACTIVE';

查看当前数据库建立的会话情况:

select sid,serial#,username,program,machine,status from v$session;

查询数据库允许的最大连接数:

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

或者:show parameter processes;

修改数据库允许的最大连接数:

alter system set processes = 300 scope = spfile;

(需要重启数据库才能实现连接数的修改)

重启数据库:

shutdown immediate;

startup;

查看当前有哪些用户正在使用数据:

select osuser,a.username,cpu_time/executions/1000000's' ,sql_fulltext,machine

from v$session a,v$sqlarea b

where a.sql_address = b.address

order by cpu_time/executions desc;

备注:UNIX 1个用户session对应一个操作系统process,而Windows体现在线程。

启动oracle

su - oracle

sqlplus system/pwd as sysdba //进入sql

startup //启动数据库

lsnrctl start //启动监听

sqlplus "/as sysdba"

shutdown immediate;

startup mount;

alter database open;

------------------------------------------------------------------------

select sum(pga_used_mem)/1024 total_used, sum(pga_used_mem)/count(1)/1024 used_avg, sum(pga_alloc_mem)/1024 total_alloc, sum(pga_alloc_mem)/count(1)/1024 alloc_avg from v$process;

TOTAL_USED USED_AVG TOTAL_ALLOC ALLOC_AVG

---------- ---------- ----------- ----------

60971.5898 1847.62393 142401.8125 4315.20643

这里可以看到,大概一个分配5M左右,每个使用2M