Stop doing catalog backups
authorPeter Palfrader <peter@palfrader.org>
Tue, 24 Sep 2019 09:44:14 +0000 (11:44 +0200)
committerPeter Palfrader <peter@palfrader.org>
Tue, 24 Sep 2019 09:44:14 +0000 (11:44 +0200)
The bacula catalog backup job is this special snowflake that's unlike
all the other jobs.  It only backups one file,
/var/lib/bacula/bacula.sql.gz, that gets created in a RunBeforeJob
and deleted in a RunAfterJob.

We already have a well-thought out and more generic method to backup
databases, and we should use just that.

The RunBefore/After setup makes sense as a default when you don't have
that, but we do.

modules/bacula/manifests/storage.pp
modules/bacula/templates/bacula-dir.conf.erb
modules/bacula/templates/bacula-sd.conf.erb

index 8f549d5..3c01e58 100644 (file)
@@ -60,14 +60,6 @@ class bacula::storage inherits bacula {
     notify  => Exec['bacula-sd restart-when-idle']
   }
 
-  file { "${bacula::bacula_backup_path}/Catalog":
-    ensure => directory,
-    mode   => '0755',
-    owner  => bacula,
-    group  => bacula,
-    ;
-  }
-
   package { 'python3-psycopg2': ensure => installed }
   file { '/usr/local/bin/bacula-unlink-removed-volumes':
     source => 'puppet:///modules/bacula/bacula-unlink-removed-volumes',
index beba6b7..db41540 100644 (file)
@@ -82,28 +82,6 @@ FileSet {
   }
 }
 
-########################################################################
-# A fileset for the catalog, one sql dump of the db                    #
-########################################################################
-FileSet {
-  Name = "Catalog"
-  Include {
-    Options {
-      signature = SHA1
-    }
-    File = "/var/lib/bacula/bacula.sql.gz"
-  }
-}
-
-########################################################################
-# The job schedules                                                    #
-########################################################################
-
-# This schedule does the catalog
-Schedule {
-  Name = "CatalogSchedule"
-  Run = Full sun-sat at 02:10
-}
 
 ########################################################################
 # Generic catalog service                                              #
@@ -194,66 +172,6 @@ Pool {
   Pool Type = Backup
 }
 
-########################################################################
-# Generic jobs                                                         #
-########################################################################
-# Backup the catalog database (after the nightly save)
-Storage {
-  Name = "<%= @bacula_filestor_name %>-catalog"
-  Address = <%= @bacula_storage_address %>
-  SDPort = <%= @bacula_storage_port %>
-  Password = "<%= @bacula_storage_secret %>"
-  Device = "<%= @bacula_filestor_device %>-catalog"
-  Media Type = "<%= @bacula_filestor_name %>-catalog"
-  Maximum Concurrent Jobs = 10
-
-  TLS Enable = yes
-  TLS Require = yes
-  TLS CA Certificate File = "<%= @bacula_ca_path %>"
-  # This is a client certificate, used by the director to connect to the storage daemon
-  TLS Certificate = "<%= @bacula_ssl_client_cert %>"
-  TLS Key = "<%= @bacula_ssl_client_key %>"
-}
-Pool {
-  Name = "poolcatalog-<%=@bacula_pool_name%>"
-  Pool Type = Backup
-  Storage = "<%=@bacula_filestor_name%>-catalog"
-  AutoPrune = yes
-  Volume Retention = 2 months
-  Label Format = "<%= @bacula_pool_name %>-catalog.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
-  Volume Use Duration = 23h
-  Maximum Volume Jobs = 1
-  Maximum Volume Bytes = 500G
-  Action On Purge = Truncate
-  Recycle = yes
-  RecyclePool = "poolcataloggraveyard-<%=@bacula_pool_name%>"
-}
-Pool {
-  Name = "poolcataloggraveyard-<%=@bacula_pool_name%>"
-  Pool Type = Backup
-  Storage = "<%=@bacula_filestor_name%>-catalog"
-  Recycle = yes
-  RecyclePool = "poolcataloggraveyard-<%=@bacula_pool_name%>"
-}
-
-Job {
-  Name = "BackupCatalog"
-  JobDefs = "Standardbackup"
-  Client = <%=@bacula_director_address%>-fd
-  Level = Full
-  FileSet = "Catalog"
-  Schedule = "CatalogSchedule"
-#  # 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 = 15    # run after main backup
-  Pool = "poolcatalog-<%=@bacula_pool_name%>"
-}
-
 ########################################################################
 # And now include all the generated configs                            #
 ########################################################################
index 7c0375f..a46d973 100644 (file)
@@ -64,15 +64,4 @@ Messages {
   director = <%= @bacula_director_name %> = all
 }
 
-Device {
-  Name = "<%= @bacula_filestor_device %>-catalog"
-  Media Type = "<%= @bacula_filestor_name %>-catalog"
-  Archive Device = "<%= @bacula_backup_path %>/Catalog"
-  LabelMedia = yes;
-  Random Access = Yes;
-  AutomaticMount = yes;
-  RemovableMedia = no;
-  AlwaysOpen = no;
-}
-
 @|"sh -c 'for f in /etc/bacula/storage-conf.d/*.conf ; do echo @${f} ; done'"