SQL 维护计划中使用了哪些数据库?
Which databases are used within a SQL maintenance plan?
如果 Microsoft SQL 数据库维护计划失败、未 运行、未实施或从未安排,我将在用户登录应用程序时添加警报。我不想添加一个设置来识别应该检查的维护计划。
如何获取对当前数据库“SELECT db_name()
”执行任何操作的维护计划列表?
我可以在这里看到所有维护计划的列表:SELECT * FROM msdb.dbo.sysmaintplan_plans
我猜我需要查询计划步骤并检查是否包含我的数据库。
最好能够识别每个步骤的类型,即:完整性检查、索引重建、统计信息更新或备份等...然后我可以确保所有必需的步骤都已完成。
通过使用 SQL 分析器,我收集了几个查询并将这个 SQL 放在一起,这将显示包括当前数据库在内的任何维护计划的日志历史记录。它显示了每个步骤以及是否成功。
SELECT
ld.server_name,
mp.name AS [MTX Plan Name],
msp.subplan_name AS [Sub Plan Name],
mpl.start_time AS [JobStart],
mpl.end_time AS [JobEnd],
mpl.succeeded AS [JobSucceeded],
ld.start_time AS [StepStart],
ld.end_time AS [StepEnd],
ld.succeeded AS [StepSucceeded],
ld.line1,
ld.line2,
ld.line3,
ld.line4,
ld.line5,
ld.command
FROM
msdb.dbo.sysmaintplan_plans mp
INNER JOIN msdb.dbo.sysmaintplan_subplans msp ON mp.id = msp.plan_id
INNER JOIN msdb.dbo.sysmaintplan_log mpl ON msp.subplan_id = mpl.subplan_id
INNER JOIN msdb.dbo.sysmaintplan_logdetail ld ON mpl.task_detail_id = ld.task_detail_id
AND ld.command LIKE ('%['+db_name()+']%')
ORDER BY
mpl.start_time DESC
这最适合向导生成的维护计划。
临时计划并不总是包含用于过滤的命令列。
但是 table 链接仍然有效。
如果 Microsoft SQL 数据库维护计划失败、未 运行、未实施或从未安排,我将在用户登录应用程序时添加警报。我不想添加一个设置来识别应该检查的维护计划。
如何获取对当前数据库“SELECT db_name()
”执行任何操作的维护计划列表?
我可以在这里看到所有维护计划的列表:SELECT * FROM msdb.dbo.sysmaintplan_plans
我猜我需要查询计划步骤并检查是否包含我的数据库。
最好能够识别每个步骤的类型,即:完整性检查、索引重建、统计信息更新或备份等...然后我可以确保所有必需的步骤都已完成。
通过使用 SQL 分析器,我收集了几个查询并将这个 SQL 放在一起,这将显示包括当前数据库在内的任何维护计划的日志历史记录。它显示了每个步骤以及是否成功。
SELECT
ld.server_name,
mp.name AS [MTX Plan Name],
msp.subplan_name AS [Sub Plan Name],
mpl.start_time AS [JobStart],
mpl.end_time AS [JobEnd],
mpl.succeeded AS [JobSucceeded],
ld.start_time AS [StepStart],
ld.end_time AS [StepEnd],
ld.succeeded AS [StepSucceeded],
ld.line1,
ld.line2,
ld.line3,
ld.line4,
ld.line5,
ld.command
FROM
msdb.dbo.sysmaintplan_plans mp
INNER JOIN msdb.dbo.sysmaintplan_subplans msp ON mp.id = msp.plan_id
INNER JOIN msdb.dbo.sysmaintplan_log mpl ON msp.subplan_id = mpl.subplan_id
INNER JOIN msdb.dbo.sysmaintplan_logdetail ld ON mpl.task_detail_id = ld.task_detail_id
AND ld.command LIKE ('%['+db_name()+']%')
ORDER BY
mpl.start_time DESC
这最适合向导生成的维护计划。 临时计划并不总是包含用于过滤的命令列。 但是 table 链接仍然有效。