Sql-Server

物理伺服器還是虛擬機 SQL Server?

  • September 11, 2019

有沒有辦法通過 SQL 腳本來了解 SQL Server 是在物理伺服器還是虛擬伺服器上執行?

我找到了一個腳本:

SELECT SERVERPROPERTY('computernamephysicalnetbios') AS ServerName
,dosi.virtual_machine_type_desc
,Server_type = CASE 
WHEN dosi.virtual_machine_type = 1
THEN 'Virtual' 
ELSE 'Physical'
END
FROM sys.dm_os_sys_info dosi

如果您配置了 CMS,請從您的 CMS 對多個伺服器執行以下腳本:

SELECT dosi.virtual_machine_type_desc
,Server_type = CASE 
WHEN dosi.virtual_machine_type = 1
THEN 'Virtual' 
ELSE 'Physical'
END
FROM sys.dm_os_sys_info dosi 

如果您使用的是 SQL Server 2008 R2 RTM 或更早版本,則有一個 CMD 命令“ SYSTEMINFO ”,其中包含有關係統模型的資訊。

或者

如果在實例上啟用了 cmdshell,那麼您可以從 SQL Server Management Studio 執行它。

DECLARE @result int
EXEC @result = xp_cmdshell 'SYSTEMINFO'

系統製造商:VMware, Inc.

系統型號:VMware Virtual Platform

SQL Server 2008 R2 Service Pack 1 中引入了virtual_machine_type, virtual_machine_type_descDMV中的新列 ( )sys.dm_os_sys_info

http://blogs.msdn.com/b/sqlosteam/archive/2011/05/11/more-on-dmv-changes-in-sql-2008-r2-sp1.aspx

引用自:https://dba.stackexchange.com/questions/81352