Usage and Implementation Overview¶
Because Holland is very pluggable, it may first seem a bit confusing when it comes to configuring Holland to do something useful. Out of the box, Holland is designed to backup MySQL databases using the mysqldump provider. This is the simplest setup, and may be sufficient for most people. However, others may wish to have more fine-grained control over their backups and/or use another method other than mysqldump.
For instance, one can configure a backup set to backup certain databases using mysqldump, others using the mysql-lvm plugins etc. All this is done by a mix of providers and backup-sets.
Backup-Sets¶
Each backup-set implements exactly one provider and will inherit the default values of that provider. These values can be overridden to adjust the behavior of the backup set. This includes defining what databases or tables to include (or exclude) in the backup, the type of compression used (if any), what locking method to use, among other things.
Providers¶
Providers essentially provide a backup service for use in a backup set.
mysqldump
Uses the
mysqldump
utility to backup databases.MySQL + LVM
Backup MySQL databases using LVM snapshots which allows for near lockless or fully lockless (when transactional engines are used) backups.
mysqldump + LVM
This plugin creates an LVM snapshot, starts a mysql instance using the snapshot as it’s datadir, and then use the
mysqldump
utility to backup the databases.XtraBackup
New in version 1.0.8.
Backup MySQL databases using Percona’s XtraBackup tool. This provides a near lockless backup when using the InnoDB storage engine.
pgdump
Backup PostgreSQL databases using the
pgdump
utility.pg_basebackup
New in version 1.2.8.
Backup PostgreSQL databases using the
pg_basebackup
utility.mariabackup
New in version 1.1.0.
Backup MySQL databases using MariaDB’s mariabackup tool.
mongodump
New in version 1.1.0.
This plugin performs logical backups of a MongoDB by using the
mongodump
utility.Example
This is used solely as a template for designing providers. It otherwise does nothing.
As Holland is a framework, it can actually backup most anything as long as there is a provider for it. This includes things that have nothing to do with databases. The idea is to present an easy to use and clear method of backing up and restoring backups no matter the source.