检查上次数据库使用情况? [复制]

Posted

技术标签:

【中文标题】检查上次数据库使用情况? [复制]【英文标题】:Check last database usage? [duplicate] 【发布时间】:2012-06-19 16:43:00 【问题描述】:

可能重复:How can I determine the last time any record changed in a specific Sql Server 2000 database?

我的雇主要求我将所有当前使用的数据库从一台服务器迁移到另一台服务器,然后“归档”所有不再使用的数据库。

我遇到的问题是几乎没有文档说明哪些应用程序正在使用服务器上的哪些数据库,并且名称方案也没有太多约定。不幸的是,我们在这里“支持”了很多第三方软件,至少可以这么说,事情很混乱。

我想使用的方法是迁移在上个月左右看到交易的所有数据库,然后离线并备份其他数据库。

我的问题是我不确定如何检查给定数据库上的活动?有什么东西可以告诉我是否发生了什么事吗?

【问题讨论】:

这可能对你有帮助dba.stackexchange.com/questions/2050/… 谢谢,肯。看起来这是一个重复的问题。我已经投票关闭它。 【参考方案1】:

检查当前活动SQL Server Profiler 非常好。然而,除了可能已经执行的任何日志记录之外,我担心这就是你所能做的。

但是我通常发现将可疑数据库设置为脱机通常会导致任何问题出现;-)

【讨论】:

我不知道我是否同意 Profiler 是“优秀的”——如果你不小心的话,它非常擅长让你的服务器瘫痪。如果您想在更长的时间内测量活动,我建议服务器端跟踪要好得多(并且更“优秀”)。使用 Profiler 配置跟踪,但不要使用 Profiler 运行跟踪、观察桌面上流式传输的活动等。 @AaronBertrand - 公平点 - 我赞成你的回答【参考方案2】:

不幸的是,在 SQL Server 2000 中,您对此无能为力。 SQL Server 不会以一种方便的方式自行跟踪这一点,您只需运行查询即可。您可以设置一天或一周的服务器端跟踪,然后从跟踪中提取数据并按 database_id 分组,以查看在该时间段内访问了哪些数据库。

关闭访问权限并等待人们抱怨是错误的方式恕我直言。首先,如果您拒绝访问关键数据库怎么办?仅在月底访问的数据库呢?如果唯一使用该数据库的人正在度假怎么办?如果您关闭访问权限并且可以很快将其重新打开,这可能没问题,但我会非常小心这种方法。

在 SQL Server 2005 及更高版本中,您可以查询每个数据库中的 DMV,例如 sys.dm_db_index_usage_stats,它会告诉您最后一次用户搜索/扫描/更新。您还可以设置简单的审核。 I blogged about this here(尽管现在可能对您没有帮助)。

【讨论】:

以上是关于检查上次数据库使用情况? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

检查上次查询中是不是使用了缓冲区

文件上次修改

查询自上次检查后条目是不是发生变化并持续检查一段时间

SQL2000发布和复制的问题

SSIS Design2:增量更新

运维实战 Mysql高可用与健康检查