每月备份特定天数 SQL Server

O.B*_*adr 1 sql-server backup maintenance-plans

如何使用维护计划或代理作业在 SQL Server(我同时使用 SQL Server 2005 和 2008)上每月仅备份特定日期。我的意思是从每个月的 28 号备份我的数据库到下个月的 08 号等等?

Aar*_*and 5

使用内置计划 UI 很难做到这一点,除非您想创建 12 个不同的计划,但您可以轻松地将其构建到您的工作步骤中。假设它每晚运行:

IF DAY(GETDATE()) <= 8 OR DAY(GETDATE()) >= 28
BEGIN
  -- do backups
END
Run Code Online (Sandbox Code Playgroud)

在其他日子(9 日 -> 27 日),作业仍将运行,但IF条件中的所有内容都不会运行。所以除了在 中有一个条目之外sysjobhistory,它就好像它根本没有运行一样。

另一个想法是每天早上运行不同的作业,以类似的方式检查日期,然后相应地启用/禁用备份作业。或者类似地使用两个计划(一个在 9 日禁用,一个在 28 日启用)。