Hello there. I have a problem regarding the catalog backup. The normal client backup works like a charm though. Any form of help would be highly appreciated! I'm struggling a bit since I'm new to bacula. Client is a Windows 2012 Server Backup Server is a Debian 8 Server. Is a backup of the catalog even a good idea in my case, since database and storage run on the same machine? Thank you for your help!
Attached is my dir config (slightly modified). Here is the error message: 08-Apr 02:05 xxxbackup-dir JobId 6: shell command: run BeforeJob "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog" 08-Apr 02:05 xxxbackup-dir JobId 6: Start Backup JobId 6, Job=BackupCatalog.2016-04-08_02.05.28_14 08-Apr 02:05 xxxbackup-dir JobId 6: Using Device "FileStorage" 08-Apr 02:05 xxxbackup-sd JobId 6: Volume "2016_4_8" previously written, moving to end of data. 08-Apr 02:05 xxxbackup-sd JobId 6: Ready to append to end of Volume "2016_4_8" size=2167231970 08-Apr 02:05 xxxbackup-fd JobId 6: Fatal error: No drive letters found for generating VSS snapshots. 08-Apr 02:05 xxxbackup-fd JobId 6: Error: VSS API failure calling "BackupComplete". ERR=Object is not initialized; called during restore or not called in correct sequence. 08-Apr 02:05 xxxbackup-sd JobId 6: Job write elapsed time = 00:00:06, Transfer rate = 0 Bytes/second 08-Apr 02:05 xxxbackup-dir JobId 6: Error: Bacula xxxbackup-dir 5.2.6 (21Feb12): Build OS: x86_64-pc-linux-gnu debian jessie/sid JobId: 6 Job: BackupCatalog.2016-04-08_02.05.28_14 Backup Level: Full Client: "xxxbackup-fd" 5.2.10 (28Jun12) Microsoft Standard Edition (build 9200), 64-bit,Cross-compile,Win64 FileSet: "Catalog" 2016-04-08 02:05:28 Pool: "File" (From Job resource) Catalog: "MyCatalog" (From Client resource) Storage: "File" (From Job resource) Scheduled time: 08-Apr-2016 02:05:26 Start time: 08-Apr-2016 02:05:31 End time: 08-Apr-2016 02:05:37 Elapsed time: 6 secs Priority: 11 FD Files Written: 0 SD Files Written: 0 FD Bytes Written: 0 (0 B) SD Bytes Written: 0 (0 B) Rate: 0.0 KB/s Software Compression: None VSS: yes Encryption: no Accurate: no Volume name(s): Volume Session Id: 4 Volume Session Time: 1460072979 Last Volume Bytes: 2,167,232,380 (2.167 GB) Non-fatal FD errors: 2 SD Errors: 0 FD termination status: Error SD termination status: OK Termination: *** Backup Error *** bacula-dir.conf # # Default Bacula Director Configuration file # # The only thing that MUST be changed is to add one or more # file or directory names in the Include directive of the # FileSet resource. # # For Bacula release 5.2.6 (21 February 2012) -- debian jessie/sid # # 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 = xxx-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 = 1 Password = "xxx" # Console password Messages = Daemon DirAddress = xxx TLS Enable = yes TLS Require = no TLS Verify Peer = no TLS Certificate = /etc/bacula/certs/xxx.crt TLS Key = /etc/bacula/certs/xxx.key TLS CA Certificate File = /etc/bacula/certs/root.crt } JobDefs { Name = "DefaultJob" Type = Backup Level = Incremental Client = xxxbackup-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = File Priority = 10 Write Bootstrap = "/var/lib/bacula/%c.bsr" } # # Define the main nightly save backup job # By default, this job will back up to disk in /nonexistant/path/to/file/archive/dir Job { Name = "BackupClient1" JobDefs = "DefaultJob" } #Job { # Name = "BackupClient2" # Client = xxxbackup2-fd # JobDefs = "DefaultJob" #} # Backup the catalog database (after the nightly save) Job { Name = "BackupCatalog" JobDefs = "DefaultJob" Level = Full FileSet="Catalog" Schedule = "WeeklyCycleAfterBackup" # This creates an ASCII copy of the catalog # Arguments to make_catalog_backup.pl are: # make_catalog_backup.pl <catalog-name> RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog" # This deletes the copy of the catalog RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup" Write Bootstrap = "/var/lib/bacula/%n.bsr" 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=xxxbackup-fd FileSet="Full Set" Storage = File Pool = File Messages = Standard Where = "C:/FHRestore" } # List of files to be backed up FileSet { Name = "Full Set" Include { Options { signature = MD5 } # # 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 partitions such as /usr or /home # you will probably want to add them too. # # By default this is defined to point to the Bacula binary # directory to give a reasonable FileSet to backup to # disk storage during initial testing. # #File = /usr/sbin File = "C:/xxx" File = "C:/xxx" } # # If you backup the root directory, the following two excluded # files can be useful # Exclude { #File = /var/lib/bacula #File = /nonexistant/path/to/file/archive/dir #File = /proc #File = /tmp #File = /.journal #File = /.fsck } } # # 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 = Incremental mon-sat at 23: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" } } # Client (File Services) to backup Client { Name = xxxbackup-fd Address = yyy FDPort = 9102 Catalog = MyCatalog Password = "xxx" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/bacula/certs/root.crt } # # Second Client (File Services) to backup # You should change Name, Address, and Password before using # #Client { # Name = xxxbackup2-fd # Address = localhost2 # FDPort = 9102 # Catalog = MyCatalog # Password = "xxx" # password for FileDaemon 2 # File Retention = 30 days # 30 days # Job Retention = 6 months # six months # AutoPrune = yes # Prune expired Jobs/Files #} # Definition of file storage device Storage { Name = File # Do not use "localhost" here Address = xxx # N.B. Use a fully qualified name here SDPort = 9103 Password = "xxx" Device = FileStorage Media Type = File } # Definition of DDS tape storage device #Storage { # Name = DDS-4 # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # password for Storage daemon # Device = DDS-4 # must be same as Device in Storage daemon # Media Type = DDS-4 # must be same as MediaType in Storage daemon # Autochanger = yes # enable for autochanger device #} # Definition of 8mm tape storage device #Storage { # Name = "8mmDrive" # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # Device = "Exabyte 8mm" # MediaType = "8mm" #} # Definition of DVD storage device #Storage { # Name = "DVD" # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # Device = "DVD Writer" # MediaType = "DVD" #} # Generic catalog service Catalog { Name = MyCatalog # Uncomment the following line if you want the dbi driver # dbdriver = "dbi:postgresql"; dbaddress = 127.0.0.1; dbport = dbname = "bacula"; dbuser = ""; dbpassword = "" } # 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/sbin/bsmtp -h localhost -f \"\(Bacula\) \<xxx\>\" -s \"Bacula: %t %e of %c %l\" %r" operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r" mail = xxx = all, !skipped operator = xxx = 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/log/bacula/bacula.log" = all, !skipped catalog = all } # # Message delivery for daemon messages (no job). Messages { Name = Daemon mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<xxx\>\" -s \"Bacula daemon message\" %r" mail = xxx = all, !skipped console = all, !skipped, !saved append = "/var/log/bacula/bacula.log" = all, !skipped } # Default pool definition Pool { Name = Default Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 365 days # one year Label Format = "${Year}_${Month}_${Day}" } # File Pool definition Pool { Name = File Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 32 days # one year Maximum Volume Bytes = 4G # Limit Volume size to something reasonable Maximum Volumes = 35 # Limit number of Volumes in Pool Label Format = "${Year}_${Month}_${Day}" } # Scratch pool definition Pool { Name = Scratch Pool Type = Backup } # # Restricted console used by tray-monitor to get the status of the director # Console { Name = xxx-mon Password = "xxx" CommandACL = status, .status }
# # Default Bacula Director Configuration file # # The only thing that MUST be changed is to add one or more # file or directory names in the Include directive of the # FileSet resource. # # For Bacula release 5.2.6 (21 February 2012) -- debian jessie/sid # # 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 = xxx-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 = 1 Password = "xxx" # Console password Messages = Daemon DirAddress = xxx TLS Enable = yes TLS Require = no TLS Verify Peer = no TLS Certificate = /etc/bacula/certs/xxx.crt TLS Key = /etc/bacula/certs/xxx.key TLS CA Certificate File = /etc/bacula/certs/root.crt } JobDefs { Name = "DefaultJob" Type = Backup Level = Incremental Client = xxxbackup-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = File Priority = 10 Write Bootstrap = "/var/lib/bacula/%c.bsr" } # # Define the main nightly save backup job # By default, this job will back up to disk in /nonexistant/path/to/file/archive/dir Job { Name = "BackupClient1" JobDefs = "DefaultJob" } #Job { # Name = "BackupClient2" # Client = xxxbackup2-fd # JobDefs = "DefaultJob" #} # Backup the catalog database (after the nightly save) Job { Name = "BackupCatalog" JobDefs = "DefaultJob" Level = Full FileSet="Catalog" Schedule = "WeeklyCycleAfterBackup" # This creates an ASCII copy of the catalog # Arguments to make_catalog_backup.pl are: # make_catalog_backup.pl <catalog-name> RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog" # This deletes the copy of the catalog RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup" Write Bootstrap = "/var/lib/bacula/%n.bsr" 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=xxxbackup-fd FileSet="Full Set" Storage = File Pool = File Messages = Standard Where = "C:/FHRestore" } # List of files to be backed up FileSet { Name = "Full Set" Include { Options { signature = MD5 } # # 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 partitions such as /usr or /home # you will probably want to add them too. # # By default this is defined to point to the Bacula binary # directory to give a reasonable FileSet to backup to # disk storage during initial testing. # #File = /usr/sbin File = "C:/xxx" File = "C:/xxx" } # # If you backup the root directory, the following two excluded # files can be useful # Exclude { #File = /var/lib/bacula #File = /nonexistant/path/to/file/archive/dir #File = /proc #File = /tmp #File = /.journal #File = /.fsck } } # # 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 = Incremental mon-sat at 23: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" } } # Client (File Services) to backup Client { Name = xxxbackup-fd Address = yyy FDPort = 9102 Catalog = MyCatalog Password = "xxx" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files TLS Enable = yes TLS Require = yes TLS CA Certificate File = /etc/bacula/certs/root.crt } # # Second Client (File Services) to backup # You should change Name, Address, and Password before using # #Client { # Name = xxxbackup2-fd # Address = localhost2 # FDPort = 9102 # Catalog = MyCatalog # Password = "xxx" # password for FileDaemon 2 # File Retention = 30 days # 30 days # Job Retention = 6 months # six months # AutoPrune = yes # Prune expired Jobs/Files #} # Definition of file storage device Storage { Name = File # Do not use "localhost" here Address = xxx # N.B. Use a fully qualified name here SDPort = 9103 Password = "xxx" Device = FileStorage Media Type = File } # Definition of DDS tape storage device #Storage { # Name = DDS-4 # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # password for Storage daemon # Device = DDS-4 # must be same as Device in Storage daemon # Media Type = DDS-4 # must be same as MediaType in Storage daemon # Autochanger = yes # enable for autochanger device #} # Definition of 8mm tape storage device #Storage { # Name = "8mmDrive" # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # Device = "Exabyte 8mm" # MediaType = "8mm" #} # Definition of DVD storage device #Storage { # Name = "DVD" # Do not use "localhost" here # Address = localhost # N.B. Use a fully qualified name here # SDPort = 9103 # Password = "xxx" # Device = "DVD Writer" # MediaType = "DVD" #} # Generic catalog service Catalog { Name = MyCatalog # Uncomment the following line if you want the dbi driver # dbdriver = "dbi:postgresql"; dbaddress = 127.0.0.1; dbport = dbname = "bacula"; dbuser = ""; dbpassword = "" } # 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/sbin/bsmtp -h localhost -f \"\(Bacula\) \<xxx\>\" -s \"Bacula: %t %e of %c %l\" %r" operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r" mail = xxx = all, !skipped operator = xxx = 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/log/bacula/bacula.log" = all, !skipped catalog = all } # # Message delivery for daemon messages (no job). Messages { Name = Daemon mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<xxx\>\" -s \"Bacula daemon message\" %r" mail = xxx = all, !skipped console = all, !skipped, !saved append = "/var/log/bacula/bacula.log" = all, !skipped } # Default pool definition Pool { Name = Default Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 365 days # one year Label Format = "${Year}_${Month}_${Day}" } # File Pool definition Pool { Name = File Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 32 days # one year Maximum Volume Bytes = 4G # Limit Volume size to something reasonable Maximum Volumes = 35 # Limit number of Volumes in Pool Label Format = "${Year}_${Month}_${Day}" } # Scratch pool definition Pool { Name = Scratch Pool Type = Backup } # # Restricted console used by tray-monitor to get the status of the director # Console { Name = xxx-mon Password = "xxx" CommandACL = status, .status }
------------------------------------------------------------------------------
_______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users