Ariel Wainer wrote: > Hello people, please excuse my bad english. > I'm having some issues with my schedules/pool configuration, my idea is > to run a full backup every 3 days, doing incremental in the middle. > At some point, I keep no full backup, as it seems like the volume that > contains the full backup is being recycled to do the Incremental, so I > can't restore certain files, which is very serious. > > What am I missing? > > Thanks in advange, here is my config (passwords removed):
For starters, I would set all your retention values to be the same value (30 days). Issue a reload command within bconsole. Then run update (pool, and volumes from pool) to update the Pool and Volumes from that new Pool resource value. Then run with that for a while and see how things go. My theory as to the problem: your Full Job is being dropped from the Catalog. Bacula goes to run an incremental, can't find a Full, so it promotes that Job to a Full. > > Director { # define myself > Name = beastman-dir > DIRport = 9101 # where we listen for UA connections > QueryFile = "/etc/bacula/scripts/query.sql" > WorkingDirectory = "/var/lib/bacula" > PidDirectory = "/var/run/bacula" > Maximum Concurrent Jobs = 3 > Messages = Daemon > DirAddress = beastman.contenta > } > > JobDefs { > Name = "DefaultJob" > Type = Backup > Level = Differential > Client = beastman-fd > FileSet = "appl" > Schedule = "WeeklyCycle" > Storage = File > Messages = Standard > Pool = Default > Priority = 10 > Write Bootstrap = "/backups/bootstrap.bsr" > } > > > ################################################################ > ## JOBS > Job { > Name = "Manatarms-diario" > Client = manatarms-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Manatarms-diario > } > > Job { > Name = "Battlecat-diario" > Client = battlecat-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Battlecat-diario > } > > > Job { > Name = "Randor-diario" > Client = randor-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Randor-diario > } > > #Job { > # Name = "Heman-diario" > # Client = heman-fd > # JobDefs = "DefaultJob" > # FileSet = "appl" > # Schedule = "Diarios" > # Storage = "beastman-storage" > # Pool = "Heman-diario" > #} > > Job { > Name = "Teela-diario" > Client = teela-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Teela-diario > } > > Job { > Name = "Sorceress-diario" > Client = sorceress-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Sorceress-diario > } > > Job { > Name = "Orco-diario" > Client = orco-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Orco-diario > } > > > Job { > Name = "Panthor-diario" > Client = panthor-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Panthor-diario > } > > Job { > Name = "Marlena-diario" > Client = marlena-fd > JobDefs = "DefaultJob" > FileSet = "appl" > Schedule = "Diarios" > Storage = "beastman-storage" > Pool = Marlena-diario > } > > Job { > Name = "BackupCatalog" > JobDefs = "DefaultJob" > Level = Full > FileSet="Catalog" > Schedule = "WeeklyCycleAfterBackup" > # This creates an ASCII copy of the catalog > # WARNING!!! Passing the password via the command line is insecure. > # see comments in make_catalog_backup for details. > # Arguments to make_catalog_backup are: > # make_catalog_backup <database-name> <user-name> <password> <host> > RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula baculin > bacapdetodo localhost" > # This deletes the copy of the catalog > RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup" > Write Bootstrap = "/backups/BackupCatalog.bsr" > Storage = "beastman-storage" > Pool = Catalog-diario > Priority = 11 # run after main backup > } > > # > # Standard Restore template, to be changed by Console program > # Only one such job is needed for all Jobs/Clients/Storage ... > # > Job { > Name = "RestoreFiles" > Type = Restore > Client=beastman-fd > FileSet="appl" > Storage = File > Pool = Default > Messages = Standard > Where = /tmp/ > } > > > # Filesets > FileSet { > Name = "appl" > Include { > Options { signature = SHA1 > compression = GZIP9 > } > > # File = "/backups/" > File = "/etc" > File = "/appl" > File = "/home" > File = "/root" > File = "/var/www" > File = "/usr/local" > File = "/var/spool/cron" > File = "/usr/lib/nagios/plugins" > File = "/backups" > } > > Exclude { > File = "/appl/logs/*" > # File = "/appl/backup" > File = "/appl/backups/*.1.gz" > File = "/appl/produccion/*/logs/" > File = "/appl/pgsql/data/base" > File = "/appl/pgsql/data/pg_xlog/*" > File = "/appl/pgsql/data/pg_clog/*" > File = "/appl/restores/*" > > } > } > > > # > # When to do the backups, full backup on first sunday of the month, > # differential (i.e. incremental since full) every other sunday, > # and incremental backups other days > Schedule { > Name = "WeeklyCycle" > Run = Full 1st sun at 23:05 > Run = Differential 2nd-5th sun at 23:05 > Run = Differential mon-sat at 23:05 > } > > Schedule { > Name = "Diarios" > Run = Level=Full on sunday at 3:05 > Run = Level=Incremental on mon-sat at 3:05 > } > # This schedule does the catalog. It starts after the WeeklyCycle > Schedule { > Name = "WeeklyCycleAfterBackup" > Run = Full sun-sat at 23:10 > } > > # This is the backup of the catalog > FileSet { > Name = "Catalog" > Include { > Options { > signature = MD5 > } > File = /var/lib/bacula/bacula.sql > } > } > ######################################################################### > # Clientes > Client { > Name = beastman-fd > Address = beastman.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = manatarms-fd > Address = manatarms.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = battlecat-fd > Address = battlecat.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = randor-fd > Address = randor.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = heman-fd > Address = heman.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = teela-fd > Address = teela.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = sorceress-fd > Address = sorceress.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = orco-fd > Address = orco.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = panthor-fd > Address = panthor.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > Client { > Name = marlena-fd > Address = marlena.contenta > FDPort = 9102 > Catalog = MyCatalog > File Retention = 30 days # 30 days > Job Retention = 1 days # six months > AutoPrune = yes # Prune expired Jobs/Files > } > > > ############################################################### > > > ############################################################### > > > ############################################################### > > # Definition of file storage device > > ############################################################### > > # Definition of file storage device > Storage { > Name = File > # Do not use "localhost" here > #Address = localhost.localdomain # N.B. Use a fully > qualified name here > Address = 192.168.1.6 # N.B. Use a fully qualified name > here > SDPort = 9103 > Device = FileStorage > Media Type = File > } > > Storage { > Name = beastman-storage > # Do not use "localhost" here > Address = beastman.contenta # N.B. Use a fully > qualified name here > SDPort = 9103 > Device = BackUps > Media Type = File > } > > ############################################################### > > # Generic catalog service > Catalog { > Name = MyCatalog > dbname = "bacula"; user = "baculin"; dbpassword = "bacapdetodo"; > dbaddress="127.0.0.1"; dbport="5432" > } > > # Reasonable message delivery -- send most everything to email address > # and to the console > Messages { > Name = Standard > # > # NOTE! If you send to two email or more email addresses, you will need > # to replace the %r in the from field (-f part) with a single valid > # email address in both the mailcommand and the operatorcommand. > # What this does is, it sets the email address that emails would display > # in the FROM field, which is by default the same email as they're being > # sent to. However, if you send email to more than one address, then > # you'll have to set the FROM address manually, to a single address. > # for example, a 'no-re...@mydomain.com', is better since that tends to > # tell (most) people that its coming from an automated source. > > # > mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) > \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r" > operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) > \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r" > mail = r...@localhost = all, !skipped > operator = r...@localhost = mount > console = all, !skipped, !saved > # > # WARNING! the following will create a file that you must cycle from > # time to time as it will grow indefinitely. However, it will > # also keep all your messages if they scroll off the console. > # > append = "/var/lib/bacula/log" = all, !skipped > } > > > # > # Message delivery for daemon messages (no job). > Messages { > Name = Daemon > mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) > \<%r\>\" -s \"Bacula daemon message\" %r" > mail = r...@localhost = all, !skipped > console = all, !skipped, !saved > append = "/var/lib/bacula/log" = all, !skipped > } > > > > > # Pools > Pool { > Name = Default > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 365 days # one year > } > > Pool { > Name = Catalog-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Catalog-" > } > > Pool { > Name = Manatarms-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Manatarms-diario-" > } > > Pool { > Name = Battlecat-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Battlecat-diario-" > } > > Pool { > Name = Randor-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 2 > Use Volume Once = yes > Label Format = "Randor-diario-" > } > > Pool { > Name = Heman-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Heman-diario-" > } > > Pool { > Name = Teela-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Teela-diario-" > } > > Pool { > Name = Sorceress-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Sorceress-diario-" > } > > Pool { > Name = Orco-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Orco-diario-" > } > > Pool { > Name = Panthor-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Panthor-diario-" > } > > Pool { > Name = Marlena-diario > Pool Type = Backup > Recycle = yes # Bacula can automatically recycle > Volumes > AutoPrune = yes # Prune expired volumes > Volume Retention = 1 days # one year > Maximum Volumes = 3 > Use Volume Once = yes > Label Format = "Marlena-diario-" > } > # Scratch pool definition > Pool { > Name = Scratch > Pool Type = Backup > } > > # > # Restricted console used by tray-monitor to get the status of the director > # > Console { > Name = beastman-mon > CommandACL = status, .status > } > > ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users