如何实时查看数据库当前活动连接

如何实时查看数据库当前活动连接,第1张

在实际的工作中,数据库管理员(DBA)需要经常要定时对数据库的连接情况进行检查,查看与数据库建立的会话数目是不是正常,假如建立了过多的连接,会消耗许多数据库的资源。与此同时,针对一些“挂死”的连接,可能会需要DBA自行手工进行清理。

下面的SQL语句列出当前数据库建立的会话情况:

select sid,serial#,username,program,machine,status

from v$session;

输出的结果:

SID SERIAL# USERNAME PROGRAM MACHINE STATUS

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

1 1 ORACLEEXE WORK3 ACTIVE

2 1 ORACLEEXE WORK3 ACTIVE

3 1 ORACLEEXE WORK3 ACTIVE

4 1 ORACLEEXE WORK3 ACTIVE

5 3 ORACLEEXE WORK3 ACTIVE

6 1 ORACLEEXE WORK3 ACTIVE

7 1 ORACLEEXE WORK3 ACTIVE

8 27 SYS SQLPLUSEXE WORKGROUP\WORK3 ACTIVE

11 5 DBSNMP dbsnmpexe WORKGROUP\WORK3 INACTIVE

其中SID 会话(session)的ID号;

SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;

USERNAME 建立该会话的用户名;

STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何 *** 作;

假如要手工断开某个会话,则执行:

alter system kill session 'SID,SERIAL#';注意:在上面的示例中,SID为1到7(USERNAME列为空)的会话,它是Oracle数据库的后台进程,请大家不要对这些会话进行任何 *** 作。

1、用SQL语句:select

count()

from

masterdbosysprocesses

或者

sp_who

2、用管理界面:

SQL2000:进入企业管理器,管理——当前活动——进程信息

SQL2005:进入manager

studio

,展开对象管理器,管理——右键“活动监视器”——查看进程

SQL2008:进放manager

studio

在菜单栏下面有一行图标,点击最后一个图标“活动监视器”,进入活动监视器的界面后,点击“进程”

1)点击Net Configuration Assistant

2) 在d出的对话框中选择本地Net服务名配置,点下一步

3) 在服务名配置对话框中选择添加,点下一步

4)在如下对话框中填写要访问的oralce数据库的服务名,该服务名可以通过oralce登录用户名进入环境,在cshrc中,环境变量ORACLE_SID对应的值便是这个服务名,也可以在oracle用户环境下执行grep | env ORACLE_SID查找。

点击下一步

5)选择TCP协议,点下一步

6)主机名中填写要访问的oracle数据库服务器,使用标准端口号1521,点下一步

7)选中“是,进行测试”,点下一步

8) 点更改登录,填写要访问的数据库用户名和密码,确保其正确。此处主要是验证前面配置是否正确,如正确这里的测试就可以成功。

如果不正确请检查服务名、ip地址、用户名、密码中是否有写错,并改之,就可以成功了。

测试成功后点下一步

9)在下图中填写网络服务名,此处的网络服务名可以随意取名,点下一步,后面配置数据源的时候用的就是这个网络服务名

方法一用起来有点小复杂,不过可以了解数据库的配置步骤,方法二相对来说简单很多

找到本机oracle数据库安装的如下路径,如:

F:\app\Administrator\product\1110\client_1\network\admin,在该路径下有个文件tnsnamesora,打开文件会发现里面有很多连接配置,直接拷贝一个修改如下红色字

SYSDB_102 = //对应的就是上面方法一提到的网络服务名

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 104124102)(PORT = 1521)) //访问数据库的ip

)

(CONNECT_DATA =

(SERVICE_NAME = sysdb) //数据库服务名

)

)

当配置好后,就可以用PLSQL访问数据库了

1、通过系统的“性能”来查看:

开始->管理工具->性能(或者是运行里面输入

mmc)然后通过

添加计数器添加

SQL

的常用统计

然后在下面列出的项目里面选择用户连接就可以时时查询到sql

server数据库连接数了。

不过此方法的话需要有访问那台计算机的权限,就是要通过windows账户登陆进去才可以添加此计数器。

2、通过系统表来查询:

SELECT

FROM

[Master][dbo][SYSPROCESSES]

WHERE

[DBID]

IN

(

SELECT

[DBID]

FROM

[Master][dbo][SYSDATABASES]

WHERE

NAME='databaseName'

)

databaseName

是需要查看的数据库,然后查询出来的行数,就是当前的sql

server数据库连接数。不过里面还有一些别的状态可以做参考用。

3、通过系统过程来查询:

SP_WHO

'loginName'

loginName

是当然登陆Sql的用户名,一般程序里面都会使用一个username来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。

如果不写loginName,那么返回的就是所有的sql

server数据库连接。

你好,判断连接是否成功,可以判断conn是否为空,或者是否有异常抛出

try{

Connection

con

=

DriverManagergetConnection(url

,

username

,

password

)

;

}catch(SQLException

se){

Systemoutprintln("数据库连接失败!");

seprintStackTrace()

;

}

希望可以帮助到你

以上就是关于如何实时查看数据库当前活动连接全部的内容,包括:如何实时查看数据库当前活动连接、如何查看当前数据库的连接信息、如何用plsql查看数据库连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9418605.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存