当前位置:首页 » 数据仓库 » oracle数据库的并发连接数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle数据库的并发连接数

发布时间: 2022-12-30 16:38:27

❶ Oracle并发连接数的设置

不能连接Oracle数据库了 提示相关的错误

OERR: ORA TNS:no appropriate service handler found

客户端连接间歇性失败 报错ORA

Cause: the listener could not find any available service handlers that are

appropriate for the client connection

Action: run lsnrctl services to ensure that the instance(s) have registered

with the listener and are accepting connections 检查lsnrctl service instance已经注册

状态显示ready时 可以连接

When the listener believes the current number of connections has reached maximum load

it may set the state of the service handler for an instance to blocked and begin refusing

ining client connections with either of the following errors: ora or ora

采用服务动态注册的方式 由PMON 通过SERVICE_UPDATE 来得到目前连接情况 但SERVICE_UPDATE 有时间间隔

所以 listener显示的连接数和当前实际的连接数可能不同

查询解决方法:

查看一下数据库现有的进程数 是否已经达到参数processes的大小

select count(*) from v$process; 取得数据库目前的进程数

select value from v$parameter where name = processes ; 取得进程数的上限

如已达到上限 修改initSID ora中的processes的大小

重新启动数据库到nomount状态下 执行create spfile from pfile; 并startup open

查询数据库自启动以来最大的并发数量

修改最大连接数:

alter system set processes = scope = spfile;

重启数据库:

shutdown immediate;

startup;

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

SELECT osuser a username cpu_time/executions/ || s sql_fulltext machine

from v$session a v$sqlarea b

where a sql_address =b address order by cpu_time/executions desc;

有的时候我们需要调整oracle数据库的最大链接数 而这个链接数的调整是在oacle下的dbs目录下init ora文件中调整的

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

sessions=( *process+ )

但是我们增加process数时 往往数据库不能启动了 这因为我们还漏调了一个unix系统参数 它是核心参数中的semmns 这是unix系统的信号量参数 每个process会占用一个信号量 semmns调整后 需要重新启动unix操作系统 参数才能生效 不过它的大小会受制于硬件的内存或ORACLE SGA 范围可从 —— 不等

但是 Processes的修改不仅应该调整init<sid> ora文件中的参数 而且应该调整OS的内核参数 象AIX HPUX Solaris SCO UNIXWare都是这样 OS的调整是需要重新启动的 而且这个参数的设置不能简单按照多少个终端要连到这个服务器上而定 最关键是考虑会有多少同时连上的session(在使用一些共享连接的中间件时 一般就不需要太大) 当然还要考虑一些Oracle的后台进程 还有一些系统维护工作需要多一些连接等

我的atmp大前置机器上对oracle调整的时候 其使用的是unixware操作系统 在做链接数调整的时候 要先对核心参数进行调整

核心主要相关的参数的调整如下

SHMMAX

SHMMIN

SHMMNI

SHMSEG

SEMMNI

SEMMSL

SEMMNS

SEMOPM

其中semmni semmns semmsl要加大 至少要比processes大

SEMMNI( ) 指定在核心中信号识别的数量 这是可以在任意给定时间被激活的唯一信号设置数量 缺省值是 最大值由系统自动调整产生

SEMMSL( ) 指定每个信号识别中信号量的最大值 缺省值是

SEMMNS 除最大db外的所有db 的PROCESSES之和+ *最大db的PROCESSES+ *

实例数 如 个实例进程数分别为 则=( + )+ * + * =

tyle= LINE HEIGHT: %; FONT FAMILY: 宋体 >SEMOPM( ) 指定在每个系统调用semop中能够被执行的信号操作量的最大值 缺省值是

SHMMAX( ) 指定了共享内存部分大小的最大值 等于

× 物理内存字节数

SHMMNI( ) 指定了系统范围内共享内存标识的最大值

SHMSEG( ) 指定了与每个进程相关连的共享内存块(或标识)的数量 缺省值是 与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关 因此 尽管一个进程拥有少于SHMSEG数值的共享内存块 它也有可能因为其有限的空间而不能与其它进程相联系

init ora中调整为

processes = # SMALL

#processes = # MEDIUM

# processes = # LARGE

From:! FE F A F! entry

修改oracle 的最大连接数

使用sys 以sysdba权限登录

c: sqlplus /nolog

SQL>conn / as sysdba

SQL> show parameter processes;

NAME TYPE VALUE

aq_tm_processes integer

db_writer_processes integer

job_queue_processes integer

log_archive_max_processes integer

processes integer

SQL> alter system set processes= scope = spfile;

系统已更改

SQL> show parameter processes;

NAME TYPE VALUE

aq_tm_processes integer

db_writer_processes integer

job_queue_processes integer

log_archive_max_processes integer

processes integer

SQL> create pfile from spfile;

文件已创建

lishixin/Article/program/Oracle/201311/18790

❷ 查看Oracle当前连接数的具体方案

以下的文章会教会你如何查看Oracle当前连接数 以及怎样来查看关于Oracle数据库的当前的相关连接数呢?我们只需要用到下面的相关的SQL语句来进行查询一下即可 以下就是文章的具体内容的介绍

select * from v$session where username is not null select username count(username) from v$session where username is not null group by username 查看不同用户的连接数

select count(*) from v$session 连接数

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

show parameter processes 最大连接

alter system set processes = value scope = spfile; 重启数据库 修改连接

lishixin/Article/program/Oracle/201311/16921

❸ 怎样查看oracle当前的连接数

目前总结的语句,在查看数据的连接情况很有用 ,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来。
1.
Sql代码
1.select count(*) from v$process
select count(*) from v$process --当前的数据库连接数
2.
Sql代码
1.select value from v$parameter where name = 'processes'
select value from v$parameter where name = 'processes'--数据库允许的最大连接数
3.
Sql代码
1.alter system set processes = 300 scope = spfile;
alter system set processes = 300 scope = spfile;--修改最大连接数:
4.
Sql代码
1.shutdown immediate;
2.startup;
shutdown immediate;
startup;--重启数据库
5.
Sql代码
1.SELECT osuser, a.username,cpu_time/executions/1000000||'s', b.sql_text,machine
2.from v$session a, v$sqlarea b
3.where a.sql_address =b.address order by cpu_time/executions desc;
SELECT osuser, a.username,cpu_time/executions/1000000||'s', b.sql_text,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;
--查看当前有哪些用户正在使用数据
6.
Sql代码
1.select count(*) from v$session
select count(*) from v$session --当前的session连接数
7.
Sql代码
1.select count(*) from v$session where status='ACTIVE'
select count(*) from v$session where status='ACTIVE'--并发连接数
8.
Sql代码
1.show parameter processes
show parameter processes --最大连接
9.
Sql代码
1.alter system set processes = value scope = spfile;

❹ 怎么查看oracle数据库并发

SQL> select count(*) from v$session #当前的连接数 SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数 SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数 SQL> show parameter processes #最大连接 SQL> select username,count(username) from v$session where username is not null group by username; #查看不同用户的连接数 希望能帮到你

❺ oracle能支持的最大连接数是多少解决方法

ORACLE的连接数理论上是没有上限的,设置多少都可以。
但是实际上与服务器的配置有关,配置越强悍,连接数可以设置的上限越高。
数据库的连接数是指响应客户端连接的最大进程数
注意:是有一个连接进程算一个session,不是指电脑台数。

❻ Oracle查看、修改连接数

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

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 = scope = spfile;

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

重启数据库

SQL>shutdown immediate;

SQL>startup;

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

SQL>select osuser a username cpu_time/executions/ || s sql_fulltext machine

SQL>from v$session a v$sqlarea b

SQL>where a sql_address = b address

SQL>order by cpu_time/executions desc;

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

启动oracle

su oracle

SQL>sqlplus system/pwd as sysdba //进入sql

SQL>startup //启动数据库

SQL>lsnrctl start //启动监听

sqlplus /as sysdba

SQL>shutdown immediate; //关闭数据库

SQL>startup mount;

lishixin/Article/program/Oracle/201311/18867

❼ 怎样查看oracle当前的连接数

--当前的连接数
SQL>selectcount(*)fromv$session
--#并发连接数
SQL>Selectcount(*)fromv$sessionwherestatus='ACTIVE'
--数据库允许的最大连接数
SQL>selectvaluefromv$parameterwherename='processes'
--#最大连接
SQL>showparameterprocesses
--#查看不同用户的连接数
SQL>selectusername,count(username)fromv$;

❽ 如何查看oracle数据库连接数

SQL> select count(*) from v$session ;--当前的连接数
SQL> Select count(*) from v$session where status='ACTIVE' ;--并发连接数
SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数
SQL> show parameter processes ;--最大连接
SQL> select username,count(username) from v$session where username is not null group by username; --查看不同用户的连接数

❾ Oracle能支持的最大连接数是多少

ORACLE的连接数理论上是没有上限的,设置多少都可以。实际上与服务器的配置有关,配置越强悍,连接数可以设置的上限越高。
数据库的连接数是指响应客户端连接的最大进程数
注意 是有一个连接进程算一个 不是指电脑台数

❿ 如何查看oracle数据库某一张表的最大连接数

用putty连接linux服务器,切换到
su
-
oracle
sqlplus
/nolog
连接到数据库;
conn
/
as
sysdba
show
parameter
session
alter
system
set
sessions
=
values(比如400)
scope
=
spfile;//注意此处的分号;
show
parameter
process
alter
system
set
processes
=
values(比如450)scope
=
spfile;//注意此处的分号;
show
parameter
license
//查看最大的process;
重新启动服务器;
oracle的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/system/中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,
需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或oracle
sga。范围可从200——2000不等。
semmns的计算公式为:semmns>processes+instance_processes+system
processes=数据库参数processes的值
instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系统所占用信号量。系统所占用信号量可用下列命令查出:#ipcs
-sb