有没有办法让我们知道数据库何时脱机? 平台:SQL服务器2005tsql-找到数据库何时脱机
回答
在TSQL似乎没有办法做到这一点。它不是作为sys.databases目录视图中的一个属性捕获的,并且大多数其他可能性(如DBCC)要求数据库在线才能工作。
但是,信息在事件日志中被捕获(带有日期/时间戳)。因此,您将看到MSSQLSERVER中的一个事件,其描述如“将数据库MyDatabase的数据库选项OFFLINE设置为ON”。
如果您启用了默认跟踪,您可能会很幸运。试试下面的代码,如果它工作并让我知道。请注意,此代码将显示修改数据库的所有记录,而不是使其脱机。
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
我没有运行默认跟踪。 – Manjot 2009-12-30 21:51:20
随想:作为数据库引擎脱机,文件日期/时间戳可能会改变。
数据库被关闭,完全关闭,并标记为脱机。数据库脱机时无法修改。
我无法测试这个想法,对不起。
编辑:
在SQL Server 2000中存在的无证xp_getfiledetails这is not in SQL Server 2005。
在过去的日子里,我使用这个作为DBA非常干净地读取文件时间戳。任何要避免使用DTS并尽可能保持在t-sql中...
文件系统日期/时间可能会更改,但似乎并未在任何地方反映到SQL中。猜猜你可以掏腰包,也许是这样。 – GalacticCowboy 2009-12-29 13:07:57
检查数据库文件的上次修改数据/时间。这可能会给你一个想法,如果这些文件没有被任何其他工具使用。
- 1. 如何使安全数据库脱机
- 2. 将数据库联机同步到html5脱机数据库存储
- 3. 脱机时,如何管理数据? IOS
- 4. 如何在使用DB2时脱机备份DB2数据库
- 5. MongoDB复制与脱机数据库
- 6. HTML 5脱机的SQLite数据库
- 7. MYSQL数据库脱机使用
- 8. 存储数据库的脱机副本
- 9. 数据库结果输出假脱机
- 10. PDO:数据库脱机时连接超时
- 11. 在SQL Server 2008上,如何确定何时数据库脱机/联机?
- 12. 与外部数据库同步脱机数据库Windows Phone 7
- 13. 如何在设备联机时将脱机数据库与Firebase同步?
- 14. Android:脱机时存储崩溃数据
- 15. TSQL将用户映射到数据库
- 16. 将git库回复到脱机机器
- 17. 当数据库脱机时,symfony会发生什么情况?
- 18. 假脱机数据到CSV截断
- 19. 如何找到数据库
- 20. Tsql数据库备份C#
- 21. 在数据库中脱机保存数据
- 22. 找到数据库数据
- 23. 假脱机CLOB的数据
- 24. 如何将Firebase脱机数据与联机数据同步
- 25. 如何找到使用TSQL
- 26. 脱机时
- 27. 如何使用将脱机工作的Parse创建数据库?
- 28. 如何从SQL Server 2005数据库中删除脱机文件
- 29. 如何强制SQL Server 2008数据库脱机
- 30. 如何在联机数据库更改时将iPhone本地数据库同步到联机数据库?
相关信息[数据库何时脱机](https://dba.stackexchange.com/questions/89815/when-was-a-database-taken-offline) – 2017-09-05 14:31:50