mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
1c55b845e0
Added support to BACKUP STAGE to maria-backup This is a port of the code from ES 10.6 See MDEV-5336 for backup stages description. The following old options are not supported by the new code: --rsync ; This is because rsync will not work on tables that are in used. --no-backup-locks ; This is disabled as mariadb-backup will always use backup locks for better performance.
105 lines
3 KiB
Text
105 lines
3 KiB
Text
--source include/have_maria.inc
|
|
|
|
--echo #
|
|
--echo # MDEV-30968 mariadb-backup does not copy Aria logs if aria_log_dir_path is used
|
|
--echo #
|
|
|
|
--let $datadir=`SELECT @@datadir`
|
|
--let $targetdir=$MYSQLTEST_VARDIR/tmp/backup
|
|
|
|
if ($ARIA_LOGDIR_MARIADB == '')
|
|
{
|
|
--let $ARIA_LOGDIR_MARIADB=$MYSQLTEST_VARDIR/tmp/backup_aria_log_dir_path
|
|
}
|
|
|
|
if ($ARIA_LOGDIR_FS == '')
|
|
{
|
|
--let $ARIA_LOGDIR_FS=$MYSQLTEST_VARDIR/tmp/backup_aria_log_dir_path
|
|
}
|
|
|
|
--let $server_parameters=--aria-log-file-size=8388608 --aria-log-purge-type=external --loose-aria-log-dir-path=$ARIA_LOGDIR_MARIADB
|
|
|
|
|
|
--echo # Restart mariadbd with the test specific parameters
|
|
--mkdir $ARIA_LOGDIR_FS
|
|
--let $restart_parameters=$server_parameters
|
|
--source include/restart_mysqld.inc
|
|
|
|
|
|
--echo # Create and populate an Aria table (and Aria logs)
|
|
CREATE TABLE t1 (id INT, txt LONGTEXT) ENGINE=Aria;
|
|
DELIMITER $$;
|
|
BEGIN NOT ATOMIC
|
|
FOR id IN 0..9 DO
|
|
INSERT INTO test.t1 (id, txt) VALUES (id, REPEAT(id,1024*1024));
|
|
END FOR;
|
|
END;
|
|
$$
|
|
DELIMITER ;$$
|
|
|
|
|
|
--echo # Testing aria log files before --backup
|
|
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log_control
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log.00000001
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log.00000002
|
|
--error 1
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log.00000003
|
|
--replace_regex /Size +[0-9]+ ; .+aria_log/aria_log/
|
|
SHOW ENGINE aria logs;
|
|
|
|
--echo # mariadb-backup --backup
|
|
--disable_result_log
|
|
--mkdir $targetdir
|
|
--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir
|
|
--enable_result_log
|
|
|
|
|
|
--echo # mariadb-backup --prepare
|
|
--disable_result_log
|
|
--exec $XTRABACKUP --prepare --target-dir=$targetdir
|
|
--enable_result_log
|
|
|
|
--echo # shutdown server
|
|
--disable_result_log
|
|
--source include/shutdown_mysqld.inc
|
|
--echo # remove datadir
|
|
--rmdir $datadir
|
|
--echo # remove aria-log-dir-path
|
|
--rmdir $ARIA_LOGDIR_FS
|
|
|
|
|
|
--echo # mariadb-backup --copy-back
|
|
--let $mariadb_backup_parameters=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --copy-back --datadir=$datadir --target-dir=$targetdir --parallel=2 --throttle=1 --aria-log-dir-path=$ARIA_LOGDIR_MARIADB
|
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
--exec echo "# with parameters: $mariadb_backup_parameters"
|
|
--exec $XTRABACKUP $mariadb_backup_parameters
|
|
|
|
|
|
--echo # starting server
|
|
--let $restart_parameters=$server_parameters
|
|
--source include/start_mysqld.inc
|
|
--enable_result_log
|
|
--rmdir $targetdir
|
|
|
|
|
|
--echo # Check that the table is there after --copy-back
|
|
SELECT COUNT(*) from t1;
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo # Testing aria log files after --copy-back
|
|
SET @@global.aria_checkpoint_interval=DEFAULT /*Force checkpoint*/;
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log_control
|
|
#--file_exists $ARIA_LOGDIR_FS/aria_log.00000001
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log.00000002
|
|
--error 1
|
|
--file_exists $ARIA_LOGDIR_FS/aria_log.00000003
|
|
--replace_regex /Size +[0-9]+ ; .+aria_log/aria_log/
|
|
SHOW ENGINE aria logs;
|
|
|
|
|
|
--echo # Restarting mariadbd with default parameters
|
|
--let $restart_parameters=
|
|
--source include/restart_mysqld.inc
|
|
--rmdir $ARIA_LOGDIR_FS
|