方法一
创新互联公司网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了做网站、成都做网站,成都网站设计,广告投放,成都做网站选创新互联公司,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
1 通过触发器,当产生新会话时触发将ip和操作写入到表中
当前会话ip
select USER,sid,serial#,UTL_INADDR.GET_host_ADDRESS as host,SYS_CONTEXT('USERENV','ip_ADDRESS') as local,SYSDATE
from V$session;
方法二:
查询监听日志,可以查看ip信息
cd $ORACLE_HOME/network/log/listener.log
通过审计功能,对用户或对操作进行审计
方法三:
通过日志挖掘,找出当前日志或归档日志里的sql
exec dbms_logmnr.start_logmnr(options=dbms_logmnr.dict_from_online_catalog);
用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的计算公式为:semmnsprocesses+instance_processes+system
processes=数据库参数processes的值
instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系统所占用信号量。系统所占用信号量可用下列命令查出:#ipcs
-sb
查看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
当前连接数:
select count(*) from v$process
查看连接数参数的设置情况
select value from v$parameter where name = 'processes'
Select count(*) from v$session where status='ACTIVE' #并发连接数
你可以通过下面语句去查看:
select
lic.SESSIONS_CURRENT
from
v$license
lic;
或者你也可以通过下面语句去查看下,也许也有你想要理解的东西
select
name,value
from
v$parameter;
在这些参数中,通过那么去找到你想要的对象的值;
希望能帮助你,也能被采纳!
目前总结的语句,在查看数据的连接情况很有用 ,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来。
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;
查看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
当前连接数:
select count(*) from v$process
查看连接数参数的设置情况
select value from v$parameter where name = 'processes'
Select count(*) from v$session where status='ACTIVE' #并发连接数