我是一名 BI 人员,被要求介入并假装我是一名 DBA。我不是数据库方面的新手,而是管理类型方面的新手。
我们有一个即将退役的 SQL Server 数据库。我被要求确定谁在使用服务器、正在使用的数据库以及正在运行的查询。
到目前为止,我已经创建了一个表来跟踪服务器登录以及检查连接数,如@ http://www.mssqltips.com/sqlservertip/3171/identify-sql-server-databases-that-are-no -使用时间更长/
但是,一旦我获得了这些信息,我就被要求跟踪:
他们想具体了解谁在使用服务器上的任何数据库,以便他们可以确定需要迁移哪些数据库以及在迁移数据库时需要联系谁。
任何帮助是极大的赞赏!
我建议您server side trace为您的整个业务生命周期运行一个- 。可能存在某些报告在月末或季度末运行的情况。
因此,您将需要在服务器端跟踪中11,13,16,19,33,37,61,162使用这些列进行以下事件1,6,8,10,11,12,14,27,35,40。
您可以过滤掉不需要使用的东西sp_trace_setevent(请注意,它已宣布已弃用)。
或者,您可以使用扩展事件 - 跟踪 SQL Server 数据库使用情况。
注意:目前在我的环境中,我使用的是服务器端跟踪,它的影响非常小。另外,我有一份工作将探查器信息转储到表中进行分析。
您可以使用下表结构来加载跟踪数据:
CREATE TABLE [dbo].[login_trace](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ServerName] [varchar](300) NULL,
[HostName] [varchar](300) NULL,
[ApplicationName] [varchar](300) NULL,
[DatabaseName] [varchar](200) NULL,
[LoginName] [varchar](100) NULL,
[StartTime] [datetime] NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
您可以根据自己的要求进行调整。