Bacula-users

Re: [Bacula-users] Problem with schedule/pool

2010-01-12 18:55:43
Subject: Re: [Bacula-users] Problem with schedule/pool
From: Dan Langille <dan AT langille DOT org>
To: Ariel Wainer <ariel AT cafelug.org DOT ar>
Date: Tue, 12 Jan 2010 18:53:04 -0500
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-reply AT mydomain DOT 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 = root@localhost = all, !skipped
>   operator = root@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 = root@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 AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>