DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。
查看数据库情况通过执行sql语句来实现,oracle安装时候提供了sqlplus工具,sql可以在sqlplus下执行。
1、进行查询之前,首先进入数据库用户,进入sqlplus工具,命令如下:
su -oracle
sqlplus /as sysdba(用户名)
2、查询数据库当前进程的连接数:select count(*) from v$process;
3、查询数据库的并发连接数:select count(*)from v$session;
4、查看数据库允许的最大连接数:select value from v$session where name ='processes';
或者命令:shouw parameter processes;
5、修改数据库允许的最大连接数:alter system set processes = 300 scope =spfile;(需要重启数据库才能实现连接数的修改)
重启数据库:shutdown immediate;
startyp;
6、查看当前数据库建立的会话情况:select sid,serial#,username,program,status fromv$session;
unix1个用户session对应一个操作系统process(进程),而windows体现在线程上
输出结果为:
SID SERIAL#USERNMAE PROGRAM MACHINE STATUS
---- ------- ------- ------ --------- ------
1 1 ORACLE.EXE WORK3 ACTIVE
2 1 ORACLE.EXE WORK3 ACTIVE
3 1 ORACLE.EXE WORK3 ACTIVE
4 1 ORACLE.EXE WORK3 ACTIVE
5 3 ORACLE.EXE WORK3 ACTIVE
6 1 ORACLE.EXE WORK3 ACTIVE
7 1 ORACLE.EXE WORK3 ACTIVE
8 27 SYS SQLPLUS.EXE WORKGROUP\\WORK3 ACTIVE
11 5 DBSNMP DBSNMP.EXEWORKGROUP\\WORK3 INACTIVE
【说明】
sid 会话(session)的ID号;
serial# 会话的序列号,和sid一起用来唯一标示一个会话;
username 建立该会话的用户名;
programe 这个会话是用说明工具连接到数据库的;
status 当前这个会话的状态,ACTIVE标示会话正在执行某些任务,INACTIVE标示当前会话没有执行任何操作;
注意:
1、如果DBA要手工断开某个INACTIVE的会话,则执行:alter system kill session\'SID,SERIAL#\;
2、上例中SID为1到7,username列为空的会话,oracle的后台进程,不要对浙西而绘画进行任何操作。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。