介绍
MSDB 是 SQL Server 系统数据库之一,存储有关 SQL Server 代理,备份和还原,数据库维护计划和其他 SQL Server 组件的元数据。MSDB 数据库存储所有系统级和维护作业的规划,包括备份作业、日志清理作业、索引和统计信息更新作业,以及其他重要的系统任务。
MSDB 的作用
MSDB 数据库是 SQL Server 中非常重要的一部分,它承载着 SQL Server 各种系统级别的信息和服务,比如代理( Agent)、备份和还原、作业等等,它是 SQL Server 各种元数据的存储库。
SQL Server 代理
SQL Server 代理是一个 SQL Server 的工作引擎,可用于安排重复性的 SQL Server 管理任务,如备份和还原、索引和统计信息的更新以及 SQL Server Agent 作业。SQL Server 代理是 MSDB 数据库的一部分,因此,任何有关代理的变化都会在 MSDB 数据库中进行记录。
例:查看所有 SQL Server 代理资料的 SQL 代码
-- 获取所有代理和相关信息的详细信息
SELECT *
FROM msdb..sysjobs j
JOIN msdb..sysjobsteps s ON j.job_id = s.job_id
JOIN msdb..sysservers ss ON j.originating_server_id = ss.server_id
备份和还原
备份和还原是 SQL Server 管理的重要部分。在 MSDB 数据库中,每个备份和还原事件都记录在备份和还原日志中。
例:查看数据库最近的备份和还原的 SQL 代码
-- 查看最近一次数据库备份作业的信息
SELECT TOP 1 *
FROM msdb.dbo.backupset
ORDER BY backup_finish_date DESC
-- 查看最近一次数据库还原作业的信息
SELECT TOP 1 *
FROM msdb.dbo.restorehistory
ORDER BY restore_date DESC
作业
在 MSDB 数据库中,有一个名为“sysjobs”的表,它记录了SQL Server代理作业的所有详细信息,例如每个作业的名称、描述、执行计划和状态、既便是计划外终止的作业、作业历史以及每个作业的执行步骤。
例:查看代理作业的 SQL 代码
-- 获取代理作业的详细信息
SELECT *
FROM msdb..sysjobs
总结
MSDB 数据库是 SQL Server 系统数据库之一,存储所有系统级和维护作业的规划,包括备份作业、日志清理作业、索引和统计信息更新作业,以及其他重要的系统任务。了解 MSDB 数据库是 SQL Server 管理的重要功能,它能够提供数据恢复的历史记录和监视代理作业运行情况。