π
-
How-to guides
- π₯ Set up backups
- ποΈ Make per-application backups
- π Provide your passwords
- βοΈ Make backups redundant
- π Deal with very large backups
- π Inspect your backups
- π¨ Monitor your backups
- π€ Extract a backup
- ποΈ Backup your databases
- πΈ Snapshot your filesystems
- π§Ή Add preparation and cleanup steps
- πΎ Backup to a removable drive/server
- π§ Run arbitrary Borg commands
- π₯ Customize warnings/errors
- π¦ Upgrade borgmatic/Borg
- ποΈ Develop on borgmatic
-
Reference guides
- βοΈ Configuration
- π» Command-line
- π Source code
New in version 1.8.2 To backup
MariaDB with borgmatic, use the mariadb_databases: hook instead of
mysql_databases: as the MariaDB hook calls native MariaDB commands instead of
the deprecated MySQL ones. For instance:
mariadb_databases:
- name: comments
Full configuration
# List of one or more MariaDB databases to dump before creating a
# backup, run once per configuration file. The database dumps are
# added to your source directories at runtime and streamed directly
# to Borg. Requires mariadb-dump/mariadb commands. See
# https://mariadb.com/kb/en/library/mysqldump/ for details.
mariadb_databases:
# Database name (required if using this hook). Or "all" to
# dump all databases on the host. Note that using this
# database hook implicitly enables read_special (see
# above) to support dump and restore streaming.
- name: users
# Database names to skip when dumping "all" databases.
# Ignored when the database name is not "all".
skip_names:
- cache
# Label to identify the database dump in the backup.
label: my_backup_label
# Container name/id to connect to. When specified the
# hostname is ignored. Requires docker/podman CLI.
container: debian_stable
# Container name/id to restore to. Defaults to the
# "container" option.
restore_container: restore_container
# Database hostname to connect to. Defaults to connecting
# via local Unix socket.
hostname: database.example.org
# Database hostname to restore to. Defaults to the
# "hostname" option.
restore_hostname: database.example.org
# Port to connect to. Defaults to 3306.
port: 3307
# Port to restore to. Defaults to the "port" option.
restore_port: 5433
# Username with which to connect to the database. Defaults
# to the username of the current user. Supports the
# "{credential ...}" syntax.
username: dbuser
# Username with which to restore the database. Defaults to
# the "username" option. Supports the "{credential ...}"
# syntax.
restore_username: dbuser
# Password with which to connect to the database. Omitting
# a password will only work if MariaDB is configured to
# trust the configured username without a password.
# Supports the "{credential ...}" syntax.
password: trustsome1
# Password with which to connect to the restore database.
# Defaults to the "password" option. Supports the
# "{credential ...}" syntax.
restore_password: trustsome1
# How to transmit database passwords from borgmatic to the
# MariaDB client, one of:
# * "pipe": Securely transmit passwords via anonymous
# pipe. Only works if the database client is on the
# same host as borgmatic. (The server can be
# somewhere else.) This is the default value.
# * "environment": Transmit passwords via environment
# variable. Potentially less secure than a pipe, but
# necessary when the database client is elsewhere, e.g.
# when "mariadb_dump_command" is configured to "exec"
# into a container and run a client there.
password_transport:
# Whether to TLS-encrypt data transmitted between the
# client and server. The default varies based on the
# MariaDB version.
tls: false
# Whether to TLS-encrypt data transmitted between the
# client and restore server. The default varies based on
# the MariaDB version.
restore_tls: false
# Command to use instead of "mariadb-dump". This can be
# used to run a specific mariadb_dump version (e.g., one
# inside a running container). If you run it from within a
# container, make sure to mount the path in the
# "user_runtime_directory" option from the host into the
# container at the same location. Defaults to
# "mariadb-dump".
mariadb_dump_command: docker exec mariadb_container mariadb-dump
# Command to run instead of "mariadb". This can be used to
# run a specific mariadb version (e.g., one inside a
# running container). Defaults to "mariadb".
mariadb_command: docker exec mariadb_container mariadb
# Database dump output format. Currently only "sql" is
# supported. Defaults to "sql" for a single database. Or,
# when database name is "all" and format is blank, dumps
# all databases to a single file. But if a format is
# specified with an "all" database name, dumps each
# database to a separate file of that format, allowing
# more convenient restores of individual databases.
format: directory
# Use the "--add-drop-database" flag with mariadb-dump,
# causing the database to be dropped right before restore.
# Defaults to true.
add_drop_database: false
# Additional mariadb-dump options to pass directly to the
# dump command, without performing any validation on them.
# See mariadb-dump documentation for details.
options: --skip-comments
# Additional options to pass directly to the mariadb
# command that lists available databases, without
# performing any validation on them. See mariadb command
# documentation for details.
list_options: --defaults-extra-file=mariadb.cnf
# Additional options to pass directly to the mariadb
# command that restores database dumps, without
# performing any validation on them. See mariadb command
# documentation for details.
restore_options: --defaults-extra-file=mariadb.cnf
Improve this documentation
Have an idea on how to make this documentation even better? Use our issue tracker to send your feedback!