如何查看哪些進程和服務器正在使用數據庫


工作中有時會碰到需要遷移數據庫的時候,如更換機房,更換新服務器等。遷移數據庫最重要是要確保正在運行的程序不會因為漏更改連接字符串而導致程序報錯。但有時維護的項目可能老舊,沒有相關維護文檔,還有一些使用該數據庫的windows服務也可能遍布在其他服務器上,這時我們該如何找到所有正在使用該數據庫的服務呢? 下面以windows服務器和Sql Server數據庫為例,數據庫服務器的ip是192.168.6.189,linux平台的思路差不多,只是命令有變化。

1、查看Sql Server進程ID

打開任務管理器,點擊“查看->選擇列”,勾選“PID(進程標識符)

 

進程名稱為“sqlservr.exe”的PID就是Sql Server的進程ID,當前是1800

2、查看當前連接Sql Server的服務器列表

打開命令行,輸入下面的命令:

netstat -ano|find "1800"

結果如下:

C:\Documents and Settings>netstat -ano|find "1800"
  TCP    0.0.0.0:3758           0.0.0.0:0              LISTENING       1800
  TCP    0.0.0.0:5025           0.0.0.0:0              LISTENING       1800
  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       1800
  TCP    192.168.6.189:3758     192.168.6.76:2685      ESTABLISHED     1800
  TCP    192.168.6.189:3758     192.168.6.76:2725      ESTABLISHED     1800

該命令會打印出所有連接到1800進程的服務器列表,可以看到192.168.6.76這台服務器正在連接到Sql Server。

3、查看連接到數據庫服務器的進程

進入服務器192.168.6.76,打開命令行,輸入下面的命令:

netstat -ano |find "6.189"

6.189是數據庫服務器的ip,find命令用來查找帶有"6.189"字符串的行。輸出如下:

d:\webroot>netstat -ano |find "6.189"
  TCP    192.168.6.76:2685      192.168.6.189:3758     ESTABLISHED     8520
  TCP    192.168.6.76:2725      192.168.6.189:3758     ESTABLISHED     8520

結果最右邊的就是正連接到數據庫服務器的進程ID,當前是8520.現在已經找到進程了^0^,你只需打開任務管理器,看下該進程ID對應是進程是什么,就能准確定位了。

4、查看IIS進程對應的站點

有時我們找到使用數據庫的進程了,但是像IIS這種程序,因為所有站點的進程名都相同,所以無法准備定位了。

有什么方法可以找到w3wp.exe對應的站點名呢?可以使用iisapp命令:

d:\webroot>iisapp -a
W3WP.exe PID: 6584   AppPoolId: test1.com
W3WP.exe PID: 16304   AppPoolId: Special
W3WP.exe PID: 8520   AppPoolId: test2.com
W3WP.exe PID: 3164   AppPoolId: test3.com

iisapp命令會輸出W3WP進程對應的應用程序池名,通過應用程序池名我們就能准備定位站點:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM