Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Learn to back up and restore MariaDB Server databases. This section covers essential strategies and tools to ensure data safety and quick recovery from potential data loss.
Complete MariaDB backup and recovery guide. Complete resource for backup methods, mariabackup usage, scheduling, and restoration for production use.
mariadb-backupmariadb-dumpmariadb-dump Examplesmariadb-hotcopymariadb-hotcopy Examples--export.cfgCREATE USER 'mariabackup'@'localhost' IDENTIFIED BY 'mbu_passwd';
GRANT RELOAD, PROCESS, LOCK TABLES, BINLOG MONITOR
ON * TO 'mariabackup'@'localhost';mariadb-dump db_name > backup-file.sqlmariadb db_name < backup-file.sqlmariadb-hotcopy db_name [/path/to/new_directory]
mariadb-hotcopy db_name_1 ... db_name_n /path/to/new_directoryLearn how to design a robust backup strategy tailored to your business needs, balancing recovery time objectives and data retention policies.
mariadb-backup --backup \
--target-dir=/data/backups/full \
--user=mariadb-backup \
--password=mbu_passwd \
--ssl-ca=/etc/my.cnf.d/certs/ca.pem \
--ssl-cert=/etc/my.cnf.d/certs/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certs/client-key.pemRestore specific tables from a backup. Learn the process of importing individual .ibd files to recover specific tables without restoring the whole database.
Secure and compress backup streams. Learn to pipe backup output to tools like GPG and GZIP for encryption and storage efficiency.
mariadb-backup options, see this page.$ mariadb-backup --prepare --export \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypasswordmariadb-backup --user=root --backup --stream=xbstream | openssl enc -aes-256-cbc -k mypass > backup.xb.encopenssl enc -d -aes-256-cbc -k mypass -in backup.xb.enc | mbstream -xmariadb-backup --user=root --backup --stream=xbstream | gzip > backupstream.gzgunzip -c backupstream.gz | mbstream -xmariadb-backup --user=root --backup --stream=xbstream | gzip | openssl enc -aes-256-cbc -k mypass > backup.xb.gz.encopenssl enc -d -aes-256-cbc -k mypass -in backup.xb.gz.enc |gzip -d| mbstream -xmariadb-backup --user=root --backup --stream=xbstream | 7z a -si backup.xb.7z7z e backup.xb.7z -so |mbstream -xmariadb-backup --user=root --backup --stream=xbstream | zstd - -o backup.xb.zst -f -1zstd -d backup.xbstream.zst -c | mbstream -xmariadb-backup --user=root --backup --stream=xbstream | gpg -c --passphrase SECRET --batch --yes -o backup.xb.gpggpg --decrypt --passphrase SECRET --batch --yes backup.xb.gpg | mbstream -xGet an overview of MariaDB Backup. This section introduces the hot physical backup tool, explaining its capabilities for efficient and consistent backups of your MariaDB Server.
Explains how to restore (recover) to a specific point in time. Point-in-time recovery is often referred to as PITR.
Complete MariaDB backup and recovery guide. Complete resource for backup methods, mariabackup usage, scheduling, and restoration for production use.
Initialize a replication slave using a backup. This guide shows how to use mariadb-backup to provision a new replica from a master server.
mariadb-backup options, see this page.$ mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypassword$ ls /var/mariadb/backup/
aria_log.0000001 mysql xtrabackup_checkpoints
aria_log_control performance_schema xtrabackup_info
backup-my.cnf test xtrabackup_logfile
ibdata1 xtrabackup_binlog_info$ mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypassword \
--history=full_backup_weekly$ mariadb-backup --prepare \
--target-dir=/var/mariadb/backup/$ mariadb-backup --copy-back \
--target-dir=/var/mariadb/backup/$ chown -R mysql:mysql /var/lib/mysql/$ rsync -avrP /var/mariadb/backup /var/lib/mysql/
$ chown -R mysql:mysql /var/lib/mysql/cat /data/backups/full/xtraback_binlog_info
mariadb-node4.00001 321mariadb-backup --move-back --target-dir=/data/backups/fullmariadb-backup --backup \
--target-dir=/data/backups/full \
--user=mariadb-backup \
--password=mbu_passwd \
--parallel=12mariadb-backup --backup \
--incremental-basedir=/data/backups/inc1 \
--target-dir=/data/backups/inc2 \
--user=mariadb-backup \
--password=mbu_passwdmariadb-backup --prepare \
--target-dir=/data/backups/full \
--incremental-dir=/data/backups/inc1mariadb-backup --prepare \
--target-dir=/data/backups/full \
--incremental-dir=/data/backups/inc2mariadb-backup --copy-back --target-dir=/data/backups/full
chown -R mysql:mysql /var/lib/mysql$ mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypassword$ mariadb-backup --backup \
--slave-info --safe-slave-backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypassword$ mariadb-backup --prepare \
--target-dir=/var/mariadb/backup/$ rsync -avP /var/mariadb/backup dbserver2:/var/mariadb/backup$ mariadb-backup --copy-back \
--target-dir=/var/mariadb/backup/$ chown -R mysql:mysql /var/lib/mysql/CREATE USER 'repl'@'dbserver2' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'dbserver2';mariadb-bin.000096 568 0-1-2$ cat xtrabackup_binlog_info
mariadb-bin.000096 568 0-1-2SET GLOBAL gtid_slave_pos = "0-1-2";
CHANGE MASTER TO
MASTER_HOST="dbserver1",
MASTER_PORT=3306,
MASTER_USER="repl",
MASTER_PASSWORD="password",
MASTER_USE_GTID=slave_pos;
START SLAVE;CHANGE MASTER TO
MASTER_HOST="dbserver1",
MASTER_PORT=3306,
MASTER_USER="repl",
MASTER_PASSWORD="password",
MASTER_LOG_FILE='mariadb-bin.000096',
MASTER_LOG_POS=568;
START SLAVE;SHOW SLAVE STATUS\GComplete mariadb-backup incremental guide: --backup/--prepare syntax, LSN xtrabackup_checkpoints, --incremental-basedir, and --copy-back/--move-back restore.
Deep dive into backup mechanics. Understand how the tool handles redo logs, locking, and file copying to ensure consistent backups.
Restore a single database from a full backup. Learn the procedure to extract and recover a specific database schema from a larger backup set.
UNLOCK TABLESTRUNCATETABLE.frm files are not tracked by the InnoDB log.$ mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypasswordbackup_type = full-backuped
from_lsn = 0
to_lsn = 1635102
last_lsn = 1635102
recover_binlog_info = 0$ mariadb-backup --backup \
--target-dir=/var/mariadb/inc1/ \
--incremental-basedir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypasswordbackup_type = incremental
from_lsn = 1635102
to_lsn = 1635114
last_lsn = 1635114
recover_binlog_info = 0$ mariadb-backup --backup \
--target-dir=/var/mariadb/inc2/ \
--incremental-basedir=/var/mariadb/inc1/ \
--user=mariadb-backup --password=mypasswordmariadb-backup --backup --target-dir=/full \
--history=full_backup_1mariadb-backup --backup --target-dir=/inc1 \
--incremental-history-name=full_backup_1 \
--history=inc_backup_1# initial full backup
$ mariadb-backup --backup --stream=mbstream \
--user=mariadb-backup --password=mypassword \
--extra-lsndir=backup_base | gzip > backup_base.gz
# incremental backup
$ mariadb-backup --backup --stream=mbstream \
--incremental-basedir=backup_base \
--user=mariadb-backup --password=mypassword \
--extra-lsndir=backup_inc1 | gzip > backup-inc1.gz$ mariadb-backup --prepare \
--target-dir=/var/mariadb/backup$ mariadb-backup --prepare \
--target-dir=/var/mariadb/backup \
--incremental-dir=/var/mariadb/inc1$ mariadb-backup --copy-back \
--target-dir=/var/mariadb/backup/$ chown -R mysql:mysql /var/lib/mysql/BEGIN
FOR EACH affected TABLE
SELECT 1 FROM <TABLE> LIMIT 0SELECT VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'INNODB_LSN_ARCHIVED';$ sudo systemctl stop mariadb$ mariadbd --innodb_log_recovery_start=12288 --innodb_log_recovery_target=4194304mariadb-dump -u root -p --all-databases --no-data > nodata.sqlsed -n '/Current Database: `DATABASENAME`/, /Current Database:/p' nodata.sql > trimednodata.sql
vim trimednodata.sqlmariadb-backup --prepare --export --target-dir=/media/backups/fullbackupfoldermysql -u root -p schema_name < nodata.sqlSELECT ...
INTO OUTFILE '/tmp/filename.SQL'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM ...USE information_schema;
SELECT concat("ALTER TABLE ",table_name," DISCARD TABLESPACE;") AS discard_tablespace
FROM information_schema.tables
WHERE TABLE_SCHEMA="DATABASENAME";
SELECT concat("ALTER TABLE ",table_name," IMPORT TABLESPACE;") AS import_tablespace
FROM information_schema.tables
WHERE TABLE_SCHEMA="DATABASENAME";
SELECT
CONCAT ("ALTER TABLE ", rc.CONSTRAINT_SCHEMA, ".",rc.TABLE_NAME," DROP FOREIGN KEY ", rc.CONSTRAINT_NAME,";") AS drop_keys
FROM REFERENTIAL_CONSTRAINTS AS rc
WHERE CONSTRAINT_SCHEMA = 'DATABASENAME';
SELECT
CONCAT ("ALTER TABLE ",
KCU.CONSTRAINT_SCHEMA, ".",
KCU.TABLE_NAME,"
ADD CONSTRAINT ",
KCU.CONSTRAINT_NAME, "
FOREIGN KEY ", "
(`",KCU.COLUMN_NAME,"`)", "
REFERENCES `",REFERENCED_TABLE_NAME,"`
(`",REFERENCED_COLUMN_NAME,"`)" ,"
ON UPDATE " ,(SELECT UPDATE_RULE FROM REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = KCU.CONSTRAINT_NAME AND CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA),"
ON DELETE ",(SELECT DELETE_RULE FROM REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = KCU.CONSTRAINT_NAME AND CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA),";") AS add_keys
FROM KEY_COLUMN_USAGE AS KCU
WHERE KCU.CONSTRAINT_SCHEMA = 'DATABASENAME'
AND KCU.POSITION_IN_UNIQUE_CONSTRAINT >= 0
AND KCU.CONSTRAINT_NAME NOT LIKE 'PRIMARY';ALTER TABLE schemaname.tablename DROP FOREIGN KEY key_name;
...ALTER TABLE test DISCARD TABLESPACE;
...cp *.cfg /var/lib/mysql
cp *.ibd /var/lib/mysqlsudo chown -R mysql:mysql /var/lib/mysqlALTER TABLE test IMPORT TABLESPACE;
...ALTER TABLE schmeaname.tablename ADD CONSTRAINT key_name FOREIGN KEY (`column_name`) REFERENCES `foreign_table` (`colum_name`) ON UPDATE NO ACTION ON DELETE NO ACTION;
...USE DATABASE
SELECT * FROM test LIMIT 10;mariadb-dump -u user -p --single-transaction --master-data=2 > fullbackup.sql$ mariadb-backup --backup \
--slave-info --safe-slave-backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypasswordALTER TABLE schemaname.tablename DROP FOREIGN KEY key_name;
...ALTER TABLE test DISCARD TABLESPACE;
...cp *.cfg /var/lib/mysql
cp *.ibd /var/lib/mysqlsudo chown -R mysql:mysql /var/lib/mysqlALTER TABLE test IMPORT TABLESPACE;
...ALTER TABLE schmeaname.tablename ADD CONSTRAINT key_name FOREIGN KEY (`column_name`) REFERENCES `foreign_table` (`colum_name`) ON UPDATE NO ACTION ON DELETE NO ACTION;
...Understand backup locking stages. This page explains how mariadb-backup uses BACKUP STAGE statements to minimize locking during operation.
BACKUP STAGE in MariaDB Community ServerBACKUP STAGE in MariaDB Community ServerBACKUP STAGE START in MariaDB Community ServerBACKUP STAGE FLUSH in MariaDB Community ServerBACKUP STAGE BLOCK_DDL in MariaDB Community ServerBACKUP STAGE BLOCK_COMMIT in MariaDB Community ServerBACKUP STAGE END in MariaDB Community ServerBACKUP STAGE in MariaDB Enterprise ServerBACKUP STAGE START in MariaDB Enterprise ServerBACKUP STAGE FLUSH in MariaDB Enterprise ServerBACKUP STAGE BLOCK_DDL in MariaDB Enterprise ServerBACKUP STAGE BLOCK_COMMIT in MariaDB Enterprise ServerBACKUP STAGE END in MariaDB Enterprise ServerBack up specific databases or tables. This guide explains how to filter your backup to include only the data you need.
aria_log_control.MAD.MAIMERGE (i.e. file extensions .MRG)BACKUP STAGE START;
BACKUP STAGE BLOCK_COMMIT;BACKUP STAGE END;$ sudo rm /var/lib/mysql/db1/t1.cfg$ sudo chown mysql:mysql /var/lib/mysql/db1/t1.*ALTER TABLE db1.t1 IMPORT TABLESPACE;SELECT * FROM db1.t1;ALTER TABLE db1.t1 FORCE, ADD FULLTEXT INDEX f_idx(f1);SHOW CREATE TABLE db1.t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`f1` char(10) DEFAULT NULL,
FULLTEXT KEY `f_idx` (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci$ mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--databases='app1 app2' --tables='tab_[0-9]+' \
--user=mariadb-backup --password=mypasswordmariadb-backup --backup --databases="db1" \
--target-dir=/backup --history=partial_db1$ mariadb-backup --prepare --export \
--target-dir=/var/mariadb/backup/DROP TABLE IF EXISTS db1.t1;CREATE TABLE db1.t1(f1 CHAR(10)) ENGINE=INNODB;ALTER TABLE db1.t1 DISCARD TABLESPACE;$ sudo cp /data/backups/part/db1/t1.* /var/lib/mysql/db1backup-my.cnfCHANGE MASTER command with the MASTER_USE_GTID option set to slave_pos. Otherwise, it writes the CHANGE MASTER command with the MASTER_LOG_FILE and MASTER_LOG_POS options using the master's binary log file and position. See mariadb-bin.000096 568 0-1-2backup_type = full-backuped
from_lsn = 0
to_lsn = 1635102
last_lsn = 1635102
recover_binlog_info = 0d38587ce-246c-11e5-bcce-6bbd0831cc0f:1352215wsrep_local_state_uuid:wsrep_last_committedd38587ce-246c-11e5-bcce-6bbd0831cc0f:1352215Explore how to use replication as part of your backup strategy, allowing you to offload backup tasks to a replica server to reduce load on the primary.
CREATE USER 'backup_replica'@'replica_ip_or_hostname' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'backup_replica'@'replica_ip_or_hostname';SHOW GLOBAL VARIABLES LIKE 'gtid_current_pos';SET GLOBAL gtid_slave_pos='<gtid_value_from_primary>';CHANGE MASTER TO
MASTER_HOST='primary_domain_or_ip',
MASTER_PORT=3306,
MASTER_USER='backup_replica',
MASTER_PASSWORD='strong_password',
MASTER_SSL=1,
MASTER_USE_GTID=slave_pos;START REPLICA;SHOW REPLICA STATUS \GComplete MariaDB backup and recovery guide. Complete resource for backup methods, mariadb-backup usage, scheduling, and restoration for production use.
mariadb-backupmariadb-backup with Data-at-Rest Encryptionmariadb-backup for Galera SSTsmariadb-backupmariadb-backupThis page details MariaDB Enterprise Backup, an enhanced version of mariadb-backup with enterprise-specific optimizations and support.
ALTER TABLE statements, which tends to be the longest phase of these statements.sudo yum install MariaDB-backupsudo apt-get install mariadb-backupsudo zypper install MariaDB-backupmariadb-backup <options>CREATE USER 'mariadb-backup'@'localhost' IDENTIFIED BY 'mypassword';
GRANT RELOAD, PROCESS, LOCK TABLES, BINLOG MONITOR ON *.* TO 'mariadb-backup'@'localhost';CREATE USER 'mariadb-backup'@'localhost' IDENTIFIED BY 'mypassword';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'mariadb-backup'@'localhost';GRANT SELECT, INSERT, CREATE, ALTER ON mysql.mariadb_backup_history TO 'mariadb-backup'@'localhost';GRANT SELECT, INSERT, CREATE, ALTER ON PERCONA_SCHEMA.xtrabackup_history TO 'mariadb-backup'@'localhost';GRANT DROP, ALTER, RENAME ON PERCONA_SCHEMA.xtrabackup_history TO 'mariadb-backup'@'localhost';
GRANT CREATE ON PERCONA_SCHEMA TO 'mariadb-backup'@'localhost';RENAME TABLE PERCONA_SCHEMA.xtrabackup_history TO mysql.mariadb_backup_history;
ALTER TABLE mysql.mariadb_backup_history ENGINE=InnoDB;mariadb-backup --backup \
--target-dir=/var/mariadb/backup/ \
--user=mariadb-backup --password=mypassword[mariadb-backup]
user=mariadb-backup
password=mypassword2019-02-12 09:48:38 7ffff7fdb820 InnoDB: Operating system error number 23 in a file operation.
InnoDB: Error number 23 means 'Too many open files in system'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
InnoDB: Error: could not open single-table tablespace file ./db1/tab1.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.[mariadb-backup]
open_files_limit=65535mysql soft nofile 65535
mysql hard nofile 65535ulimit -Sn
65535
ulimit -Hn
65535
--export.cfgCREATE USER 'mariadb-backup'@'localhost'
IDENTIFIED BY 'mbu_passwd';
GRANT RELOAD, PROCESS, LOCK TABLES, BINLOG MONITOR
ON *.*
TO 'mariadb-backup'@'localhost';CREATE USER 'mariadb-backup'@'localhost'
IDENTIFIED BY 'mbu_passwd';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT
ON *.*
TO 'mariadb-backup'@'localhost';sudo mariadb-backup --backup \
--target-dir=/data/backups/full \
--user=mariadb-backup \
--password=mbu_passwdsudo mariadb-backup --prepare \
--use-memory=34359738368 \
--target-dir=/data/backups/fullmariadb-backup --copy-back --target-dir=/data/backups/fullchown -R mysql:mysql /var/lib/mysqlsudo systemctl start mariadbmariadb-backup --backup \
--incremental-basedir=/data/backups/full \
--target-dir=/data/backups/inc1 \
--user=mariadb-backup \
--password=mbu_passwdmariadb-backup --prepare --target-dir=/data/backups/fullmariadb-backup --prepare \
--target-dir=/data/backups/full \
--incremental-dir=/data/backups/inc1mariadb-backup --copy-back --target-dir=/data/backups/fullchown -R mysql:mysql /var/lib/mysqlmariadb-backup --backup \
--target-dir=/data/backups/part \
--user=mariadb-backup \
--password=mbu_passwd \
--database-exclude=testmariadb-backup --backup \
--incremental-basedir=/data/backups/part \
--target-dir=/data/backups/part_inc1 \
--user=mariadb-backup \
--password=mbu_passwd \
--database-exclude=testmariadb-backup --prepare --export --target-dir=/data/backups/partmariadb-backup --prepare --export \
--target-dir=/data/backups/part \
--incremental-dir=/data/backups/part_inc1CREATE TABLE test.address_book (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255));ALTER TABLE test.address_book DISCARD TABLESPACE;# cp /data/backups/part_inc1/test/address_book.* /var/lib/mysql/test# chown mysql:mysql /var/lib/mysql/test/address_book.*ALTER TABLE test.address_book IMPORT TABLESPACE;CREATE TABLE test.students (
id INT PRIMARY KEY AUTO_INCREMENT
name VARCHAR(255),
email VARCHAR(255),
graduating_year YEAR)
PARTITION BY RANGE (graduating_year) (
PARTITION p9 VALUES LESS THAN 2019
PARTITION p1 VALUES LESS THAN MAXVALUE
);CREATE TABLE test.students_work AS
SELECT * FROM test.students WHERE NULL;ALTER TABLE test.students_work DISCARD TABLESPACE;# cp /data/backups/part_inc1/test/students.ibd /var/lib/mysql/test/students_work.ibd
# cp /data/backups/part_inc1/test/students.cfg /var/lib/mysql/test/students_work.cfg# chown mysql:mysql /var/lib/mysql/test/students_work.*ALTER TABLE test.students_work IMPORT TABLESPACE;ALTER TABLE test.students EXCHANGE PARTITION p0 WITH TABLE test.students_work;DROP TABLE test.students_work;DROP TABLE IF EXISTS db1.t1;CREATE TABLE db1.t1(f1 CHAR(10)) ENGINE=INNODB;ALTER TABLE db1.t1 DISCARD TABLESPACE;$ sudo cp /data/backups/part/db1/t1.* /var/lib/mysql/db1$ sudo rm /var/lib/mysql/db1/t1.cfg$ sudo chown mysql:mysql /var/lib/mysql/db1/t1.*ALTER TABLE db1.t1 IMPORT TABLESPACE;SELECT * FROM db1.t1;+--------+
| f1 |
+--------+
| ABC123 |
+--------+ALTER TABLE db1.t1 FORCE, ADD FULLTEXT INDEX f_idx(f1);SHOW CREATE TABLE db1.t1\G*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`f1` char(10) DEFAULT NULL,
FULLTEXT KEY `f_idx` (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ciReference for mariadb-backup (mariabackup) command-line options. Covers --backup, --prepare, --copy-back, --move-back, streaming, and incremental backups.
mariadb-backup Options (mariabackup)--apply-log--apply-log-only--backup--binlog-info--close-files--compress--compress-chunk-size--compress-threads--copy-back--core-file--databases--databases-exclude--databases-file-h, --datadir--debug-sleep-before-unlock--decompress--debug-sync--defaults-extra-file--defaults-file--defaults-group--encrypted-backup--export--extra-lsndir--force-non-empty-directories--ftwrl-wait-query-type--ftwrl-wait-threshold--ftwrl-wait-timeout--galera-info--history-H, --host--include--incremental--incremental-basedir--incremental-dir--incremental-force-scan--incremental-history-name--incremental-history-uuid--incremental-lsn--innobackupex--innodb--innodb-adaptive-hash-index--innodb-autoextend-increment--innodb-buffer-pool-filename--innodb-buffer-pool-size--innodb-checksum-algorithm--innodb-data-file-path--innodb-data-home-dir--innodb-doublewrite--innodb-encrypt-log--innodb-file-io-threads--innodb-file-per-table--innodb-flush-method--innodb-io-capacity--innodb-log-buffer-size--innodb-log-checksums--innodb-log-checkpoint-now--innodb-log-file-mmap--innodb-log-files-in-group--innodb-log-group-home-dir--innodb-max-dirty-pages-pct--innodb-open-files--innodb-page-size--innodb-read-io-threads--innodb-undo-directory--innodb-undo-tablespaces--innodb-use-native-aio--innodb-write-io-threads--kill-long-queries-timeout--kill-long-query-type--lock-ddl-per-table--log--log-bin--log-copy-interval--log-innodb-page-corruption--move-back--mysqld--no-backup-locks--no-lock--no-timestamp--no-version-check--open-files-limit--parallel-p, --password--plugin-dir--plugin-load-P, --port--prepare--print-defaults--print-param--rollback-xa--rsync--safe-slave-backup--safe-slave-backup-timeout--secure-auth--skip-innodb-adaptive-hash-index--skip-innodb-doublewrite--skip-innodb-log-checksums--skip-secure-auth--slave-info-S, --socket--ssl--ssl-ca--ssl-capath--ssl-cert--ssl-cipher--ssl-crl--ssl-crlpath--ssl-key--ssl-verify-server-cert--stream--tables--tables-exclude--tables-file--target-dir--throttle--tls-version-t, --tmpdir--use-memory--user--verbose--version--incremental-basedir + --incremental-dirPERCONA_SCHEMA.xtrabackup_historyxtrabackup_binlog_pos_innodbmariadb-backup --backup --target-dir=/backups/full \
--user=mariadb-backup --password=...mariadb-backup --prepare --target-dir=/backups/fullmariadb-backup --copy-back --target-dir=/backups/fullmariadb-backup --backup --target-dir=/backups/inc1 \
--incremental-basedir=/backups/fullmariadb-backup --innobackupex --apply-logmariadb-backup --backup
--target-dir /path/to/backup \
--user user_name --password user_passwd--binlog-info[=OFF | ON | LOCKLESS | AUTO]mariadb-backup --binlog-info --backupmariadb-backup --close-files --prepare--compress[=compression_algorithm]mariadb-backup --compress --backup--compress-chunk-size=#mariadb-backup --backup --compress \
--compress-threads=12 --compress-chunk-size=5M--compress-threads=#mariadb-backup --compress --compress-threads=12 --backupmariadb-backup --copy-back --force-non-empty-directoriesmariadb-backup --core-file --backup--databases="database[.table][ database[.table] ...]"mariadb-backup --backup \
--databases="example.table1 example.table2"--databases-exclude="database[.table][ database[.table] ...]"mariadb-backup --backup \
--databases="example" \
--databases-exclude="example.table1 example.table2"--databases-file="/path/to/database-file"database[.table]cat main-backupexample1
example2.table1
example2.table2mariadb-backup --backup --databases-file=main-backup--datadir=PATHmariadb-backup --backup -h /var/lib64/mysqlmariadb-backup --compress --backupmariadb-backup --decompress--defaults-extra-file=/path/to/configmariadb-backup --backup \
--defaults-file-extra=addition-config.cnf \
--defaults-file=config.cnf--defaults-file=/path/to/configmariadb-backup --backup \
--defaults-file=config.cnf--defaults-group="name"[mariadb-backup]
compress_threads = 12
compress_chunk_size = 64Kmariadb-backup --compress --backupmariadb-backup --prepare --export--extra-lsndir=PATHmariadb-backup --extra-lsndir=extras/ --backupmariadb-backup --force-non-empty-directories --copy-back--ftwrl-wait-query-type=[ALL | UPDATE | SELECT]mariadb-backup --backup \
--ftwrl-wait-query-type=UPDATE--ftwrl-wait-threshold=#mariadb-backup --backup \
--ftwrl-wait-timeout=90 \
--ftwrl-wait-threshold=30--ftwrl-wait-timeout=#mariadb-backup --backup \
--ftwrl-wait-query-type=UPDATE \
--ftwrl-wait-timeout=5Unable to obtain lock. Please try again later.FATAL ERROR: failed to execute query BACKUP STAGE START:
Lock wait timeout exceeded; try restarting transaction[00] 2022-02-08 15:43:25 Unable to obtain lock. Please try again later.
[00] 2022-02-08 15:43:25 Error on BACKUP STAGE START query execution
mariabackup: Stopping log copying thread.mariadb-backup --backup --galera-info--history[=name]mariadb-backup --backup --history=backup_all--host=name_or_ip-addressmariadb-backup --backup \
--host="192.168.0.33"mariadb-backup --innobackupex --incrementalmariadb-backup --innobackupex --backup --incremental \
--incremental-basedir=/data/backups \
--target-dir=/data/backups--incremental-basedir=PATHmariadb-backup --backup \
--incremental-basedir=/data/backups \
--target-dir=/data/backups--increment-dir=PATHmariadb-backup --prepare \
--increment-dir=backups/mariadb-backup --backup \
--incremental-basedir=/path/to/target \
--incremental-force-scan--incremental-history-name=namemariadb-backup --backup \
--incremental-history-name=morning_backup--incremental-history-uuid=namemariadb-backup --backup \
--incremental-history-uuid=main-backup012345678--incremental-lsn=namemariadb-backup --innobackupexmariadb-backup --backup \
--innodb-adaptive-hash-index--innodb-autoextend-increment=36mariadb-backup --backup \
--innodb-autoextend-increment=35--innodb-buffer-pool-size=124Mmariadb-backup --backup \
--innodb-buffer-pool-size=124M--innodb-data-file-path=/path/to/filemariadb-backup --backup \
--innodb-data-file-path=ibdata1:13M:autoextend \
--innodb-data-home-dir=/var/dbs/mysql/data--innodb-data-home-dir=PATHmariadb-backup --backup \
--innodb-data-file-path=ibdata1:13M:autoextend \
--innodb-data-home-dir=/var/dbs/mysql/datamariadb-backup --backup \
--innodb-doublewrite--innodb-file-io-threads=#mariadb-backup --backup \
--innodb-file-io-threads=5--innodb-flush-method=fdatasync
| O_DSYNC
| O_DIRECT
| O_DIRECT_NO_FSYNC
| ALL_O_DIRECTmariadb-backup --backup \
--innodb-flush-method==_DIRECT_NO_FSYNC--innodb-io-capacity=#mariadb-backup --backup \
--innodb-io-capacity=200mariadb-backup --backup \
--innodb-log-checksumsmariadb-backup --backup \
--innodb-log-checkpoint-now--innodb-log-group-home-dir=PATHmariadb-backup --backup \
--innodb-log-group-home-dir=/path/to/logs--innodb-max-dirty-pages-pct=#mariadb-backup --backup \
--innodb-max-dirty-pages-pct=80--innodb-open-files=#mariadb-backup --backup \
--innodb-open-files=10--innodb-page-size=#mariadb-backup --backup \
--innodb-page-size=16k--innodb-read-io-threads=#mariadb-backup --backup \
--innodb-read-io-threads=4--innodb-undo-directory=PATHmariadb-backup --backup \
--innodb-undo-directory=/path/to/innodb_undo--innodb-undo-tablespaces=#mariadb-backup --backup \
--innodb-undo-tablespaces=10mariadb-backup --backup \
--innodb-use-native-aio--innodb-write-io-threads=#mariadb-backup --backup \
--innodb-write-io-threads=4--kill-long-queries-timeout=#mariadb-backup --backup \
--kill-long-queries-timeout=10--kill-long-query-type=ALL | UPDATE | SELECTmariadb-backup --backup \
--kill-long-query-type=UPDATE--log-bin[=name]--log-copy-interval=#mariadb-backup --backup \
--log-copy-interval=50mariadb-backup --move-back \
--datadir=/var/mysqlmariadb-backup --backup --no-backup-locksmariadb-backup --backup --no-lockmariadb-backup --backup --no-version-check--open-files-limit=#mariadb-backup --backup \
--open-files-limit=--parallel=#--password=passwdmariadb-backup --backup \
--user=root \
--password=root_password--plugin-dir=PATHmariadb-backup --backup \
--plugin-dir=/var/mysql/lib/plugin--port=#mariadb-backup --backup \
--host=192.168.11.1 \
--port=3306mariadb-backup --preparemariadb-backup --print-defaultsmariadb-backup --print-parammariadb-backup --backup --rsyncmariadb-backup --backup \
--safe-slave-backup \
--safe-slave-backup-timeout=500--safe-slave-backup-timeout=#mariadb-backup --backup \
--safe-slave-backup \
--safe-slave-backup-timeout=500mariadb-backup --backup --secure-authmariadb-backup --backup \
--skip-innodb-adaptive-hash-indexmariadb-backup --backup \
--skip-innodb-doublewritemariadb-backup --backup --skip-secure-authmariadb-backup --slave-info--socket=namemariadb-backup --backup \
--socket=/var/mysql/mysql.sock--ssl-ca=/etc/my.cnf.d/certificates/ca.pemmariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem--ssl-capath=/etc/my.cnf.d/certificates/ca/mariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--ssl-capath=/etc/my.cnf.d/certificates/ca/--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pemmariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem--ssl-cipher=namemariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--ssl-cipher=TLSv1.2--ssl-crl=/etc/my.cnf.d/certificates/crl.pemmariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--ssl-crl=/etc/my.cnf.d/certificates/crl.pem--ssl-crlpath=/etc/my.cnf.d/certificates/crl/mariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--ssl-crlpath=/etc/my.cnf.d/certificates/crl/--ssl-key=/etc/my.cnf.d/certificates/client-key.pemmariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pemmariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--ssl-verify-server-cert--stream=xbstreammariadb-backup --stream=xbstream > backup.xbmbstream -x < backup.xb--tables=REGEXmariadb-backup --backup \
--databases=example \
--tables=nodes_* \
--tables-exclude=nodes_tmpmariadb-backup --backup \
--databases=example \
--tables=^nodes. \
--tables-exclude=^nodes_tmp.mariadb-backup --backup \
--tables=test1[.].*,test2[.].* \
--tables-exclude=^test2[.]exclude_table
--target-dir=/path/to/backups/--tables-exclude=REGEX--tables-file=/path/to/filemariadb-backup --backup \
--databases=example \
--tables-file=/etc/mysql/backup-file--target-dir=/path/to/targetmariadb-backup --backup \
--target-dir=/data/backups--throttle=#--tls-version="TLSv1.2,TLSv1.3"mariadb-backup --backup \
--ssl-cert=/etc/my.cnf.d/certificates/client-cert.pem \
--ssl-key=/etc/my.cnf.d/certificates/client-key.pem \
--ssl-ca=/etc/my.cnf.d/certificates/ca.pem \
--tls-version="TLSv1.2,TLSv1.3"--tmpdir=/path/tmp[;/path/tmp...]mariadb-backup --backup \
--tmpdir=/data/tmp;/tmp--use-memory=124Mmariadb-backup --prepare \
--use-memory=124M--user=name
-u namemariadb-backup --backup \
--user=root \
--password=root_passwdmariadb-backup --verbosemariadb-backup --version--history[=name]mariadb-backup --backup --history=backup_all






