1HOLLAND(1)                          Holland                         HOLLAND(1)
2
3
4

NAME

6       holland - Holland Documentation
7

TABLE OF CONTENTS

9   Introduction to Holland
10       Holland  is  an  Open  Source  backup framework originally developed by
11       Rackspace and written in Python. It's goal is to help facilitate  back‐
12       ing  up  databases with greater configurability, consistency, and ease.
13       Holland currently focuses on MySQL, however future development will in‐
14       clude  other  database platforms and even non-database related applica‐
15       tions. Because of it's plugin structure, Holland can be used to  backup
16       anything you want by whatever means you want.
17
18       Python2 support has been removed as of holland 1.2.0
19
20   Dependencies
21       The core Holland framework has the following dependencies (available on
22       any remotely modern Linux distribution):
23
24       • Python >= 3.6
25
26       • pkg_resources
27
28       • python-setuptools
29
30       • ConfigParser
31
32       MySQL based plugins additional require the MySQLdb python connector:
33
34       • pyMySQL
35
36       Note that other plugins may have additional dependency requirements.
37
38   Holland Command-Line Reference
39       Here are the commands available from the 'holland' command-line tool:
40
41   help (h)
42       Usage: holland <command> --help(-h)
43
44       Provides basic information about the provided command. If no command is
45       provided, it displays global help instead.
46
47   backup (bk)
48       Usage: holland backup [backup-set1, backup-set2, ..., backup-setN]
49
50       Runs  the backup operation. If no backup-sets are specified, all active
51       backup-sets  (those  defined  in  the  'backupsets'  variable  in  hol‐
52       land.conf) are backed up.
53
54       One  or  more backup-sets can be specified directly, in which case only
55       those backup-sets are backed up.
56
57       Additional Command Line Arguments:
58
59       --dry-run (-n): Can be used here to simulate, but not actually  run,  a
60       backup. This should be used when troubleshooting a particular error be‐
61       fore trying to run a real backup.
62
63       --no-lock (-f): Normally, only one instance of Holland can run  at  any
64       given  time  using lock-files. Using this flag causes the lock-files to
65       be ignored. This has some very clear use-cases but otherwise be mindful
66       of using this setting as it can cause backups to fail in some cases.
67
68       --abort-immediately: abort on the first backup-set that fails (assuming
69       multiple backupsets were specified)
70
71       Examples:
72
73       # holland bk  --dry-run  weekly:  Attempts  a  dry-run  of  the  weekly
74       backup-set.
75
76       #  holland  bk  --no-lock --abort-immediately: Attempts a backup of all
77       the default backup-sets ignoring locks and aborting immediately if  one
78       of the backup-sets fails.
79
80   list-backups (lb)
81       Usage: holland list-backups
82
83       Provides extended information about available backups.
84
85   list-plugins (lp)
86       Usage: holland list-plugins
87
88       Lists all the available (installed) plugins available to Holland.
89
90   mk-config (mc)
91       Usage: holland mk-config <provider>
92
93       Generates  a  template  backup-set  for  a particular provider (such as
94       mysqldump).  By default, the output is sent to standard out but can  be
95       copied  to a file, either by using the --file, --edit, or -name options
96       (see below).
97
98       Additional Command Line Arguments:
99
100       --edit: Load the file into the system text-editor for further modifica‐
101       tions.
102
103       --file=FILE (-f): Write the output directly to provided file.
104
105       --name=NAME:  Creates  a  backup-set usable in Holland, which basically
106       means that a file is created of the provided name under the  backup-set
107       directory.
108
109       --provider: Indicates that the default provider configuration should be
110       outputted instead. This is really only used when  creating  a  provider
111       config specifically - it should not be used for backup-sets.
112
113       Examples:
114
115       # holland mk-config mysql-lvm > mysql-lvm.conf: Output the default con‐
116       figuration  for  MySQL-LVM  backups  and  write  the  contents  out  to
117       mysql-lvm.conf in the current working directory.
118
119       # holland mc mysqldump --name=Bob --edit: Create a backup-set using the
120       mysqldump provider named Bob  and  allow  interactive  editing  of  the
121       backup-set before saving the file.
122
123   purge (pg)
124       Usage: holland purge <backup-set>/<backup-id>
125
126       Purges old backups by specifying the backup-set name and set-id.
127
128       For  example:  #  holland purge mybackups/20090502_155438: Purge one of
129       the backups taken on May 2nd, 2009 from the mybackups backup-set.
130
131   Usage and Implementation Overview
132       Because Holland is very pluggable, it may first seem  a  bit  confusing
133       when it comes to configuring Holland to do something useful. Out of the
134       box, Holland is designed to backup MySQL databases using the  mysqldump
135       provider.   This  is the simplest setup, and may be sufficient for most
136       people. However, others may wish to have more fine-grained control over
137       their backups and/or use another method other than mysqldump.
138
139       For  instance,  one  can configure a backup set to backup certain data‐
140       bases using mysqldump, others using the mysql-lvm plugins etc. All this
141       is done by a mix of providers and backup-sets.
142
143   Backup-Sets
144       Each  backup-set  implements  exactly one provider and will inherit the
145       default values of that provider. These values can be overridden to  ad‐
146       just  the behavior of the backup set. This includes defining what data‐
147       bases or tables to include (or exclude) in the backup, the type of com‐
148       pression used (if any), what locking method to use, among other things.
149
150   Providers
151       Providers essentially provide a backup service for use in a backup set.
152
153       • mysqldump
154            Uses the mysqldump utility to backup databases.
155
156       • MySQL + LVM
157            Backup  MySQL  databases using LVM snapshots which allows for near
158            lockless or fully lockless (when transactional engines  are  used)
159            backups.
160
161       • mysqldump + LVM
162            This plugin creates an LVM snapshot, starts a mysql instance using
163            the snapshot as it's datadir, and then use the  mysqldump  utility
164            to backup the databases.
165
166       • XtraBackup
167            New in version 1.0.8.
168
169
170            Backup MySQL databases using Percona's XtraBackup tool.  This pro‐
171            vides a near lockless backup when using the InnoDB storage engine.
172
173       • pgdump
174            Backup PostgreSQL databases using the pgdump utility.
175
176       • pg_basebackup
177            New in version 1.2.8.
178
179
180            Backup PostgreSQL databases using the pg_basebackup utility.
181
182       • mariabackup
183            New in version 1.1.0.
184
185
186            Backup MySQL databases using MariaDB's mariabackup tool.
187
188       • mongodump
189            New in version 1.1.0.
190
191
192            This plugin performs logical backups of a  MongoDB  by  using  the
193            mongodump utility.
194
195       • Example
196            This is used solely as a template for designing providers. It oth‐
197            erwise does nothing.
198
199       As Holland is a framework, it can actually backup most anything as long
200       as  there  is a provider for it. This includes things that have nothing
201       to do with databases. The idea is to present an easy to use  and  clear
202       method of backing up and restoring backups no matter the source.
203
204   Holland Config Files
205       By  default,  Holland's configuration files reside in /etc/holland. The
206       main configuration file is holland.conf, however there are a number  of
207       other   configuration   files  for  configuring  default  settings  for
208       providers and for configuring backup sets.
209
210       Each configuration file has one ore more sections,  defined  by  square
211       brackets  Underneath each section, one or more configuration option can
212       be specified. These options are in a standard "option = value"  format.
213       Comments are prefixed by the # sign.
214
215       Note  that  many settings have default values and, as a result, can ei‐
216       ther be commented out or omitted entirely.
217
218   holland.conf - main config
219       The main configuration file (usually /etc/holland/holland.conf) defines
220       both  global  settings as well as the active backup sets. It is divided
221       into two sections [holland] and [logging].
222
223   [holland]
224       plugin-dirs
225              Defines where the plugins can be found. This can be a comma-sep‐
226              arated list but usually does not need to be modified.
227
228       backup_directory
229              Top-level directory where backups are held.
230
231       backupsets
232              A  comma-separated  list  of  all the backup sets Holland should
233              backup.   Each  backup  set  is  defined  in  /etc/holland/back‐
234              upsets/<name>.conf by default.
235
236       umask  Sets the umask of the resulting backup files.
237
238       path   Defines a path for holland and its spawned processes
239
240   [logging]
241       filename
242              The log file itself.
243
244       level  Sets  the  verbosity of Holland's logging process. Available op‐
245              tions are debug, info, warning, error, and critical
246
247       format Define the format of the log message. This options should be  in
248              the format defined by the 'logging' python library.
249
250              New in version 1.1.0.
251
252
253   Provider Configs
254       These  files  control  the global settings / defaults for the providers
255       used by the backup-sets. Many of these global settings can be  overrid‐
256       den if defined in a backup-set. Note that each provider's configuration
257       file should begin with [provider-name].
258
259   mysqldump Provider Configuration [mysqldump]
260       Backs up a MySQL database using the mysqldump tool.
261
262   [mysqldump]
263       mysql-binpath = /path/to/mysql/bin
264          Defines the location of the MySQL binary utilities. If not provided,
265          Holland will use whatever is in the path.
266
267       lock-method  = flush-lock | lock-tables | single-transaction | auto-de‐
268       tect | none
269          Defines which lock method to use. By default,  auto-detect  will  be
270          used.
271
272          • flush-lock
273                flush-lock  will place a global lock on all tables involved in
274                the backup regardless of  whether  or  not  they  are  in  the
275                backup-set.  If  file-per-database is enabled, then flush-lock
276                will lock all tables for every database being  backed  up.  In
277                other  words,  this  option may not make much sense when using
278                file-per-database.
279
280          • lock-tables
281                lock-tables will lock all tables involved in  the  backup.  If
282                file-per-database  is enabled, then lock-tables will only lock
283                all the tables associated with that database.
284
285          • single-transaction
286                Forces  the  use   of   --single-transaction   which   enabled
287                semi-transparent backups of transactional tables. Forcing this
288                can cause inconsistencies with non-transactional tables,  how‐
289                ever.   While  non-transactional  tables will still lock, they
290                will only lock when they are actually  being  backed  up.  Use
291                this  setting  with  extreme caution when backing non-transac‐
292                tional tables.
293
294          • auto-detect
295                Let Holland decide which option to use by checking to see if a
296                database  or backup-set only contains transactional tables. If
297                so, --single-transaction will be used.  Otherwise,  --lock-ta‐
298                bles will be used.
299
300          • none
301                Does  absolutely no explicit locking when backing up the data‐
302                bases or backup-set. This should only be used when backing  up
303                a slave and only after the slave has been turned off (ie, this
304                can be used with the stop-slave option).
305
306       exclude-invalid-views =  yes | no (default: no)
307          Whether to automate exclusion of invalid views that would  otherwise
308          cause  mysqldump to fail.  This adds additional overhead so this op‐
309          tion is not enabled by default.
310
311          When enabled, thos option will scan the INFORMATION_SCHEMA.VIEWS ta‐
312          ble and execute SHOW FIELDS against each view.  If a view is detects
313          as invalid, an ignore-table option will be added to exclude the  ta‐
314          ble.   Additionally, the plugin will attempt to save the view defin‐
315          ion to 'invalid_views.sql' in the backupset's backup directory.
316
317          New in version 1.0.8.
318
319
320       dump-routines = yes | no (default: yes)
321          Whether or not to backup routines in the backup set  directly.  Rou‐
322          tines  are  stored  in the 'mysql' database, but it can sometimes be
323          convenient to include them in a backup-set directly.
324
325          Changed in version 1.0.8: This option now enabled by default.
326
327
328       dump-events = yes | no
329          Whether or not to dump events explicitly. Like routines, events  are
330          stored  in  the  'mysql'  database. Nonetheless, it can sometimes be
331          convenient to include them in the backup-set directly.
332
333          Note: This feature requires MySQL 5.1 or later. The mysqldump plugin
334          will automatically disable events if the version of mysqldump is too
335          old.
336
337          Changed in version 1.0.8: This option is now enabled by default
338
339
340       stop-slave = yes | no
341          Stops the SQL_THREAD during the backup. This means that writes  from
342          the  master  will  continue to spool but will not be replayed.  This
343          helps avoid lock wait timeouts among  things  while  still  allowing
344          data to be spooled from the master.
345
346          Note  that  previous versions of Holland prior to 1.0.6 simply ran a
347          STOP SLAVE instead, which suspends both replication threads.
348
349       bin-log-position = yes | no
350          Record the binary log name and position at the time of  the  backup.
351          The  information  provied  by  this  option is collected just before
352          locking the database.
353
354          Note that if both 'stop-slave' and 'bin-log-position'  are  enabled,
355          Holland  will  grab  the  master binary log name and position at the
356          time of the backup which can be useful in using the backup to create
357          slaves  or for point in time recovery using the master's binary log.
358          This information is found within the 'backup.conf' file  located  in
359          the     backup-set     destination     directory    (/var/spool/hol‐
360          land/<backup-set>/<backup> by default). For example:
361
362              [mysql:replication]
363              slave_master_log_pos = 4512
364              slave_master_log_file = 260792-mmm-agent1-bin-log.000001
365
366       flush-logs = yes | no
367          Whether or not to run FLUSH LOGS in  MySQL  with  the  backup.  When
368          FLUSH LOGS is actually executed depends on which if database filter‐
369          ing is being used and whether or not file-per-database  is  enabled.
370          Generally  speaking,  it  does not make sense to use flush-logs with
371          file-per-database since the binary logs will not be consistent  with
372          the backup.
373
374       file-per-database = yes | no
375          Whether  or  not  to  split up each database into its own file. Note
376          that it can be more consistent an efficient to backup all  databases
377          into one file, however this means that restore a single database can
378          be difficult if multiple databases are defined in the backup set.
379
380       arg-per-database = JSON object
381          If file-per-database is enable  this  argument  is  ued  to  specify
382          mysqldump  arguments  per  database. It takes a JSON object with the
383          database names as keys.  Example:  {"employee1":  "--no-data"}  Adds
384          the  '--no-data'  argument  to the mysqldump command when backing up
385          the 'employee1' database
386
387          New in version 1.0.9.
388
389
390       additional-options = <mysqldump argument>[, <mysqldump argument>]
391          Can optionally specify additional options directly to  mysqldump  if
392          there  is no native Holland option available.  This option accepts a
393          comma delimited list of arguments to pass on the commandline.
394
395       extra-defaults = yes | no (default: no)
396          This option controls whether mysqldump will only read options as set
397          by  holland  or  if  additional options from global config files are
398          read.  By default, the plugin only uses optons as set in  the  back‐
399          upset  config  and includes authentication credentials only from the
400          [client] section in ~/.my.cnf.
401
402       estimate-method = plugin | const:<size> (default: plugin)
403          This option will skip some of the heavyweight queries  necessary  to
404          calculate the size of tables to be backed up.  If a constant size is
405          specified, then only table names are evaluated  and  only  if  table
406          filtering is being used. Additionally, engines will be looked up via
407          SHOW CREATE TABLE if lock-method = auto-detect,  in  order  for  the
408          plugin  to determine if tables are using a transactional storage en‐
409          gine.  With 'plugin', the default behavior of reading both size  in‐
410          formation and table names from the information schema is used, which
411          may be slow particularly for a large number of tables.
412
413   Database and Table filtering
414   Database and Table filtering
415       databases = <glob>
416
417       exclude-databases = <glob>
418
419       tables = <glob>
420
421       exclude-tables = <glob>
422
423       The above options accepts GLOBs in comma-separated lists. Multiple fil‐
424       tering  options  can be specified. When filtering on tables, be sure to
425       include both the database and table name.
426
427       Be careful with quotes. Normally these are not needed, but  when quotes
428       are  necessary,  be sure to only quote each filtering statement, as op‐
429       posed to putting quotes around all statements.
430
431       Below are a few examples of how these can be applied:
432
433       Default (backup everything):
434
435          databases = *
436          tables = *
437
438       Using database inclusion and exclusions:
439
440          databases = drupal*, smf_forum,
441          exclude-databases = drupal5
442
443       Including Tables:
444
445          tables = phpBB.sucks, drupal6.node*, smf_forum.*
446
447       Excluding Tables:
448
449          exclude-tables = mydb.uselesstable1, x_cart.*, *.sessions
450
451   [compression]
452       Specify various compression settings, such as compression utility, com‐
453       pression level, etc.
454
455       method  =  gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
456       gpg | zstd
457          Define which compression method to use. Note that some  methods  may
458          not  be available by default on every system and may need to be com‐
459          piled or installed.
460
461          For gpg compression, a key should already exist(gpg  --gen-key)  and
462          default-recipient must be configured in ~/.gnupg/gpg.conf.
463
464       inline = yes | no
465          Whether  or  not  to  pipe the output of the backup command into the
466          compression utility. Enabling this is recommended since  it  usually
467          only marginally impacts performance, particularly when using a lower
468          compression level.
469
470       level = 0-9
471          Specify the compression ratio. The lower the number, the  lower  the
472          compression  ratio,  but the faster the backup will take. Generally,
473          setting the lever to 1 or 2 results in favorable compression of tex‐
474          tual  data and is noticeably faster than the higher levels.  Setting
475          the level to 0 effectively disables compression.
476
477       bin-path = <full path to utility>
478          This only needs to be defined if the compression utility is  not  in
479          the usual places or not in the system path.
480
481       options = <string>
482          Add commandline options to the configuration compression command.
483
484          options = "-Q4"
485
486       split = yes | no
487          Defautls  to  no.  If set the backup will be piped through the split
488          command.  This may be useful for user's  with  large  databases,  as
489          some  backup  systems perform better with many smaller files instead
490          of 1 large one. This defaults to 1GB file size, so this option isn't
491          helpful if your dumps are smaller than that.
492
493          For python2.6, this option will be disabled if the subprocess32 mod‐
494          ule isn't avaiable.
495
496          New in version 1.1.13.
497
498
499   MySQL connection info [mysql:client]
500       These are optional and, if left undefined, Holland will  try  to  login
501       using the standard .my.cnf conventions.
502
503       user = <user>
504
505       The user to connect to MySQL as.
506
507       password = <password>
508
509       The password for the MySQL user
510
511       socket = <socket>
512
513       The socket file to connect to MySQL with.
514
515       host = <host>
516
517       This would be used for connecting to MySQL remotely.
518
519       port = <port>
520
521       Used if MySQL is running on a port other than 3306.
522
523   MySQL LVM Provider Configuration [mysql-lvm]
524       Creates  an LVM snapshot of a running MySQL instance and performs a bi‐
525       nary-based backup with minimal locking. MySQL must be running on an LVM
526       volume with reserved space for snapshots. It is highly recommended that
527       this volume be separate from the one storing the resulting backups.
528
529   [mysql-lvm]
530       snapshot-size = <size-in-MB>
531          The size of the snapshot itself. By default it is 20% of the size of
532          the  MySQL LVM mount or the remaining free-space in the Volume Group
533          (if there is less than 20% available) up to 15GB.  If  snapshot-size
534          is  defined,  the  number  represents  the  size  of the snapshot in
535          megabytes.
536
537       snapshot-name = <name>
538          The name of the snapshot, the default being the name  of  the  MySQL
539          LVM volume + "_snapshot" (ie Storage-MySQL_snapshot)
540
541       snapshot-mountpoint = <path>
542          Where  to mount the snapshot. By default a randomly generated direc‐
543          tory under /tmp is used.
544
545       innodb-recovery = yes | no (default: no)
546          Whether or not to run an  InnoDB  recovery  operation.  This  avoids
547          needing  to  do  so  during  a  restore, though will make the backup
548          process itself take longer.
549
550       force-innodb-backup = yes | no (default: no)
551          Whether to attempt a backup even if the mysql-lvm plugin  thinks  it
552          cannot  obtain a good backup.  This can occur when innodb data files
553          are outside of the mysql datadir or exist on entirely separate logi‐
554          cal volumes.
555
556       lock-tables = yes | no (default: yes)
557          Whether  or not to run a FLUSH TABLES WITH READ LOCK to grab various
558          bits of information (such as the binary log name and position). Dis‐
559          abling  this  requires that binary logging is disabled and InnoDB is
560          being used exclusively. Otherwise, it is possible  that  the  backup
561          could contain crashed tables.
562
563       extra-flush-tables = yes | no (default: yes)
564          Whether  or  not to run a FLUSH TABLES before running the full FLUSH
565          TABLES WITH READ LOCK. Should make the FLUSH TABLES WITH  READ  LOCK
566          operation a bit faster.
567
568       archive-method      = tar | dir (default: tar)
569          Create a tar file of the datadir, or just copy it.
570
571   [tar]
572       exclude = pattern[, pattern...]
573
574       Patterns  to exclude from archive.   These should be relative paths and
575       are almost always relative to the mysql data directory.   For  instance
576       to  exclude binary logs in the data directory from the backup you might
577       specify: exclude = ./bin-log.*, mysql.sock
578
579       pre-args = <string>
580
581       Additional arguments to append to the tar commandline before the backup
582       path is specified.  This should be the full string as you might specify
583       on the commandline. Shell globbing is not supported.
584
585       For instance you might add the /etc/my.cnf  to  the  tar  archive  via:
586       pre-args = -C /etc ./my.cnf
587
588       post-args = <string>
589
590       Additional  arguments to append to the tar commandline after the backup
591       path is specified.  This should be a string exactly as you might  spec‐
592       ify on the commandline.  Shell globbing is not evaluated.
593
594   [compression]
595       Specify various compression settings, such as compression utility, com‐
596       pression level, etc.
597
598       method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop |  lzma  |
599       gpg | zstd
600          Define  which  compression method to use. Note that some methods may
601          not be available by default on every system and may need to be  com‐
602          piled or installed.
603
604          For  gpg  compression, a key should already exist(gpg --gen-key) and
605          default-recipient must be configured in ~/.gnupg/gpg.conf.
606
607       inline = yes | no
608          Whether or not to pipe the output of the  backup  command  into  the
609          compression  utility.  Enabling this is recommended since it usually
610          only marginally impacts performance, particularly when using a lower
611          compression level.
612
613       level = 0-9
614          Specify  the  compression ratio. The lower the number, the lower the
615          compression ratio, but the faster the backup will  take.  Generally,
616          setting the lever to 1 or 2 results in favorable compression of tex‐
617          tual data and is noticeably faster than the higher levels.   Setting
618          the level to 0 effectively disables compression.
619
620       bin-path = <full path to utility>
621          This  only  needs to be defined if the compression utility is not in
622          the usual places or not in the system path.
623
624       options = <string>
625          Add commandline options to the configuration compression command.
626
627          options = "-Q4"
628
629       split = yes | no
630          Defautls to no. If set the backup will be piped  through  the  split
631          command.   This  may  be  useful for user's with large databases, as
632          some backup systems perform better with many smaller  files  instead
633          of 1 large one. This defaults to 1GB file size, so this option isn't
634          helpful if your dumps are smaller than that.
635
636          For python2.6, this option will be disabled if the subprocess32 mod‐
637          ule isn't avaiable.
638
639          New in version 1.1.13.
640
641
642   MySQL connection info [mysql:client]
643       These  are  optional  and, if left undefined, Holland will try to login
644       using the standard .my.cnf conventions.
645
646       user = <user>
647
648       The user to connect to MySQL as.
649
650       password = <password>
651
652       The password for the MySQL user
653
654       socket = <socket>
655
656       The socket file to connect to MySQL with.
657
658       host = <host>
659
660       This would be used for connecting to MySQL remotely.
661
662       port = <port>
663
664       Used if MySQL is running on a port other than 3306.
665
666   mysqldump LVM Provider Configuration [mysqldump-lvm]
667       Backs up one or more MySQL databases by creating an  LVM  snapshot  and
668       then starting a instance of MySQL on top of it to then perform a mysql‐
669       dump. This effectively produces a non-blocking logical backup.
670
671   [mysql-lvm]
672       snapshot-size = <size-in-MB>
673          The size of the snapshot itself. By default it is 20% of the size of
674          the  MySQL LVM mount or the remaining free-space in the Volume Group
675          (if there is less than 20% available) up to 15GB.  If  snapshot-size
676          is  defined,  the  number  represents  the  size  of the snapshot in
677          megabytes.
678
679       snapshot-name = <name>
680          The name of the snapshot, the default being the name  of  the  MySQL
681          LVM volume + "_snapshot" (ie Storage-MySQL_snapshot)
682
683       snapshot-mountpoint = <path>
684          Where  to mount the snapshot. By default a randomly generated direc‐
685          tory under /tmp is used.
686
687       innodb-recovery = yes | no (default: no)
688          Whether or not to run an  InnoDB  recovery  operation.  This  avoids
689          needing  to  do  so  during  a  restore, though will make the backup
690          process itself take longer.
691
692       lock-tables = yes | no (default: yes)
693          Whether or not to run a FLUSH TABLES WITH READ LOCK to grab  various
694          bits of information (such as the binary log name and position). Dis‐
695          abling this requires that binary logging is disabled and  InnoDB  is
696          being  used  exclusively.  Otherwise, it is possible that the backup
697          could contain crashed tables.
698
699       extra-flush-tables = yes | no (default: yes)
700          Whether or not to run a FLUSH TABLES before running the  full  FLUSH
701          TABLES  WITH  READ LOCK. Should make the FLUSH TABLES WITH READ LOCK
702          operation a bit faster.
703
704   [mysqld]
705       mysqld-exe  =   <path>[,   <path>...]   (default:   mysqld   in   PATH,
706       /usr/libexec/mysqld)
707          This  provides  a  list of locations where the mysqld process to use
708          might be found.  This is searched in order of entries in this list.
709
710       user = <name>
711          The --user parameter to use with mysqld.
712
713       innodb-buffer-pool-size = <size> (default: 128M)
714          How large to size the innodb-buffer-pool-size.
715
716       tmpdir = <path>  (default: system tempdir)
717          Path to the --tmpdir that mysqld should use.
718
719       log-error = <path>  (default: tempdir/holland_lvm.log)
720          Define path for mysqld's error log. The default location get cleaned
721          up by Holland after the backup is complete. This settings allows the
722          user to define the log file in another location and  can  be  useful
723          for debugging issue with the MySQL instance running on the snapshot.
724
725          New in version 1.0.9.
726
727
728   [mysqldump]
729       mysqldump-lvm  supports  almost  all  of the options from the mysqldump
730       plugin.  --master-data is not supported, as the mysqld process will not
731       read binary logs, so this plugin will automatically disable bin-log-po‐
732       sition, if set.
733
734       Binary log information from SOHW MASTER STATUS and SHOW SLAVE STATUS is
735       recorded   in   the   ${backup_directory}/backup.conf  file  under  the
736       [mysql:replication] section.
737
738   [compression]
739       Specify various compression settings, such as compression utility, com‐
740       pression level, etc.
741
742       method  =  gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
743       gpg | zstd
744          Define which compression method to use. Note that some  methods  may
745          not  be available by default on every system and may need to be com‐
746          piled or installed.
747
748          For gpg compression, a key should already exist(gpg  --gen-key)  and
749          default-recipient must be configured in ~/.gnupg/gpg.conf.
750
751       inline = yes | no
752          Whether  or  not  to  pipe the output of the backup command into the
753          compression utility. Enabling this is recommended since  it  usually
754          only marginally impacts performance, particularly when using a lower
755          compression level.
756
757       level = 0-9
758          Specify the compression ratio. The lower the number, the  lower  the
759          compression  ratio,  but the faster the backup will take. Generally,
760          setting the lever to 1 or 2 results in favorable compression of tex‐
761          tual  data and is noticeably faster than the higher levels.  Setting
762          the level to 0 effectively disables compression.
763
764       bin-path = <full path to utility>
765          This only needs to be defined if the compression utility is  not  in
766          the usual places or not in the system path.
767
768       options = <string>
769          Add commandline options to the configuration compression command.
770
771          options = "-Q4"
772
773       split = yes | no
774          Defautls  to  no.  If set the backup will be piped through the split
775          command.  This may be useful for user's  with  large  databases,  as
776          some  backup  systems perform better with many smaller files instead
777          of 1 large one. This defaults to 1GB file size, so this option isn't
778          helpful if your dumps are smaller than that.
779
780          For python2.6, this option will be disabled if the subprocess32 mod‐
781          ule isn't avaiable.
782
783          New in version 1.1.13.
784
785
786   MySQL connection info [mysql:client]
787       These are optional and, if left undefined, Holland will  try  to  login
788       using the standard .my.cnf conventions.
789
790       user = <user>
791
792       The user to connect to MySQL as.
793
794       password = <password>
795
796       The password for the MySQL user
797
798       socket = <socket>
799
800       The socket file to connect to MySQL with.
801
802       host = <host>
803
804       This would be used for connecting to MySQL remotely.
805
806       port = <port>
807
808       Used if MySQL is running on a port other than 3306.
809
810   Xtrabackup Provider Configuration [xtrabackup]
811       Backs up a MySQL instance using Percona's Xtrabackup tool.
812
813   [xtrabackup]
814       global-defaults = <path> (default: /etc/my.cnf)
815          The  MySQL configuration file for xtrabackup to parse.  This is !in‐
816          clude'd into the my.cnf the xtrabackup plugin generates
817
818       innobackupex = <name> (default: innobackupex-1.5.1)
819          The path to the innobackupex script to run. If this  is  a  relative
820          path  this will be found in holland's environment PATH as configured
821          in /etc/holland/holland.conf.
822
823       Changed in version 1.1.12: For xtrabackup version 8.0 or greater,  this
824       option is ignored
825
826
827       ibbackup = <name>
828          The  path to the ibbackup command to use.  By default, no --ibbackup
829          option is pass to the  innobackupex  script.   Usually  innobackupex
830          will detect this by itself and this should not need to be set.
831
832       stream = tar|xbstream|yes|no (default: tar)
833          Whether to generate a streaming backup.
834
835       Changed  in  version 1.0.8: 'tar' and 'xbstream' are now valid options.
836       The old stream = yes is now equivalent to stream = tar and stream =  no
837       disables  streaming entirely and will result in a normal directory copy
838       with xtrabackup
839
840
841       Changed  in   version   1.1.12:   For   xtrabackup   version   8.0   or
842       greater,'xstream' will be used unless this value is set to 'no'
843
844
845       apply-logs = yes | no (default: yes)
846          Whether  to  run innobackupex --apply-logs at the end of the backup.
847          This is only supported when  performing  a  non-streaming,  non-com‐
848          pressed  backup.   In  this  case, even if apply-logs = yes (the de‐
849          fault), the prepare stage will be  skipped.   Even  with  an  uncom‐
850          pressed,  non-streaming backup you may want to disable apply-logs if
851          you wish to use incremental backups.
852
853          New in version 1.0.8.
854
855
856       slave-info = yes | no (default: yes)
857          Whether to enable the --slave-info innobackupex option
858
859       safe-slave-backup = yes | no (default: yes)
860          Whether to enable the --safe-slave-backup innobackupex option.
861
862       no-lock = yes | no (default: no)
863          Whether to enable the --no-lock innobackupex option
864
865       tmpdir = <path> (default: ${backup_directory})
866          The path for the innobackupex --tmpdir option. By default this  will
867          use the current holland backup directory to workaround the following
868          bug: https://bugs.launchpad.net/percona-xtrabackup/+bug/1007446
869
870          New in version 1.0.8.
871
872
873       additional-options = <option>[, <option>...]
874          A list of additional options to pass to  innobackupex.   This  is  a
875          comma separated list of options.
876
877       pre-command = <command-string>
878          A  command to run prior to running this xtrabackup run.  This can be
879          used, for instance, to generate a mysqldump  schema  dump  prior  to
880          running  xtrabackup.   instances  of ${backup_directory} and ${back‐
881          updir} will be replaced with the current  holland  backup  directory
882          where the xtrabackup data will be stored.
883
884   [compression]
885       Specify various compression settings, such as compression utility, com‐
886       pression level, etc.
887
888       method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop |  lzma  |
889       gpg | zstd
890          Define  which  compression method to use. Note that some methods may
891          not be available by default on every system and may need to be  com‐
892          piled or installed.
893
894          For  gpg  compression, a key should already exist(gpg --gen-key) and
895          default-recipient must be configured in ~/.gnupg/gpg.conf.
896
897       inline = yes | no
898          Whether or not to pipe the output of the  backup  command  into  the
899          compression  utility.  Enabling this is recommended since it usually
900          only marginally impacts performance, particularly when using a lower
901          compression level.
902
903       level = 0-9
904          Specify  the  compression ratio. The lower the number, the lower the
905          compression ratio, but the faster the backup will  take.  Generally,
906          setting the lever to 1 or 2 results in favorable compression of tex‐
907          tual data and is noticeably faster than the higher levels.   Setting
908          the level to 0 effectively disables compression.
909
910       bin-path = <full path to utility>
911          This  only  needs to be defined if the compression utility is not in
912          the usual places or not in the system path.
913
914       options = <string>
915          Add commandline options to the configuration compression command.
916
917          options = "-Q4"
918
919       split = yes | no
920          Defautls to no. If set the backup will be piped  through  the  split
921          command.   This  may  be  useful for user's with large databases, as
922          some backup systems perform better with many smaller  files  instead
923          of 1 large one. This defaults to 1GB file size, so this option isn't
924          helpful if your dumps are smaller than that.
925
926          For python2.6, this option will be disabled if the subprocess32 mod‐
927          ule isn't avaiable.
928
929          New in version 1.1.13.
930
931
932   MySQL connection info [mysql:client]
933       These  are  optional  and, if left undefined, Holland will try to login
934       using the standard .my.cnf conventions.
935
936       user = <user>
937
938       The user to connect to MySQL as.
939
940       password = <password>
941
942       The password for the MySQL user
943
944       socket = <socket>
945
946       The socket file to connect to MySQL with.
947
948       host = <host>
949
950       This would be used for connecting to MySQL remotely.
951
952       port = <port>
953
954       Used if MySQL is running on a port other than 3306.
955
956   pgdump Provider Configuration [pgdump]
957       Backs up a PostgreSQL instance using the pgdump utility.
958
959   [pgdump]
960       format = custom | tar | plain (default: custom)
961          Defines the --format option for pg_dump.  This  defaults  to  --for‐
962          mat=custom.  The custom format is required for pg_restore to do par‐
963          tial restore as well as enabling parallel restores. If set  to  cus‐
964          tom, the --compress option will be passed to pgdump
965
966       additional-options = <command-string>
967          Pass additional options to the pg_dump command
968
969       Only the 'level' option will be used if 'format=custom'
970
971   [compression]
972       Specify various compression settings, such as compression utility, com‐
973       pression level, etc.
974
975       method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop |  lzma  |
976       gpg | zstd
977          Define  which  compression method to use. Note that some methods may
978          not be available by default on every system and may need to be  com‐
979          piled or installed.
980
981          For  gpg  compression, a key should already exist(gpg --gen-key) and
982          default-recipient must be configured in ~/.gnupg/gpg.conf.
983
984       inline = yes | no
985          Whether or not to pipe the output of the  backup  command  into  the
986          compression  utility.  Enabling this is recommended since it usually
987          only marginally impacts performance, particularly when using a lower
988          compression level.
989
990       level = 0-9
991          Specify  the  compression ratio. The lower the number, the lower the
992          compression ratio, but the faster the backup will  take.  Generally,
993          setting the lever to 1 or 2 results in favorable compression of tex‐
994          tual data and is noticeably faster than the higher levels.   Setting
995          the level to 0 effectively disables compression.
996
997       bin-path = <full path to utility>
998          This  only  needs to be defined if the compression utility is not in
999          the usual places or not in the system path.
1000
1001       options = <string>
1002          Add commandline options to the configuration compression command.
1003
1004          options = "-Q4"
1005
1006       split = yes | no
1007          Defautls to no. If set the backup will be piped  through  the  split
1008          command.   This  may  be  useful for user's with large databases, as
1009          some backup systems perform better with many smaller  files  instead
1010          of 1 large one. This defaults to 1GB file size, so this option isn't
1011          helpful if your dumps are smaller than that.
1012
1013          For python2.6, this option will be disabled if the subprocess32 mod‐
1014          ule isn't avaiable.
1015
1016          New in version 1.1.13.
1017
1018
1019   [pgauth]
1020       username = <name>
1021          Username for pg_dump to authenticate with
1022
1023       password = <string>
1024          Password for pg_dump to authenticate with
1025
1026       hostname = <string>
1027          Hostname for pg_dump to connect with
1028
1029       port = <integer>
1030          TCP port for pg_dump to connect on
1031
1032   pg_basebackup Provider Configuration [pg_basebackup]
1033       Backs up a PostgreSQL instance using the pg_basebackup utility.
1034
1035   [pg_basebackup]
1036       format = tar | plain (default: tar)
1037          Defines the --format option for pg_basebackup.
1038
1039       wal-method = none | fetch | plain (default: fetch)
1040          Defines the --wal-method used for pg_basebackup.
1041
1042       checkpoint = none | fast | spread (default: fast)
1043          Defines the --checkpoint used for pg_basebackup.
1044
1045       additional-options = <command-string> (default: none)
1046          Pass additional options to the pg_basebackup command
1047
1048   [compression]
1049       Specify various compression settings, such as compression utility, com‐
1050       pression level, etc.
1051
1052       method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop |  lzma  |
1053       gpg | zstd
1054          Define  which  compression method to use. Note that some methods may
1055          not be available by default on every system and may need to be  com‐
1056          piled or installed.
1057
1058          For  gpg  compression, a key should already exist(gpg --gen-key) and
1059          default-recipient must be configured in ~/.gnupg/gpg.conf.
1060
1061       inline = yes | no
1062          Whether or not to pipe the output of the  backup  command  into  the
1063          compression  utility.  Enabling this is recommended since it usually
1064          only marginally impacts performance, particularly when using a lower
1065          compression level.
1066
1067       level = 0-9
1068          Specify  the  compression ratio. The lower the number, the lower the
1069          compression ratio, but the faster the backup will  take.  Generally,
1070          setting the lever to 1 or 2 results in favorable compression of tex‐
1071          tual data and is noticeably faster than the higher levels.   Setting
1072          the level to 0 effectively disables compression.
1073
1074       bin-path = <full path to utility>
1075          This  only  needs to be defined if the compression utility is not in
1076          the usual places or not in the system path.
1077
1078       options = <string>
1079          Add commandline options to the configuration compression command.
1080
1081          options = "-Q4"
1082
1083       split = yes | no
1084          Defautls to no. If set the backup will be piped  through  the  split
1085          command.   This  may  be  useful for user's with large databases, as
1086          some backup systems perform better with many smaller  files  instead
1087          of 1 large one. This defaults to 1GB file size, so this option isn't
1088          helpful if your dumps are smaller than that.
1089
1090          For python2.6, this option will be disabled if the subprocess32 mod‐
1091          ule isn't avaiable.
1092
1093          New in version 1.1.13.
1094
1095
1096   [pgauth]
1097       username = <name>
1098          Username for pg_basebackup to authenticate with
1099
1100       password = <string>
1101          Password for pg_basebackup to authenticate with
1102
1103       hostname = <string>
1104          Hostname for pg_basebackup to connect with
1105
1106       port = <integer>
1107          TCP port for pg_basebackup to connect on
1108
1109   mongodump Provider Configuration [mongodump]
1110       This  plugin  performs logical backups of a MongoDB by using the mongo‐
1111       dump utility.
1112
1113   [mongodump]
1114       host = <string>
1115          Hostname for mongodump to connect with
1116
1117       username = <name>
1118          Username for mongodump to authenticate with
1119
1120       password = <string>
1121          Password for mongodump to authenticate with
1122
1123       port = <integer>
1124          TCP port for mongodump to connect on
1125
1126       uri = <string>
1127              Use a connection string instead of a host, username,  and  pass‐
1128              word
1129
1130              New in version 1.1.14.
1131
1132
1133   [compression]
1134       Specify various compression settings, such as compression utility, com‐
1135       pression level, etc.
1136
1137       method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop |  lzma  |
1138       gpg | zstd
1139          Define  which  compression method to use. Note that some methods may
1140          not be available by default on every system and may need to be  com‐
1141          piled or installed.
1142
1143          For  gpg  compression, a key should already exist(gpg --gen-key) and
1144          default-recipient must be configured in ~/.gnupg/gpg.conf.
1145
1146       inline = yes | no
1147          Whether or not to pipe the output of the  backup  command  into  the
1148          compression  utility.  Enabling this is recommended since it usually
1149          only marginally impacts performance, particularly when using a lower
1150          compression level.
1151
1152       level = 0-9
1153          Specify  the  compression ratio. The lower the number, the lower the
1154          compression ratio, but the faster the backup will  take.  Generally,
1155          setting the lever to 1 or 2 results in favorable compression of tex‐
1156          tual data and is noticeably faster than the higher levels.   Setting
1157          the level to 0 effectively disables compression.
1158
1159       bin-path = <full path to utility>
1160          This  only  needs to be defined if the compression utility is not in
1161          the usual places or not in the system path.
1162
1163       options = <string>
1164          Add commandline options to the configuration compression command.
1165
1166          options = "-Q4"
1167
1168       split = yes | no
1169          Defautls to no. If set the backup will be piped  through  the  split
1170          command.   This  may  be  useful for user's with large databases, as
1171          some backup systems perform better with many smaller  files  instead
1172          of 1 large one. This defaults to 1GB file size, so this option isn't
1173          helpful if your dumps are smaller than that.
1174
1175          For python2.6, this option will be disabled if the subprocess32 mod‐
1176          ule isn't avaiable.
1177
1178          New in version 1.1.13.
1179
1180
1181   Mariabackup Provider Configuration [mariabackup]
1182       Backs up a MySQL instance using mariabackup tool.
1183
1184   [mariabackup]
1185       global-defaults = <path> (default: /etc/my.cnf)
1186          The MySQL configuration file for mariabackup to parse.  This is !in‐
1187          clude'd into the my.cnf the mariabackup plugin generates
1188
1189       innobackupex = <name> (default: innobackupex-1.5.1)
1190          The path to the innobackupex script to run. If this  is  a  relative
1191          path  this will be found in holland's environment PATH as configured
1192          in /etc/holland/holland.conf.
1193
1194       ibbackup = <name>
1195          The path to the ibbackup command to use.  By default, no  --ibbackup
1196          option  is  pass  to  the innobackupex script.  Usually innobackupex
1197          will detect this by itself and this should not need to be set.
1198
1199       stream = mbstream(default: tar)
1200          Placeholder
1201
1202       apply-logs = yes | no (default: yes)
1203          Whether to run innobackupex --apply-logs at the end of  the  backup.
1204          This  is  only  supported  when performing a non-streaming, non-com‐
1205          pressed backup.  In this case, even if apply-logs  =  yes  (the  de‐
1206          fault),  the  prepare  stage  will  be skipped.  Even with an uncom‐
1207          pressed, non-streaming backup you may want to disable apply-logs  if
1208          you wish to use incremental backups.
1209
1210       slave-info = yes | no (default: yes)
1211          Whether to enable the --slave-info innobackupex option
1212
1213       safe-slave-backup = yes | no (default: yes)
1214          Whether to enable the --safe-slave-backup innobackupex option.
1215
1216       no-lock = yes | no (default: no)
1217          Whether to enable the --no-lock innobackupex option
1218
1219       tmpdir = <path> (default: ${backup_directory})
1220          The path for the innobackupex --tmpdir option.
1221
1222       additional-options = <option>[, <option>...]
1223          A  list  of  additional  options to pass to innobackupex.  This is a
1224          comma separated list of options.
1225
1226       pre-command = <command-string>
1227          A command to run prior to running this mariabackup run.  This can be
1228          used,  for  instance,  to  generate a mysqldump schema dump prior to
1229          running mariabackup.  instances of ${backup_directory}  and  ${back‐
1230          updir}  will  be  replaced with the current holland backup directory
1231          where the mariabackup data will be stored.
1232
1233   [compression]
1234       Specify various compression settings, such as compression utility, com‐
1235       pression level, etc.
1236
1237       method  =  gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
1238       gpg | zstd
1239          Define which compression method to use. Note that some  methods  may
1240          not  be available by default on every system and may need to be com‐
1241          piled or installed.
1242
1243          For gpg compression, a key should already exist(gpg  --gen-key)  and
1244          default-recipient must be configured in ~/.gnupg/gpg.conf.
1245
1246       inline = yes | no
1247          Whether  or  not  to  pipe the output of the backup command into the
1248          compression utility. Enabling this is recommended since  it  usually
1249          only marginally impacts performance, particularly when using a lower
1250          compression level.
1251
1252       level = 0-9
1253          Specify the compression ratio. The lower the number, the  lower  the
1254          compression  ratio,  but the faster the backup will take. Generally,
1255          setting the lever to 1 or 2 results in favorable compression of tex‐
1256          tual  data and is noticeably faster than the higher levels.  Setting
1257          the level to 0 effectively disables compression.
1258
1259       bin-path = <full path to utility>
1260          This only needs to be defined if the compression utility is  not  in
1261          the usual places or not in the system path.
1262
1263       options = <string>
1264          Add commandline options to the configuration compression command.
1265
1266          options = "-Q4"
1267
1268       split = yes | no
1269          Defautls  to  no.  If set the backup will be piped through the split
1270          command.  This may be useful for user's  with  large  databases,  as
1271          some  backup  systems perform better with many smaller files instead
1272          of 1 large one. This defaults to 1GB file size, so this option isn't
1273          helpful if your dumps are smaller than that.
1274
1275          For python2.6, this option will be disabled if the subprocess32 mod‐
1276          ule isn't avaiable.
1277
1278          New in version 1.1.13.
1279
1280
1281   MySQL connection info [mysql:client]
1282       These are optional and, if left undefined, Holland will  try  to  login
1283       using the standard .my.cnf conventions.
1284
1285       user = <user>
1286
1287       The user to connect to MySQL as.
1288
1289       password = <password>
1290
1291       The password for the MySQL user
1292
1293       socket = <socket>
1294
1295       The socket file to connect to MySQL with.
1296
1297       host = <host>
1298
1299       This would be used for connecting to MySQL remotely.
1300
1301       port = <port>
1302
1303       Used if MySQL is running on a port other than 3306.
1304
1305   Backup-Set Configs
1306       Backup-Set  configuration  files  largely inherit the configuration op‐
1307       tions of the specified provider. To define a provider  for  the  backup
1308       set, you must put the following at the top of the backup set configura‐
1309       tion file:
1310
1311          [holland:backup]
1312          plugin = <plugin>
1313          backups-to-keep = #
1314          estimated-size-factor = #
1315          historic-size = <yes|no>
1316          historic-size-factor = #
1317          historic-estimated-size-factor = #
1318
1319   Configuration Options
1320       plugin = <plugin>
1321          This is the  name  of  the  provider  that  will  be  used  for  the
1322          backup-set.   This  is required in order for the backup-set to func‐
1323          tion.
1324
1325       backups-to-keep = #
1326          Specifies the number of backups to keep for a backup-set.   Defaults
1327          to retaining 1 backup.
1328
1329       estimated-size-factor = #
1330          Specifies  the  scale factor when Holland decides if there is enough
1331          free space to perform a backup.  The default is 1.0 and this  number
1332          is  multiplied against what each individual plugin reports its esti‐
1333          mated backup size when Holland is verifying  sufficient  free  space
1334          for the backupset.
1335
1336          As  of  Holland  1.1.1,  the 'historic' backup size will be used. If
1337          Holland is unable to determine that size, it will  default  back  to
1338          this.
1339
1340       auto-purge-failures = yes | no
1341          Specifies whether to keep a failed backup or to automatically remove
1342          the backup directory.  By default this is on with the intention that
1343          whatever  process is calling holland will retry when a backup fails.
1344          This behavior can be disabled by setting  auto-purge-failures  =  no
1345          when  partial  backups  might  be  useful  or when troubleshooting a
1346          backup failure.
1347
1348       purge-policy = manual | before-backup | after-backup
1349          Specifies when to run the purge routine on a backupset.  By  default
1350          this  is  run  after a new successful backup completes.  Up to back‐
1351          ups-to-keep backups will be retained including the most recent.
1352
1353          purge-policy = before-backup will run the purge routine just  before
1354          a new backup starts.  This will retain up to backups-to-keep backups
1355          before the new backup is even started allowing purging all  previous
1356          backups  if backups-to-keep is set to 0.  This behavior is useful if
1357          some other process is retaining backups off-server and disk space is
1358          at a premium.
1359
1360          purge-policy  =  manual  will  never run the purge routine automati‐
1361          cally.  Either holland purge must be run externally or  an  explicit
1362          removal  of  desired  backup  directories  can be done at some later
1363          time.
1364
1365       before-backup-command = string
1366          Run a shell command before a backup starts.  This allows  a  command
1367          to  perform  some action before the backup starts such as setting up
1368          an iptables rule (taking a mysql slave out of a  load  balancer)  or
1369          aborting the backup based on some external condition.
1370
1371          The backup will fail if this command exits with a non-zero status.
1372
1373          New in version 1.0.7.
1374
1375
1376       after-backup-command = string
1377          Run a shell command after a backup completes.  This allows a command
1378          to perform some action when a backup completes successfully such  as
1379          sending out a success notification.
1380
1381          The backup will fail if this command exits with a non-zero status.
1382
1383          New in version 1.0.7.
1384
1385
1386       failed-backup-command = string
1387          Run a shell command if a backup starts.  This allows some command to
1388          perform some action when a backup fails such as sending out a  fail‐
1389          ure notification.
1390
1391          The backup will fail if this command exits with a non-zero status.
1392
1393          New in version 1.0.7.
1394
1395
1396       historic-size = yes | no
1397          Defaults  to  yes.  Check for the 'backup.conf' file in the 'newest'
1398          spooled folder for the running "backupset".   If  the  configuration
1399          file  exists and contains 'estimated-size' and 'on-disk-size', these
1400          values will be used to decide if holland has enough free space for a
1401          backupset.  This  means  Holland  will  use values from the previous
1402          backup to estimate the size of the next backup.
1403
1404          New in version 1.1.1.
1405
1406
1407       historic-size-factor = #
1408          Defaults to '1.5'. If the estimated size of the database has changed
1409          by  more  than this multiple, the 'estimated-size-factor' value will
1410          be used to determine if there is sufficient free space for the back‐
1411          upset.
1412
1413          New in version 1.1.1.
1414
1415
1416       historic-estimated-size-factor = #
1417          Defaults  to  '1.1'. Specifies the scale factor when Holland decides
1418          if there is enough free space to  perform  a  backup.  Holland  will
1419          throw  an  error  if  the  system  has less free space than the last
1420          backup size multiplied by this value
1421
1422          New in version 1.1.1.
1423
1424
1425       create-symlinks = yes | no
1426          Defaults to yes. Enable the creation of "newest" and  "oldest"  sym‐
1427          links  in  the  backupset directory.  Disabling the symlink creation
1428          process and be helpful on filesystems that don't support symlinks.
1429
1430          New in version 1.2.7.
1431
1432
1433          $ ls -l /var/spool/holland/default/
1434          total 0
1435          drwxrwx---. 3 root root 58 Aug 18 16:18 20210818_161856
1436          lrwxrwxrwx. 1 root root 42 Aug 18 16:18 newest -> /var/spool/holland/default/20210818_161856
1437          lrwxrwxrwx. 1 root root 42 Aug 18 16:18 oldest -> /var/spool/holland/default/20210818_161856
1438
1439       For all hook commands, Holland will perform simple text substitution on
1440       the three parameters:
1441
1442          • hook  -  name of the hook being called (one of: before-backup-com‐
1443            mand, after-backup-command, failed-backup-command)
1444
1445          • backupdir  -  path  to  the   current   backup   directory   (e.g.
1446            /var/spool/holland/mysqldump/YYYYmmdd_HHMMSS)
1447
1448          • backupset - name of the backupset being run (e.g. 'mysql-lvm')
1449
1450       For example:
1451
1452          [holland:backup]
1453          plugin = mysqldump
1454          before-backup-command = /usr/local/bin/my-custom-script --hook ${hook} --backupset ${backupset} --backupdir ${backupdir}
1455          after-backup-command = echo ${backupset} completed successfully.  Files are in ${backupdir}
1456
1457          [mysqldump]
1458          ...
1459
1460       Backup-Set files are defined in the "backupsets" directory which is, by
1461       default, /etc/holland/backupsets. The name of the backup-set is defined
1462       by  its  configuration  filename  and can really be most anything. That
1463       means backup-sets can be  organized  in  any  arbitrary  way,  although
1464       backup  set  files must end in .conf. The file extension is not part of
1465       the name of the backup-set.
1466
1467       As noted above, in order for a backup-set to  be  active,  it  must  be
1468       listed in the backupsets variable.
1469
1470       Backups  are placed under the directory defined in the backup_directory
1471       section of the main configuration file. Each backup resides under a di‐
1472       rectory corresponding to the backup-set name followed by a date-encoded
1473       directory.
1474

AUTHOR

1476       Holland Core Team
1477
1479       2021
1480
1481
1482
1483
14841.2.8                            Nov 17, 2021                       HOLLAND(1)
Impressum