宿州市护送服务网

SQL Server 查看备份计划的实现步骤

2026-03-27 14:48:02 浏览次数:1
详细信息

方法一:使用 SQL Server Management Studio (SSMS) 图形界面

1. 查看 SQL Server 代理作业

备份计划通常作为 SQL Server 代理作业创建:

2. 查看维护计划

备份可能作为维护计划的一部分:

方法二:使用 T-SQL 查询

1. 查询 SQL Server 代理作业(包含备份任务)

-- 查看所有作业
SELECT 
    job.job_id,
    job.name AS job_name,
    job.description,
    job.enabled,
    step.step_id,
    step.step_name,
    step.command
FROM msdb.dbo.sysjobs job
LEFT JOIN msdb.dbo.sysjobsteps step 
    ON job.job_id = step.job_id
WHERE step.command LIKE '%backup%' 
    OR step.command LIKE '%BACKUP%'
    OR job.name LIKE '%backup%'
ORDER BY job.name, step.step_id;

-- 查看作业计划
SELECT 
    job.name AS job_name,
    schedule.name AS schedule_name,
    schedule.enabled,
    schedule.freq_type,
    schedule.freq_interval,
    schedule.freq_subday_type,
    schedule.freq_subday_interval,
    schedule.freq_relative_interval,
    schedule.freq_recurrence_factor,
    schedule.active_start_date,
    schedule.active_end_date,
    schedule.active_start_time,
    schedule.active_end_time
FROM msdb.dbo.sysjobs job
INNER JOIN msdb.dbo.sysjobschedules js 
    ON job.job_id = js.job_id
INNER JOIN msdb.dbo.sysschedules schedule 
    ON js.schedule_id = schedule.schedule_id
WHERE job.name LIKE '%backup%';

2. 查询备份历史记录

-- 查看最近的备份历史
SELECT 
    database_name,
    backup_start_date,
    backup_finish_date,
    type,
    backup_size,
    recovery_model,
    physical_device_name
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediafamily bmf 
    ON bs.media_set_id = bmf.media_set_id
ORDER BY backup_start_date DESC;

-- 查看各数据库最后一次备份时间
SELECT 
    database_name,
    MAX(CASE WHEN type = 'D' THEN backup_finish_date END) AS last_full_backup,
    MAX(CASE WHEN type = 'I' THEN backup_finish_date END) AS last_differential_backup,
    MAX(CASE WHEN type = 'L' THEN backup_finish_date END) AS last_log_backup
FROM msdb.dbo.backupset
GROUP BY database_name;

3. 查看维护计划信息

-- 查看维护计划
SELECT 
    plan_id,
    id,
    plan_name,
    description,
    owner,
    enabled,
    date_created
FROM msdb.dbo.sysmaintplan_plans;

-- 查看维护计划任务
SELECT 
    p.plan_id,
    p.plan_name,
    t.task_name,
    t.task_type
FROM msdb.dbo.sysmaintplan_plans p
INNER JOIN msdb.dbo.sysmaintplan_subplans sp 
    ON p.plan_id = sp.plan_id
INNER JOIN msdb.dbo.sysmaintplan_tasks t 
    ON sp.subplan_id = t.subplan_id
WHERE t.task_name LIKE '%backup%';

方法三:使用 PowerShell 脚本

# 连接到 SQL Server 实例
$sqlServer = "YourServerName"
$database = "msdb"

# 查询备份作业
$query = @"
SELECT 
    j.name AS JobName,
    j.enabled,
    s.name AS ScheduleName,
    s.enabled AS ScheduleEnabled,
    s.freq_type,
    s.freq_interval,
    s.active_start_time
FROM msdb.dbo.sysjobs j
INNER JOIN msdb.dbo.sysjobschedules js ON j.job_id = js.job_id
INNER JOIN msdb.dbo.sysschedules s ON js.schedule_id = s.schedule_id
WHERE j.name LIKE '%backup%'
"@

Invoke-Sqlcmd -ServerInstance $sqlServer -Database $database -Query $query

常用系统表说明

系统表 描述
msdb.dbo.sysjobs 存储 SQL Server 代理作业信息
msdb.dbo.sysjobsteps 存储作业步骤信息
msdb.dbo.sysjobschedules 作业与计划的关联关系
msdb.dbo.sysschedules 计划详细信息
msdb.dbo.backupset 备份集信息
msdb.dbo.backupmediafamily 备份媒体信息
msdb.dbo.sysmaintplan_plans 维护计划信息

实用建议

定期检查备份状态:确保备份作业正常运行 验证备份文件:定期测试备份文件的恢复性 监控备份大小和时长:确保备份窗口足够且存储空间充足 设置警报:配置备份失败的电子邮件或其它通知 文档化备份策略:记录完整的备份和恢复流程

通过以上方法,您可以全面了解 SQL Server 中的备份计划配置和执行情况。

相关推荐