Hi folks,

I'm seeing a problem in that prior to the Bacula 2.0 upgrade, I was able to
run a verify job on the current day's tape data to ensure that the tape can
be read as well as verifying the tape data reflects the data on the server's
HDs. However, after the upgrade to 2.0 from 1.38.11 (or so), the verify job
asks for the previous day's tape instead of the current day's tape.

In short, this is what I do:

1) backup data on server
2) verify server data on tape
3) backup catalog
4) verify catalog backup on tape

bacula-dir.conf given below:

#
#  For Bacula release 1.36.2 (28 February 2005) -- freebsd 5.3-RELEASE-p10
#
#  You might also want to change the default email address
#   from root to your address.  See the "mail" and "operator"
#   directives in the Messages resource.
#

Director {                            # define myself
  Name = orion-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/usr/local/share/bacula/query.sql"
  WorkingDirectory = "/var/db/bacula"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 1
  Password = "S74WYGhYW24bD55KwtkQgsL3JPW+lVnFwXHKfbOlLEP+"         #
Console password
  Messages = Daemon
}

#
# Job Definitions
#
# By default, this job will back up to tape
Job {
  Name = "Orion"
  Type = Backup
  Client = orion-fd
  FileSet = "Full Set"
  Schedule = "DataBackupCycle"
  Storage = DDS-3
  Messages = Standard
  Pool = Default
# This creates a backup of ACLs of the directories to be backed up
# RunBeforeJob = /root/acl-backup.sh
# uncomment the line below if you wish to skip this job for a day- must
comment
# this before the day you want this to run! 
#  RunBeforeJob = "/root/_file_does_not_exist.sh"
#  RunBeforeJob = "/usr/local/etc/start_of_backup.sh"
#  Write Bootstrap = "/home/bacula/working/Orion.bsr"
  Write Bootstrap = "/var/db/bacula/Orion.bsr"
  Max Start Delay = 22h
  Priority = 10
  SpoolData = no
}

# Backup the catalog database (after the nightly save)
Job {
  Name = "BackupCatalog"
  Type = Backup
  Client = orion-fd
  Level = Full
  FileSet = "Catalog"
  Schedule = "CatalogBackupCycle"
  Storage = DDS-3
  Messages = Standard
  Pool = Default
# uncomment the line below if you wish to skip this job for a day- must
comment
# this before the day you want this to run! 
#  RunBeforeJob = "/root/_file_does_not_exist.sh"
  # This creates an ASCII copy of the catalog
  RunBeforeJob = "/usr/local/share/bacula/make_catalog_backup bacula bacula"
  # This deletes the copy of the catalog
  RunAfterJob  = "/usr/local/share/bacula/delete_catalog_backup"
  Write Bootstrap = "/var/db/bacula/BackupCatalog.bsr"
  Max Start Delay = 22h
  Priority = 13                   # run after main backup
}

# Verify file consistency between data & tape
Job {
  Name = "VerifyData"
  Type = Verify
  Client = orion-fd
  Level = VolumeToCatalog
  FileSet = "Full Set"
  Schedule = "VerifyDataBackupCycle"
  Storage  = DDS-3
  Messages = Standard
  Pool = Default
# uncomment the line below if you wish to skip this job for a day- must
comment
# this before the day you want this to run! 
#  RunBeforeJob = "/root/_file_does_not_exist.sh"
  Max Start Delay = 22h
  Priority = 11
}

# Verify file consistency between catalog & tape
Job {
  Name = "VerifyCatalog"
  Type = Verify
  Client = orion-fd
  Level = VolumeToCatalog
  FileSet = "Catalog"
  Schedule = "VerifyCatalogBackupCycle"
  Storage  = DDS-3
  Messages = Standard
  Pool = Default
# uncomment the line below if you wish to skip this job for a day- must
comment
# this before the day you want this to run! 
#  RunBeforeJob = "/root/_file_does_not_exist.sh"
  RunAfterJob = "/usr/local/etc/end_of_backup.sh"
  Max Start Delay = 22h
  Priority = 14
}

# Standard Restore template, to be changed by Console program
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client = orion-fd                 
  FileSet = "Full Set"                  
#  Storage = File                      
  Storage = DDS-3                      
  Pool = Default
  Messages = Standard
  Where = /tmp/bacula-restores
}


#
# File Set Definitions
#
# List of files to be backed up
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
      aclsupport = yes
      compression = GZIP6
      HFS Plus Support = yes 
      wilddir = /proc
      wilddir = /tmp
      wildfile = /.journal
      wildfile = /.fsck
      wildfile = /var/db/bacula/bacula.sql
      wilddir = /usr/local/pgsql/data/base 
      wildfile = /var/db/bacula/bacula.db-journal
      wilddir = /usr/local/pgsql/erp/latest_snapshot 
      exclude = yes
    }
#    
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = <file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitons such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula build
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
#    File = /usr/ports/sysutils/bacula-server/work/bacula-1.38
    File = /
    File = /var
    File = /data
    File = /usr

#
# If you backup the root directory, the following two excluded
#   files can be useful
#
#    Options {
#      wilddir = /proc
#      wilddir = /tmp
#      wildfile = /.journal
#      wildfile = /.fsck
#      wildfile = /var/db/bacula/bacula.sql
#      wilddir = /usr/local/pgsql/data/base 
#      wildfile = /var/db/bacula/bacula.db-journal
#      wilddir = /usr/local/pgsql/erp/latest_snapshot 
#      exclude = yes
#    }
  }
}

# This is the backup of the catalog
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = /var/db/bacula/bacula.sql
  }
}


#
# When to do the backups
#
#
# uncomment any of the following lines for the days you do not wish
# to run. This is especially useful during holidays. Be sure to restart
# Bacula server each time after each time this file is
uncommented/commented.
#
Schedule {
  Name = "DataBackupCycle"
  Run = Level=Differential Pool=TuesdayPool Tuesday at 00:05am
  Run = Level=Differential Pool=WednesdayPool Wednesday at 00:05am
  Run = Level=Differential Pool=ThursdayPool Thursday at 00:05am
  Run = Level=Differential Pool=FridayPool Friday at 00:05am
  Run = Level=Full Pool=MonthlyPool 1st Saturday at 00:05am
  Run = Level=Full Pool=WeeklyPool 2nd-4th Saturday at 00:05am
  Run = Level=Full Pool=WeeklyPool5 5th Saturday at 00:05am
}

# This verifies the backup only. It starts after the DataBackupCycle
Schedule {
  Name = "VerifyDataBackupCycle"
  Run = Level=VolumeToCatalog Pool=TuesdayPool Tuesday at 00:07am
  Run = Level=VolumeToCatalog Pool=WednesdayPool Wednesday at 00:07am
  Run = Level=VolumeToCatalog Pool=ThursdayPool Thursday at 00:07am
  Run = Level=VolumeToCatalog Pool=FridayPool Friday at 00:07am
  Run = Level=VolumeToCatalog Pool=MonthlyPool 1st Saturday at 00:07am
  Run = Level=VolumeToCatalog Pool=WeeklyPool 2nd-4th Saturday at 00:07am
  Run = Level=VolumeToCatalog Pool=WeeklyPool5 5th Saturday at 00:07am
}

# This does the catalog. It starts after the VerifyDataBackupCycle
Schedule {
  Name = "CatalogBackupCycle"
  Run = Level=Differential Pool=TuesdayPool Tuesday at 00:10am
  Run = Level=Differential Pool=WednesdayPool Wednesday at 00:10am
  Run = Level=Differential Pool=ThursdayPool Thursday at 00:10am
  Run = Level=Differential Pool=FridayPool Friday at 00:10am
  Run = Level=Full Pool=MonthlyPool 1st Saturday at 00:10am
  Run = Level=Full Pool=WeeklyPool 2nd-4th Saturday at 00:10am
  Run = Level=Full Pool=WeeklyPool5 5th Saturday at 00:10am
}

# This verifies the catalog backup only. It starts after the
CatalogBackupCycle
Schedule {
  Name = "VerifyCatalogBackupCycle"
  Run = Level=VolumeToCatalog Pool=TuesdayPool Tuesday at 00:11am
  Run = Level=VolumeToCatalog Pool=WednesdayPool Wednesday at 00:11am
  Run = Level=VolumeToCatalog Pool=ThursdayPool Thursday at 00:11am
  Run = Level=VolumeToCatalog Pool=FridayPool Friday at 00:11am
  Run = Level=VolumeToCatalog Pool=MonthlyPool 1st Saturday at 00:11am
  Run = Level=VolumeToCatalog Pool=WeeklyPool 2nd-4th Saturday at 00:11am
  Run = Level=VolumeToCatalog Pool=WeeklyPool5 5th Saturday at 00:11am
}


#
# Client (File Services) to backup
#
Client {
  Name = orion-fd
  Address = orion.dawnsign.com
  FDPort = 9102
  Catalog = MyCatalog
  Password = "RB2BFtvXpFMGEkfFevbuqKYZ7zUVhNUm8xKNrpcf2vr8"          #
password for FileDaemon
  File Retention = 365 days            # 30 days
  Job Retention = 12 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}


#
# Storage device definitions
#
# Definiton of file storage device
Storage {
  Name = FileStorage
# Do not use "localhost" here    
  Address = orion.dawnsign.com                # N.B. Use a fully qualified
name here
  SDPort = 9103
  Password = "OdWdyxc+U44m+5NCligvKX1UMt3FrAUwO63P3kuPB6Ex"
  Device = File
  Media Type = File
}

# Definition of DDS tape storage device
Storage {
  Name = DDS-3    
#  Do not use "localhost" here
  Address = orion.dawnsign.com                # N.B. Use a fully qualified
name here
  SDPort = 9103
  Password = "OdWdyxc+U44m+5NCligvKX1UMt3FrAUwO63P3kuPB6Ex"          #
password for Storage daemon
  Device = DDS-3                      # must be same as Device in Storage
daemon
  Media Type = DDS-3                  # must be same as MediaType in Storage
daemon
}

# Generic catalog service
Catalog {
  Name = MyCatalog
  dbname = bacula; user = bacula; password = ""
}


# Pool definitions
#
# Default Pool for jobs, but will hold no actual volumes
Pool {
  Name = Default
  Pool Type = Backup
#  Accept Any Volume = yes
#  Label Format = "Default-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}"
  Label Format = "Default-"
}

Pool {
  Name = TuesdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6 days
  Volume Use Duration = 2 days    #after 2 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Tuesday-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 1
}

Pool {
  Name = WednesdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6 days
  Volume Use Duration = 2 days    #after 2 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Wednesday-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 1
}

Pool {
  Name = ThursdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6 days
  Volume Use Duration = 2 days    #after 2 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Thursday-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 1
}

Pool {
  Name = FridayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6 days
  Volume Use Duration = 2 days    #after 2 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Friday-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 1
}

Pool {
  Name = WeeklyPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 27 days
  Volume Use Duration = 3 days
#  Accept Any Volume = yes
  Label Format = "Week-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 3
}

Pool {
  Name = WeeklyPool5
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 27 days
  Volume Use Duration = 3 days    #after 3 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Week-0004"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 1
}

Pool {
  Name = MonthlyPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 356 days
  Volume Use Duration = 3 days    #after 3 days, volume will be marked as
"used"
#  Accept Any Volume = yes
  Label Format = "Month-"
  Maximum Volume Jobs = 2         #the backup itself and the backup catalog
  Maximum Volumes = 12            #12 months
}


# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  Name = Standard
#
# NOTE! If you send to two 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.
#
  mailcommand = "/usr/local/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s
\"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/local/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\"
-s \"Bacula: Intervention needed for %j\" %r"
  mail = [EMAIL PROTECTED] = all, !skipped            
  operator = [EMAIL PROTECTED] = 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/db/bacula/log" = all, !skipped
}


#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/usr/local/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s
\"Bacula daemon message\" %r"
  mail = [EMAIL PROTECTED] = all, !skipped            
  console = all, !skipped, !saved
  append = "/var/db/bacula/log" = all, !skipped
}



#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = orion-mon
  Password = "dRbWHblLd3cMS2L+0Uch6/NtsyOsetHDIGJnLKiUPam3"

  CommandACL = status, .status
}

# EOF



Error message from verification of server data:

10-Jan 00:07 orion-dir: Verifying against JobId=1134
Job=BackupCatalog.2007-01-09_00.10.00
10-Jan 00:07 orion-dir: Bootstrap records written to
/var/db/bacula/orion-dir.restore.1.bsr
10-Jan 00:07 orion-dir: 
10-Jan 00:07 orion-dir: The job will require the following
   Volume(s)                 Storage(s)                SD Device(s)
===========================================================================
10-Jan 00:07 orion-dir:    
10-Jan 00:07 orion-dir:    Tuesday-0001              DDS-3
DDS-3                    
10-Jan 00:07 orion-dir: 
10-Jan 00:12 orion-dir: Start Verify JobId=1137 Level=VolumeToCatalog
Job=VerifyData.2007-01-10_00.07.00
10-Jan 00:12 orion-sd: Please mount Volume "Tuesday-0001" on Storage Device
"DDS-3" (/dev/nsa0) for Job VerifyData.2007-01-10_00.07.00
10-Jan 01:12 orion-sd: Please mount Volume "Tuesday-0001" on Storage Device
"DDS-3" (/dev/nsa0) for Job VerifyData.2007-01-10_00.07.00
10-Jan 03:12 orion-sd: Please mount Volume "Tuesday-0001" on Storage Device
"DDS-3" (/dev/nsa0) for Job VerifyData.2007-01-10_00.07.00
10-Jan 07:12 orion-sd: Please mount Volume "Tuesday-0001" on Storage Device
"DDS-3" (/dev/nsa0) for Job VerifyData.2007-01-10_00.07.00
10-Jan 10:25 orion-dir: VerifyData.2007-01-10_00.07.00 Fatal error:
bnet.c:241 Packet size too big from "Storage daemon:orion.dawnsign.com:9103.
Terminating connection.
10-Jan 10:26 orion-dir: VerifyData.2007-01-10_00.07.00 Fatal error: No Job
status returned from FD.
10-Jan 10:26 orion-dir: VerifyData.2007-01-10_00.07.00 Error: Bacula 2.0.0
(04Jan07): 10-Jan-2007 10:26:27
  JobId:                  1137
  Job:                    VerifyData.2007-01-10_00.07.00
  FileSet:                Full Set
  Verify Level:           VolumeToCatalog
  Client:                 orion-fd
  Verify JobId:           1134
  Verify Job:             
  Start time:             10-Jan-2007 00:12:08
  End time:               10-Jan-2007 10:26:27
  Files Expected:         1
  Files Examined:         0
  Non-fatal FD errors:    0
  FD termination status:  Error
  SD termination status:  Waiting for mount
  Termination:            *** Verify Error ***

The above error message states it's looking for Tuesday-0001 tape when
Wednesday-0001 tape is actually in the drive and is the current tape. When I
cancel the verification job, the catalog backup job proceeds and wants the
Wednesday-0001 tape which is the correct tape to use. I then run into errors
with the backup catalog verification in that it wants the Tuesday-0001 tape
instead of the Wednesday-0001 tape. I then have to kill the catalog
verification job.


Here's the error message after the catalog backup is completed:
*mes
10-Jan 10:36 orion-sd: Job write elapsed time = 00:03:35, Transfer rate =
2.387 M bytes/second
10-Jan 10:36 orion-dir: Max Volume jobs exceeded. Marking Volume
"Wednesday-0001" as Used.
10-Jan 10:36 orion-dir: AfterJob: run command
"/usr/local/share/bacula/delete_catalog_backup"
10-Jan 10:36 orion-dir: Bacula 2.0.0 (04Jan07): 10-Jan-2007 10:36:27
  JobId:                  1138
  Job:                    BackupCatalog.2007-01-10_00.10.00
  Backup Level:           Differential, since=2007-01-06 07:38:07
  Client:                 "orion-fd" 2.0.0 (04Jan07)
i386-portbld-freebsd6.0,freebsd,6.0-RELEASE-p6
  FileSet:                "Catalog" 2005-11-15 05:52:46
  Pool:                   "WednesdayPool" (From Run pool override)
  Storage:                "DDS-3" (From Job resource)
  Scheduled time:         10-Jan-2007 00:10:00
  Start time:             10-Jan-2007 10:32:07
  End time:               10-Jan-2007 10:36:27
  Elapsed time:           4 mins 20 secs
  Priority:               13
  FD Files Written:       1
  SD Files Written:       1
  FD Bytes Written:       513,281,145 (513.2 MB)
  SD Bytes Written:       513,281,260 (513.2 MB)
  Rate:                   1974.2 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Volume name(s):         Wednesday-0001
  Volume Session Id:      3
  Volume Session Time:    1168384439
  Last Volume Bytes:      545,965,056 (545.9 MB)
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

10-Jan 10:36 orion-dir: Begin pruning Jobs.
10-Jan 10:36 orion-dir: No Jobs found to prune.
10-Jan 10:36 orion-dir: Begin pruning Files.
10-Jan 10:37 orion-dir: Pruned Files from 2 Jobs for client orion-fd from
catalog.
10-Jan 10:37 orion-dir: End auto prune.

10-Jan 10:37 orion-dir: Start Verify JobId=1139 Level=VolumeToCatalog
Job=VerifyCatalog.2007-01-10_00.11.00
10-Jan 10:38 orion-sd: Please mount Volume "Tuesday-0001" on Storage Device
"DDS-3" (/dev/nsa0) for Job VerifyCatalog.2007-01-10_00.11.00


The weird thing is that I have specified the exact pool (Wednesday-0001 in
the WednesdayPool pool) to use for the VolumeToCatalog verification process.
This is completely ignored.

I've read the release notes and cannot find anything that would point me in
the right direction. Can someone point me in the right direction? My
apologies for the lengthy post.

~Doug

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to