Sql-Server

有沒有辦法查詢 SQL Server 2005/2008 的日誌文件位置?

  • October 16, 2012

我有一種方法可以查詢 SQL Server 2005+ 的各種日誌文件的文件系統位置。我的意思是文本日誌文件,而不是數據庫事務日誌文件?

例如,我的 SQL 代理、錯誤日誌和維護計劃都寫入一個名為:

D:\MSSQLData\MSSQL.1\MSSQL\LOG

在此處輸入圖像描述

這是我需要找到名稱的文件夾。

更新:

除了尋找 SQL 書籍外,我還瀏覽了以下系統資料庫

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER` 

但我什麼也沒有。

我也想要一種“官方”的方式來實現這一點,並且寧願不依賴未記錄的功能。

SELECT REPLACE(CAST(SERVERPROPERTY('ErrorLogFileName') AS nvarchar(512)), 'ERRORLOG', '')

編輯:用更多的Google搜尋來驗證它。另請注意,SERVERPROPERTY 函式的此特定參數“ErrorLogFileName”未記錄,因此不受 Microsoft 支持。使用風險自負。等等等等

如果您有 Powershell,它將為您提供。如果您安裝了 SSMS 2005,您可以在替換“YourServerNameHere”後按原樣執行它。如果您正在執行 SSMS 2008,請刪除第一行並取消註釋第二行。

Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -EA Stop
#Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -EA Stop

$srvObj = new-object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList "YourServerNameHere"
$srvObj.ErrorLogPath

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