我有一台 Windows Server 2003 机器,我正在尝试停用它,但我的 SQL Server 团队告诉我,仍然有从这台机器到 SQL Server 机器的调用。我已经关闭了所有东西(我能想到的),但显然我还有一些东西在呼唤。
如何跟踪/查找调用 SQL Server 机器的服务/应用程序?
我有一台 Windows Server 2003 机器,我正在尝试停用它,但我的 SQL Server 团队告诉我,仍然有从这台机器到 SQL Server 机器的调用。我已经关闭了所有东西(我能想到的),但显然我还有一些东西在呼唤。
如何跟踪/查找调用 SQL Server 机器的服务/应用程序?
这里有几个想法:
如果程序打开了持久连接,您将在以下位置看到进程 ID(右列):
(假设它连接到目标服务器上的默认实例 TCP 端口 1433。)您也可以将目标服务器的 IP 放在那里代替 1433。
如果它是间歇性的,你将很难用 netstat 来捕捉它。Process Monitor的 TCP/IP 监控功能可以为您提供一个长时间运行的跟踪,该跟踪可能会向您显示一些东西。
您的 SQL Server 管理员可以在他们的终端上运行 SQL 跟踪,并查看要连接的应用程序,但这不一定准确。
除了已经得到了很好的答案之外,在Profiler中设置跟踪并查看正在运行的 sql 语句是什么。这应该给你一个很好的线索,是什么试图访问你的数据库。
如果您没有运行 sql,那么其他东西是否正在尝试访问服务器并不重要 - 您仍然可以关闭 SQL 服务器。
如果您需要知道正在对其进行的其他网络调用,请安装wireshark并在它们发生时观察它们。
让 SQL Server 团队使用类似于以下内容的查询进行检查。这应该为您提供有关正在执行此操作的进程的更多信息:
以前在 Stackoverflow 上回答:如何确定 ms sql server 2005 中打开/活动连接的总数