1HOLLAND(1) Holland HOLLAND(1)
2
3
4
6 holland - Holland Documentation
7
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 strict = yes | no (default: yes)
885 If strict is set to no, add --strict=OFF option to the xtrabackup
886 command. The strict option in xtrabackup prevents errors and warning
887 for invalid command line options.
888 New in version 1.2.10.
889
890
891 [compression]
892 Specify various compression settings, such as compression utility, com‐
893 pression level, etc.
894
895 method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
896 gpg | zstd
897 Define which compression method to use. Note that some methods may
898 not be available by default on every system and may need to be com‐
899 piled or installed.
900
901 For gpg compression, a key should already exist(gpg --gen-key) and
902 default-recipient must be configured in ~/.gnupg/gpg.conf.
903
904 inline = yes | no
905 Whether or not to pipe the output of the backup command into the
906 compression utility. Enabling this is recommended since it usually
907 only marginally impacts performance, particularly when using a lower
908 compression level.
909
910 level = 0-9
911 Specify the compression ratio. The lower the number, the lower the
912 compression ratio, but the faster the backup will take. Generally,
913 setting the lever to 1 or 2 results in favorable compression of tex‐
914 tual data and is noticeably faster than the higher levels. Setting
915 the level to 0 effectively disables compression.
916
917 bin-path = <full path to utility>
918 This only needs to be defined if the compression utility is not in
919 the usual places or not in the system path.
920
921 options = <string>
922 Add commandline options to the configuration compression command.
923
924 options = "-Q4"
925
926 split = yes | no
927 Defautls to no. If set the backup will be piped through the split
928 command. This may be useful for user's with large databases, as
929 some backup systems perform better with many smaller files instead
930 of 1 large one. This defaults to 1GB file size, so this option isn't
931 helpful if your dumps are smaller than that.
932
933 For python2.6, this option will be disabled if the subprocess32 mod‐
934 ule isn't avaiable.
935
936 New in version 1.1.13.
937
938
939 MySQL connection info [mysql:client]
940 These are optional and, if left undefined, Holland will try to login
941 using the standard .my.cnf conventions.
942
943 user = <user>
944
945 The user to connect to MySQL as.
946
947 password = <password>
948
949 The password for the MySQL user
950
951 socket = <socket>
952
953 The socket file to connect to MySQL with.
954
955 host = <host>
956
957 This would be used for connecting to MySQL remotely.
958
959 port = <port>
960
961 Used if MySQL is running on a port other than 3306.
962
963 pgdump Provider Configuration [pgdump]
964 Backs up a PostgreSQL instance using the pgdump utility.
965
966 [pgdump]
967 format = custom | tar | plain (default: custom)
968 Defines the --format option for pg_dump. This defaults to --for‐
969 mat=custom. The custom format is required for pg_restore to do par‐
970 tial restore as well as enabling parallel restores. If set to cus‐
971 tom, the --compress option will be passed to pgdump
972
973 additional-options = <command-string>
974 Pass additional options to the pg_dump command
975
976 Only the 'level' option will be used if 'format=custom'
977
978 [compression]
979 Specify various compression settings, such as compression utility, com‐
980 pression level, etc.
981
982 method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
983 gpg | zstd
984 Define which compression method to use. Note that some methods may
985 not be available by default on every system and may need to be com‐
986 piled or installed.
987
988 For gpg compression, a key should already exist(gpg --gen-key) and
989 default-recipient must be configured in ~/.gnupg/gpg.conf.
990
991 inline = yes | no
992 Whether or not to pipe the output of the backup command into the
993 compression utility. Enabling this is recommended since it usually
994 only marginally impacts performance, particularly when using a lower
995 compression level.
996
997 level = 0-9
998 Specify the compression ratio. The lower the number, the lower the
999 compression ratio, but the faster the backup will take. Generally,
1000 setting the lever to 1 or 2 results in favorable compression of tex‐
1001 tual data and is noticeably faster than the higher levels. Setting
1002 the level to 0 effectively disables compression.
1003
1004 bin-path = <full path to utility>
1005 This only needs to be defined if the compression utility is not in
1006 the usual places or not in the system path.
1007
1008 options = <string>
1009 Add commandline options to the configuration compression command.
1010
1011 options = "-Q4"
1012
1013 split = yes | no
1014 Defautls to no. If set the backup will be piped through the split
1015 command. This may be useful for user's with large databases, as
1016 some backup systems perform better with many smaller files instead
1017 of 1 large one. This defaults to 1GB file size, so this option isn't
1018 helpful if your dumps are smaller than that.
1019
1020 For python2.6, this option will be disabled if the subprocess32 mod‐
1021 ule isn't avaiable.
1022
1023 New in version 1.1.13.
1024
1025
1026 [pgauth]
1027 username = <name>
1028 Username for pg_dump to authenticate with
1029
1030 password = <string>
1031 Password for pg_dump to authenticate with
1032
1033 hostname = <string>
1034 Hostname for pg_dump to connect with
1035
1036 port = <integer>
1037 TCP port for pg_dump to connect on
1038
1039 pg_basebackup Provider Configuration [pg_basebackup]
1040 Backs up a PostgreSQL instance using the pg_basebackup utility.
1041
1042 [pg_basebackup]
1043 format = tar | plain (default: tar)
1044 Defines the --format option for pg_basebackup.
1045
1046 wal-method = none | fetch | plain (default: fetch)
1047 Defines the --wal-method used for pg_basebackup.
1048
1049 checkpoint = none | fast | spread (default: fast)
1050 Defines the --checkpoint used for pg_basebackup.
1051
1052 additional-options = <command-string> (default: none)
1053 Pass additional options to the pg_basebackup command. This will ex‐
1054 pand backup_directory/backupdir variables.
1055
1056 [compression]
1057 Specify various compression settings, such as compression utility, com‐
1058 pression level, etc.
1059
1060 method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
1061 gpg | zstd
1062 Define which compression method to use. Note that some methods may
1063 not be available by default on every system and may need to be com‐
1064 piled or installed.
1065
1066 For gpg compression, a key should already exist(gpg --gen-key) and
1067 default-recipient must be configured in ~/.gnupg/gpg.conf.
1068
1069 inline = yes | no
1070 Whether or not to pipe the output of the backup command into the
1071 compression utility. Enabling this is recommended since it usually
1072 only marginally impacts performance, particularly when using a lower
1073 compression level.
1074
1075 level = 0-9
1076 Specify the compression ratio. The lower the number, the lower the
1077 compression ratio, but the faster the backup will take. Generally,
1078 setting the lever to 1 or 2 results in favorable compression of tex‐
1079 tual data and is noticeably faster than the higher levels. Setting
1080 the level to 0 effectively disables compression.
1081
1082 bin-path = <full path to utility>
1083 This only needs to be defined if the compression utility is not in
1084 the usual places or not in the system path.
1085
1086 options = <string>
1087 Add commandline options to the configuration compression command.
1088
1089 options = "-Q4"
1090
1091 split = yes | no
1092 Defautls to no. If set the backup will be piped through the split
1093 command. This may be useful for user's with large databases, as
1094 some backup systems perform better with many smaller files instead
1095 of 1 large one. This defaults to 1GB file size, so this option isn't
1096 helpful if your dumps are smaller than that.
1097
1098 For python2.6, this option will be disabled if the subprocess32 mod‐
1099 ule isn't avaiable.
1100
1101 New in version 1.1.13.
1102
1103
1104 [pgauth]
1105 username = <name>
1106 Username for pg_basebackup to authenticate with
1107
1108 password = <string>
1109 Password for pg_basebackup to authenticate with
1110
1111 hostname = <string>
1112 Hostname for pg_basebackup to connect with
1113
1114 port = <integer>
1115 TCP port for pg_basebackup to connect on
1116
1117 mongodump Provider Configuration [mongodump]
1118 This plugin performs logical backups of a MongoDB by using the mongo‐
1119 dump utility.
1120
1121 [mongodump]
1122 host = <string>
1123 Hostname for mongodump to connect with
1124
1125 username = <name>
1126 Username for mongodump to authenticate with
1127
1128 password = <string>
1129 Password for mongodump to authenticate with
1130
1131 port = <integer>
1132 TCP port for mongodump to connect on
1133
1134 uri = <string>
1135 Use a connection string instead of a host, username, and pass‐
1136 word
1137
1138 New in version 1.1.14.
1139
1140
1141 [compression]
1142 Specify various compression settings, such as compression utility, com‐
1143 pression level, etc.
1144
1145 method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
1146 gpg | zstd
1147 Define which compression method to use. Note that some methods may
1148 not be available by default on every system and may need to be com‐
1149 piled or installed.
1150
1151 For gpg compression, a key should already exist(gpg --gen-key) and
1152 default-recipient must be configured in ~/.gnupg/gpg.conf.
1153
1154 inline = yes | no
1155 Whether or not to pipe the output of the backup command into the
1156 compression utility. Enabling this is recommended since it usually
1157 only marginally impacts performance, particularly when using a lower
1158 compression level.
1159
1160 level = 0-9
1161 Specify the compression ratio. The lower the number, the lower the
1162 compression ratio, but the faster the backup will take. Generally,
1163 setting the lever to 1 or 2 results in favorable compression of tex‐
1164 tual data and is noticeably faster than the higher levels. Setting
1165 the level to 0 effectively disables compression.
1166
1167 bin-path = <full path to utility>
1168 This only needs to be defined if the compression utility is not in
1169 the usual places or not in the system path.
1170
1171 options = <string>
1172 Add commandline options to the configuration compression command.
1173
1174 options = "-Q4"
1175
1176 split = yes | no
1177 Defautls to no. If set the backup will be piped through the split
1178 command. This may be useful for user's with large databases, as
1179 some backup systems perform better with many smaller files instead
1180 of 1 large one. This defaults to 1GB file size, so this option isn't
1181 helpful if your dumps are smaller than that.
1182
1183 For python2.6, this option will be disabled if the subprocess32 mod‐
1184 ule isn't avaiable.
1185
1186 New in version 1.1.13.
1187
1188
1189 Mariabackup Provider Configuration [mariabackup]
1190 Backs up a MySQL instance using mariabackup tool.
1191
1192 [mariabackup]
1193 global-defaults = <path> (default: /etc/my.cnf)
1194 The MySQL configuration file for mariabackup to parse. This is !in‐
1195 clude'd into the my.cnf the mariabackup plugin generates
1196
1197 innobackupex = <name> (default: innobackupex-1.5.1)
1198 The path to the innobackupex script to run. If this is a relative
1199 path this will be found in holland's environment PATH as configured
1200 in /etc/holland/holland.conf.
1201
1202 ibbackup = <name>
1203 The path to the ibbackup command to use. By default, no --ibbackup
1204 option is pass to the innobackupex script. Usually innobackupex
1205 will detect this by itself and this should not need to be set.
1206
1207 stream = mbstream(default: tar)
1208 Placeholder
1209
1210 apply-logs = yes | no (default: yes)
1211 Whether to run innobackupex --apply-logs at the end of the backup.
1212 This is only supported when performing a non-streaming, non-com‐
1213 pressed backup. In this case, even if apply-logs = yes (the de‐
1214 fault), the prepare stage will be skipped. Even with an uncom‐
1215 pressed, non-streaming backup you may want to disable apply-logs if
1216 you wish to use incremental backups.
1217
1218 slave-info = yes | no (default: yes)
1219 Whether to enable the --slave-info innobackupex option
1220
1221 safe-slave-backup = yes | no (default: yes)
1222 Whether to enable the --safe-slave-backup innobackupex option.
1223
1224 no-lock = yes | no (default: no)
1225 Whether to enable the --no-lock innobackupex option
1226
1227 tmpdir = <path> (default: ${backup_directory})
1228 The path for the innobackupex --tmpdir option.
1229
1230 additional-options = <option>[, <option>...]
1231 A list of additional options to pass to innobackupex. This is a
1232 comma separated list of options.
1233
1234 pre-command = <command-string>
1235 A command to run prior to running this mariabackup run. This can be
1236 used, for instance, to generate a mysqldump schema dump prior to
1237 running mariabackup. instances of ${backup_directory} and ${back‐
1238 updir} will be replaced with the current holland backup directory
1239 where the mariabackup data will be stored.
1240
1241 [compression]
1242 Specify various compression settings, such as compression utility, com‐
1243 pression level, etc.
1244
1245 method = gzip| gzip-rsyncable | pigz | bzip2 | pbzip2 | lzop | lzma |
1246 gpg | zstd
1247 Define which compression method to use. Note that some methods may
1248 not be available by default on every system and may need to be com‐
1249 piled or installed.
1250
1251 For gpg compression, a key should already exist(gpg --gen-key) and
1252 default-recipient must be configured in ~/.gnupg/gpg.conf.
1253
1254 inline = yes | no
1255 Whether or not to pipe the output of the backup command into the
1256 compression utility. Enabling this is recommended since it usually
1257 only marginally impacts performance, particularly when using a lower
1258 compression level.
1259
1260 level = 0-9
1261 Specify the compression ratio. The lower the number, the lower the
1262 compression ratio, but the faster the backup will take. Generally,
1263 setting the lever to 1 or 2 results in favorable compression of tex‐
1264 tual data and is noticeably faster than the higher levels. Setting
1265 the level to 0 effectively disables compression.
1266
1267 bin-path = <full path to utility>
1268 This only needs to be defined if the compression utility is not in
1269 the usual places or not in the system path.
1270
1271 options = <string>
1272 Add commandline options to the configuration compression command.
1273
1274 options = "-Q4"
1275
1276 split = yes | no
1277 Defautls to no. If set the backup will be piped through the split
1278 command. This may be useful for user's with large databases, as
1279 some backup systems perform better with many smaller files instead
1280 of 1 large one. This defaults to 1GB file size, so this option isn't
1281 helpful if your dumps are smaller than that.
1282
1283 For python2.6, this option will be disabled if the subprocess32 mod‐
1284 ule isn't avaiable.
1285
1286 New in version 1.1.13.
1287
1288
1289 MySQL connection info [mysql:client]
1290 These are optional and, if left undefined, Holland will try to login
1291 using the standard .my.cnf conventions.
1292
1293 user = <user>
1294
1295 The user to connect to MySQL as.
1296
1297 password = <password>
1298
1299 The password for the MySQL user
1300
1301 socket = <socket>
1302
1303 The socket file to connect to MySQL with.
1304
1305 host = <host>
1306
1307 This would be used for connecting to MySQL remotely.
1308
1309 port = <port>
1310
1311 Used if MySQL is running on a port other than 3306.
1312
1313 Backup-Set Configs
1314 Backup-Set configuration files largely inherit the configuration op‐
1315 tions of the specified provider. To define a provider for the backup
1316 set, you must put the following at the top of the backup set configura‐
1317 tion file:
1318
1319 [holland:backup]
1320 plugin = <plugin>
1321 backups-to-keep = #
1322 estimated-size-factor = #
1323 historic-size = <yes|no>
1324 historic-size-factor = #
1325 historic-estimated-size-factor = #
1326
1327 Configuration Options
1328 plugin = <plugin>
1329 This is the name of the provider that will be used for the
1330 backup-set. This is required in order for the backup-set to func‐
1331 tion.
1332
1333 backups-to-keep = #
1334 Specifies the number of backups to keep for a backup-set. Defaults
1335 to retaining 1 backup.
1336
1337 estimated-size-factor = #
1338 Specifies the scale factor when Holland decides if there is enough
1339 free space to perform a backup. The default is 1.0 and this number
1340 is multiplied against what each individual plugin reports its esti‐
1341 mated backup size when Holland is verifying sufficient free space
1342 for the backupset.
1343
1344 As of Holland 1.1.1, the 'historic' backup size will be used. If
1345 Holland is unable to determine that size, it will default back to
1346 this.
1347
1348 auto-purge-failures = yes | no
1349 Specifies whether to keep a failed backup or to automatically remove
1350 the backup directory. By default this is on with the intention that
1351 whatever process is calling holland will retry when a backup fails.
1352 This behavior can be disabled by setting auto-purge-failures = no
1353 when partial backups might be useful or when troubleshooting a
1354 backup failure.
1355
1356 purge-policy = manual | before-backup | after-backup
1357 Specifies when to run the purge routine on a backupset. By default
1358 this is run after a new successful backup completes. Up to back‐
1359 ups-to-keep backups will be retained including the most recent.
1360
1361 purge-policy = before-backup will run the purge routine just before
1362 a new backup starts. This will retain up to backups-to-keep backups
1363 before the new backup is even started allowing purging all previous
1364 backups if backups-to-keep is set to 0. This behavior is useful if
1365 some other process is retaining backups off-server and disk space is
1366 at a premium.
1367
1368 purge-policy = manual will never run the purge routine automati‐
1369 cally. Either holland purge must be run externally or an explicit
1370 removal of desired backup directories can be done at some later
1371 time.
1372
1373 before-backup-command = string
1374 Run a shell command before a backup starts. This allows a command
1375 to perform some action before the backup starts such as setting up
1376 an iptables rule (taking a mysql slave out of a load balancer) or
1377 aborting the backup based on some external condition.
1378
1379 The backup will fail if this command exits with a non-zero status.
1380
1381 New in version 1.0.7.
1382
1383
1384 after-backup-command = string
1385 Run a shell command after a backup completes. This allows a command
1386 to perform some action when a backup completes successfully such as
1387 sending out a success notification.
1388
1389 The backup will fail if this command exits with a non-zero status.
1390
1391 New in version 1.0.7.
1392
1393
1394 failed-backup-command = string
1395 Run a shell command if a backup starts. This allows some command to
1396 perform some action when a backup fails such as sending out a fail‐
1397 ure notification.
1398
1399 The backup will fail if this command exits with a non-zero status.
1400
1401 New in version 1.0.7.
1402
1403
1404 historic-size = yes | no
1405 Defaults to yes. Check for the 'backup.conf' file in the 'newest'
1406 spooled folder for the running "backupset". If the configuration
1407 file exists and contains 'estimated-size' and 'on-disk-size', these
1408 values will be used to decide if holland has enough free space for a
1409 backupset. This means Holland will use values from the previous
1410 backup to estimate the size of the next backup.
1411
1412 New in version 1.1.1.
1413
1414
1415 historic-size-factor = #
1416 Defaults to '1.5'. If the estimated size of the database has changed
1417 by more than this multiple, the 'estimated-size-factor' value will
1418 be used to determine if there is sufficient free space for the back‐
1419 upset.
1420
1421 New in version 1.1.1.
1422
1423
1424 historic-estimated-size-factor = #
1425 Defaults to '1.1'. Specifies the scale factor when Holland decides
1426 if there is enough free space to perform a backup. Holland will
1427 throw an error if the system has less free space than the last
1428 backup size multiplied by this value
1429
1430 New in version 1.1.1.
1431
1432
1433 create-symlinks = yes | no
1434 Defaults to yes. Enable the creation of "newest" and "oldest" sym‐
1435 links in the backupset directory. Disabling the symlink creation
1436 process and be helpful on filesystems that don't support symlinks.
1437
1438 New in version 1.2.7.
1439
1440
1441 $ ls -l /var/spool/holland/default/
1442 total 0
1443 drwxrwx---. 3 root root 58 Aug 18 16:18 20210818_161856
1444 lrwxrwxrwx. 1 root root 42 Aug 18 16:18 newest -> /var/spool/holland/default/20210818_161856
1445 lrwxrwxrwx. 1 root root 42 Aug 18 16:18 oldest -> /var/spool/holland/default/20210818_161856
1446
1447 For all hook commands, Holland will perform simple text substitution on
1448 the three parameters:
1449
1450 • hook - name of the hook being called (one of: before-backup-com‐
1451 mand, after-backup-command, failed-backup-command)
1452
1453 • backupdir - path to the current backup directory (e.g.
1454 /var/spool/holland/mysqldump/YYYYmmdd_HHMMSS)
1455
1456 • backupset - name of the backupset being run (e.g. 'mysql-lvm')
1457
1458 For example:
1459
1460 [holland:backup]
1461 plugin = mysqldump
1462 before-backup-command = /usr/local/bin/my-custom-script --hook ${hook} --backupset ${backupset} --backupdir ${backupdir}
1463 after-backup-command = echo ${backupset} completed successfully. Files are in ${backupdir}
1464
1465 [mysqldump]
1466 ...
1467
1468 Backup-Set files are defined in the "backupsets" directory which is, by
1469 default, /etc/holland/backupsets. The name of the backup-set is defined
1470 by its configuration filename and can really be most anything. That
1471 means backup-sets can be organized in any arbitrary way, although
1472 backup set files must end in .conf. The file extension is not part of
1473 the name of the backup-set.
1474
1475 As noted above, in order for a backup-set to be active, it must be
1476 listed in the backupsets variable.
1477
1478 Backups are placed under the directory defined in the backup_directory
1479 section of the main configuration file. Each backup resides under a di‐
1480 rectory corresponding to the backup-set name followed by a date-encoded
1481 directory.
1482
1484 Holland Core Team
1485
1487 2022
1488
1489
1490
1491
14921.2.10 Jul 21, 2022 HOLLAND(1)