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