Erik Logtenberg <[EMAIL PROTECTED]> writes: > I would very much like to see the possibility to make only > incremental backups, no more full backups required. [consolidated > backups]
I have a wish which sounds similar, but is actually very different. I want to avoid having to schedule Full backups. Bacula has some support in this direction already, ie. it will upgrade an Incremental or Differential to a Full if there is no previous Full. I'd like to be able to specify a maximum age for Fulls without having to prune them. this should be a pretty simple fix, really, just one new parameter, associated with the Job. a similar parameter for Differential should be added for completeness. to make this work well, I'd also like to move a few parameters from the Job to the Pool, specifically SpoolData and Compression, since I think they make more sense there. I don't want SpoolData for harddisk based storage, only for tape. I don't want Compression for tape, since the hardware compression is good enough and I don't care about network bandwidth. in the case of Compression, it is reasonable to set it in Job, too, so the precedence would be Schedule > Job > Pool. I don't see any compelling reason for configuring SpoolData in Job, but of course we'll need to keep it for backwards compatibility, so the precedence for it would be the same as for Compression. in addition to age based Full scheduling, it might be useful to specify when to upgrade to Full (or Differential) based on size of the data. the problem is of course that the size of an Incremental can't be known in advance without traversing the tree on the client ("estimate job"), and this is overhead I don't want to add every night. a simpler approximation would be to simply SUM up the size of the previous Incrementals and upgrade the backup level when it reaches a pre-set size, either specified in bytes, or as a percentage of the previous Full (I lean towards the latter). here's what configuration could look like: Schedule { Name = "StdSchedule" Run = Level=Incremental Pool=incr-pool FullPool=full-pool DifferentialPool=diff-pool at 23:00 } JobDefs { Full Backup Interval = 30d Differential Backup Interval = 7d Upgrade Incremental To Full = 90% Upgrade Incremental To Differential = 50% ... } (the option names may need some work :-) the example would make daily Incrementals, one Full backup per month and one Differential backup per week, but more often if data changes a lot. Upgrade Incremental To Differential would SUM the JobBytes for jobs since last Differential or Full (whichever was run last), while Upgrade Incremental To Full would add the JobBytes for the most recent Differential (if applicable) on top of that. any comments? I might write a patch to do this, at least the first two directives, so let me hear it if you think it should be done differently :-) -- regards, | Redpill _ Kjetil T. Homme | Linpro (_) ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users