我有一台Windows Server 2003机器,我试图停止使用,但是我的SQL Server团队告诉我,仍然有来自这台机器的调用来到SQL Server机器。 我已经closures了所有的东西(我能想到的),但显然我仍然有一些东西在呼唤。
如何跟踪/查找调用SQL Server计算机的服务/应用程序?
这里有几个想法:
如果程序打开了持久连接,您将在以下位置看到进程ID(右列):
netstat -a -n -o | find "TCP" | find "1433"
(假设它连接到目标服务器上的默认实例TCP端口1433)。您也可以将目标服务器的IP放在那里,而不是1433。
如果它是间歇性的,那么使用netstat会更难。 进程监视器的TCP / IP监视function可以给你一个长期运行的轨迹,可能会告诉你一些东西。
您的SQL Serverpipe理员可以在其末尾运行SQL跟踪,查看哪些应用程序正在连接,但这并不一定准确。
除了已经很好的答案之外,在Profiler中设置一个跟踪,看看正在运行的sql语句是什么。 这应该给你一个很好的线索试图访问你的数据库。
如果你没有运行sql,那么其他东西是否试图访问服务器并不重要 – 你仍然可以closuresSQL服务器。
如果你需要知道还有什么networking电话正在接收,请安装wireshark并观看它们。
让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;
以前在Stackoverflow上回答: 如何确定ms sql server 2005中打开/活动连接的总数