Table based scheduling
In conjunction with the “MinionBackup-AUTO” job, the Minion.BackupSettingsServer table allows you to configure flexible backup scheduling scenarios. By default, Minion Backup comes installed with the following scenario:- The MinionBackup-Auto job runs once every 30 minutes, checking the Minion.BackupSettingsServer table to determine what backup should be run.
- In Minion.BackupSettingsServer:
- Full system backups are scheduled daily at 10:00pm.
- Full user backups are scheduled on Saturdays at 11:00pm.
- Differential backups for user databases are scheduled daily except Saturdays (weekdays and on Sunday) at 11:00pm.
- Log backups for user databases run daily as often as the MinionBackup-AUTO job runs (every 30 minutes).
The following table displays the first few columns of this default scenario in Minion.BackupSettingsServer:
ID | DBType | BackupType | Day | ReadOnly | BeginTime | EndTime | MaxForTimeframe |
1 | System | Full | Daily | 1 | 22:00:00 | 22:30:00 | 1 |
2 | User | Full | Saturday | 1 | 23:00:00 | 23:30:00 | 1 |
3 | User | Diff | Weekday | 1 | 23:00:00 | 23:30:00 | 1 |
4 | User | Diff | Sunday | 1 | 23:00:00 | 23:30:00 | 1 |
5 | User | Log | Daily | 1 | 00:00:00 | 23:59:00 | 48 |
Let’s walk through three different schedule changes.
Scenario 1: Run log backups every 15 minutes, instead of half hourly. To change the default setup in order to run log backups every 15 minutes, change the MinionBackup-AUTO job schedule to run once every 15 minutes, and update the BackupType=’Log’ row in Minion.BackupSettingsServer to increase the “MaxForTimeframe” value to 96 or more (as there will be a maximum of 96 log backups per day).
Scenario 2: Run full backups daily, and no differential backups. To change the default setup in order to run daily full backups and eliminate differential backups altogether:
- Update the DBType=’User’, BackupType=‘Full’ row in Minion.BackupSettingsServer, setting the Day field to “Daily”.
- Update the BackupType=’Diff’ rows in Minion.BackupSettingsServer, setting the isActive fields to 0.
Scenario 3: Run differential backups twice daily. To change the default setup in order to differential backups twice daily, insert two new rows to Minion.BackupSettingsServer for BackupType=’Diff’, one for weekdays and one for Sundays, as follows:
INSERT INTO Minion.BackupSettingsServer ( [DBType], [BackupType] , [Day] , [ReadOnly] , [BeginTime] , [EndTime] , [MaxForTimeframe] , [SyncSettings] , [SyncLogs] , [IsActive] , [Comment] ) SELECT 'User' AS DBType, 'Diff' AS [BackupType] , 'Weekday' AS [Day] , 1 AS [ReadOnly] , '06:00:00' AS [BeginTime] , '07:00:00' AS [EndTime] , 1 AS [MaxForTimeframe] , 0 AS [SyncSettings] , 0 AS [SyncLogs] , 1 AS [IsActive] , 'Weekday morning differentials' AS [Comment]; INSERT INTO Minion.BackupSettingsServer ( [DBType], [BackupType] , [Day] , [ReadOnly] , [BeginTime] , [EndTime] , [MaxForTimeframe] , [SyncSettings] , [SyncLogs] , [IsActive] , [Comment] ) SELECT 'User' AS DBType, 'Diff' AS [BackupType] , 'Sunday' AS [Day] , 1 AS [ReadOnly] , '06:00:00' AS [BeginTime] , '07:00:00' AS [EndTime] , 1 AS [MaxForTimeframe] , 0 AS [SyncSettings] , 0 AS [SyncLogs] , 1 AS [IsActive] , 'Sunday morning differentials' AS [Comment];
These will provide a second differential backup at 6:00am on weekdays and Sundays, to supplement the existing differential backup in the evenings. The contents of Minion.BackupSettingsServer will then look (in part) like this:
ID | DBType | BackupType | Day | ReadOnly | BeginTime | EndTime | MaxForTimeframe |
1 | System | Full | Daily | 1 | 22:00:00 | 22:30:00 | 1 |
2 | User | Full | Saturday | 1 | 23:00:00 | 23:30:00 | 1 |
3 | User | Diff | Weekday | 1 | 23:00:00 | 23:30:00 | 1 |
4 | User | Diff | Sunday | 1 | 23:00:00 | 23:30:00 | 1 |
5 | User | Log | Daily | 1 | 00:00:00 | 23:59:00 | 48 |
6 | User | Diff | Weekday | 1 | 06:00:00 | 07:00:00 | 1 |
7 | User | Diff | Sunday | 1 | 06:00:00 | 07:00:00 | 1 |
Important notes:
- Always set the MaxForTimeframe field. This determines how many of the given backup may be taken in the defined timeframe. In the insert statement above, MaxForTimeframe is set to 1, because we only want to allow 1 differential backup operation during the 6:00am hour.
- The backup job should run as often as your most frequent backup. For example, if log backups should run every 5 minutes, schedule the job for every 5 minutes. And be sure to set the MaxForTimeframe sufficiently high enough to allow all of the log backups. In this case, we take log backups every 5 minutes for each 24 hour period, meaning up to 288 log backups a day; so, we could set MaxForTimeframe = 288, or any number higher (just to be sure).