mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
9f98a2acd7
- `mariadb-backup --backup` was fixed to fetch the value of the @@aria_log_dir_path server variable and copy aria_log* files from @@aria_log_dir_path directory to the backup directory. Absolute and relative (to --datadir) paths are supported. Before this change aria_log* files were copied to the backup only if they were in the default location in @@datadir. - `mariadb-backup --copy-back` now understands a new my.cnf and command line parameter --aria-log-dir-path. `mariadb-backup --copy-back` in the main loop in copy_back() (when copying back from the backup directory to --datadir) was fixed to ignore all aria_log* files. A new function copy_back_aria_logs() was added. It consists of a separate loop copying back aria_log* files from the backup directory to the directory specified in --aria-log-dir-path. Absolute and relative (to --datadir) paths are supported. If --aria-log-dir-path is not specified, aria_log* files are copied to --datadir by default. - The function is_absolute_path() was fixed to understand MTR style paths on Windows with forward slashes, e.g. --aria-log-dir-path=D:/Buildbot/amd64-windows/build/mysql-test/var/...
41 lines
1.6 KiB
Text
41 lines
1.6 KiB
Text
#
|
|
# MDEV-30968 mariadb-backup does not copy Aria logs if aria_log_dir_path is used
|
|
#
|
|
# Restart mariadbd with the test specific parameters
|
|
# restart: --aria-log-file-size=8388608 --aria-log-purge-type=external --loose-aria-log-dir-path=MYSQLTEST_VARDIR/tmp/backup_aria_log_dir_path
|
|
# Create and populate an Aria table (and Aria logs)
|
|
CREATE TABLE t1 (id INT, txt LONGTEXT) ENGINE=Aria;
|
|
BEGIN NOT ATOMIC
|
|
FOR id IN 0..9 DO
|
|
INSERT INTO test.t1 (id, txt) VALUES (id, REPEAT(id,1024*1024));
|
|
END FOR;
|
|
END;
|
|
$$
|
|
# Testing aria log files before --backup
|
|
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
|
|
SHOW ENGINE aria logs;
|
|
Type Name Status
|
|
Aria aria_log.00000001 free
|
|
Aria aria_log.00000002 in use
|
|
# mariadb-backup --backup
|
|
# mariadb-backup --prepare
|
|
# shutdown server
|
|
# remove datadir
|
|
# remove aria-log-dir-path
|
|
# mariadb-backup --copy-back
|
|
# with parameters: --defaults-file=MYSQLTEST_VARDIR/my.cnf --copy-back --datadir=MYSQLTEST_VARDIR/mysqld.1/data/ --target-dir=MYSQLTEST_VARDIR/tmp/backup --parallel=2 --throttle=1 --aria-log-dir-path=MYSQLTEST_VARDIR/tmp/backup_aria_log_dir_path
|
|
# starting server
|
|
# restart: --aria-log-file-size=8388608 --aria-log-purge-type=external --loose-aria-log-dir-path=MYSQLTEST_VARDIR/tmp/backup_aria_log_dir_path
|
|
# Check that the table is there after --copy-back
|
|
SELECT COUNT(*) from t1;
|
|
COUNT(*)
|
|
10
|
|
DROP TABLE t1;
|
|
# Testing aria log files after --copy-back
|
|
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
|
|
SHOW ENGINE aria logs;
|
|
Type Name Status
|
|
Aria aria_log.00000001 free
|
|
Aria aria_log.00000002 in use
|
|
# Restarting mariadbd with default parameters
|
|
# restart
|