2009-12-29 64 views
1

有沒有辦法讓我們知道數據庫何時脫機? 平臺:SQL服務器2005tsql-找到數據庫何時脫機

+0

相關信息[數據庫何時脫機](https://dba.stackexchange.com/questions/89815/when-was-a-database-taken-offline) – 2017-09-05 14:31:50

回答

1

在TSQL似乎沒有辦法做到這一點。它不是作爲sys.databases目錄視圖中的一個屬性捕獲的,並且大多數其他可能性(如DBCC)要求數據庫在線才能工作。

但是,信息在事件日誌中被捕獲(帶有日期/時間戳)。因此,您將看到MSSQLSERVER中的一個事件,其描述如「將數據庫MyDatabase的數據庫選項OFFLINE設置爲ON」。

0

如果您啓用了默認跟蹤,您可能會很幸運。試試下面的代碼,如果它工作並讓我知道。請注意,此代碼將顯示修改數據庫的所有記錄,而不是使其脫機。

 
DECLARE @FileName VARCHAR(MAX)
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
gt.EventClass, e.name as EventName, gt.TextData, gt.ObjectID, gt.ObjectName, gt.DatabaseName, gt.SessionLoginName, gt.StartTime, gt.ApplicationName, gt.HostName, gt.NTUserName, gt.NTDomainName FROM sys.fn_trace_gettable(@FileName, DEFAULT) AS gt JOIN sys.trace_events e ON gt.EventClass = e.trace_event_id WHERE gt.EventClass = 164 -- Object Altered Event AND ObjectType = 16964 -- Database Object

+0

我沒有運行默認跟蹤。 – Manjot 2009-12-30 21:51:20

0

隨想:作爲數據庫引擎脫機,文件日期/時間戳可能會改變。

ALTER DATABASE

數據庫被關閉,完全關閉,並標記爲脫機。數據庫脫機時無法修改。

我無法測試這個想法,對不起。

編輯:

在SQL Server 2000中存在的無證xp_getfiledetails這is not in SQL Server 2005

在過去的日子裏,我使用這個作爲DBA非常乾淨地讀取文件時間戳。任何要避免使用DTS並儘可能保持在t-sql中...

+0

文件系統日期/時間可能會更改,但似乎並未在任何地方反映到SQL中。猜猜你可以掏腰包,也許是這樣。 – GalacticCowboy 2009-12-29 13:07:57

0

檢查數據庫文件的上次修改數據/時間。這可能會給你一個想法,如果這些文件沒有被任何其他工具使用。

相關問題