我有一台 Windows Server 2003 计算机,我正试图将其停用,但我的 SQL Server 团队告诉我,仍有来自这台计算机的呼叫传到 SQL Server 计算机。我已关闭所有设备(我能想到的),但显然仍有设备在呼叫。
我如何跟踪/查找调用 SQL Server 计算机的服务/应用程序?
答案1
以下是一些想法:
如果程序打开了持久连接,您将在以下位置看到进程 ID(右列):
netstat -a -n -o | find "TCP" | find "1433"
(假设它连接到目标服务器上的默认实例,TCP 端口 1433。)您也可以将目标服务器的 IP 放入其中代替 1433。
如果是间歇性的,使用 netstat 捕获它会比较困难。进程监控可以给你一个长期的追踪,可能会告诉你一些东西。
您的 SQL Server 管理员可以在他们的终端运行 SQL 跟踪并查看要连接的应用程序,但这不一定准确。
答案2
答案3
让 SQL Server 团队使用类似以下的查询进行检查。这将为您提供有关执行此操作的进程的更多信息:
SELECT conn.connect_time, conn.client_net_address,
sess.login_time, sess.HOST_NAME, sess.program_name, sess.login_name
FROM sys.dm_exec_connections conn
INNER JOIN sys.dm_exec_sessions sess
ON conn.session_id = sess.session_id;
答案4
之前在 Stackoverflow 上回答过:如何确定 ms sql server 2005 中打开/活动连接的总数