我的雇主要求我将所有当前使用的数据库从一台服务器迁移到另一台服务器,然后“归档”所有不再使用的数据库。
我遇到的问题是几乎没有文档说明哪些应用程序正在使用服务器上的哪些数据库,并且名称方案也没有太多约定。不幸的是,我们在这里“支持”了很多第三方软件,至少可以说,事情很混乱。
我想使用的方法是迁移在上个月左右看到交易的任何数据库,然后离线并备份其他数据库。
我遇到的问题是我不确定如何检查给定数据库上的活动?有什么我可以使用的东西来告诉我是否发生了什么事吗?
我的雇主要求我将所有当前使用的数据库从一台服务器迁移到另一台服务器,然后“归档”所有不再使用的数据库。
我遇到的问题是几乎没有文档说明哪些应用程序正在使用服务器上的哪些数据库,并且名称方案也没有太多约定。不幸的是,我们在这里“支持”了很多第三方软件,至少可以说,事情很混乱。
我想使用的方法是迁移在上个月左右看到交易的任何数据库,然后离线并备份其他数据库。
我遇到的问题是我不确定如何检查给定数据库上的活动?有什么我可以使用的东西来告诉我是否发生了什么事吗?
检查当前活动SQL Server Profiler非常好。但是,除了可能已经执行的任何日志记录之外,我担心这就是您所能做的。
但是我通常发现将可疑数据库设置为脱机通常会导致任何问题出现;-)
不幸的是,在 SQL Server 2000 中,您对此无能为力。SQL Server 不会以一种方便的方式自行跟踪这一点,您只需运行查询即可。您可以设置一天或一周的服务器端跟踪,然后从跟踪中提取数据并按 database_id 分组,以查看在该期间哪些数据库被触及。
恕我直言,关闭访问权限并等待人们抱怨是错误的方式。首先,如果您拒绝访问关键数据库怎么办?仅在月底访问的数据库呢?如果唯一使用该数据库的人正在度假怎么办?如果您关闭访问并且可以相当快地重新打开它,这可能没问题,但我会非常小心这种方法。
在 SQL Server 2005 及更高版本中,您可以查询每个数据库中的 DMV,例如 sys.dm_db_index_usage_stats,它会告诉您最后一次用户搜索/扫描/更新。您还可以设置简单的审核。我在这里写了一篇博客(尽管它现在可能对你没有帮助)。