mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
67 lines
2.2 KiB
Text
67 lines
2.2 KiB
Text
|
#
|
||
|
# If MDEV-20755 bug is no fixed, incremental prepare will fail.
|
||
|
#
|
||
|
--source include/have_debug.inc
|
||
|
--source include/have_file_key_management.inc
|
||
|
|
||
|
--let $base_dir=$MYSQLTEST_VARDIR/tmp/backup
|
||
|
--let $inc_dir=$MYSQLTEST_VARDIR/tmp/backup_inc
|
||
|
|
||
|
SET @old_innodb_log_optimize_ddl=@@global.innodb_log_optimize_ddl;
|
||
|
SET GLOBAL innodb_log_optimize_ddl=ON;
|
||
|
|
||
|
# Disable pages flushing to allow redo log records to be executed on --prepare.
|
||
|
SET @old_debug_dbug=@@global.debug_dbug;
|
||
|
SET GLOBAL debug_dbug="+d,ib_log_checkpoint_avoid";
|
||
|
SET @old_innodb_page_cleaner_disabled_debug=@@global.innodb_page_cleaner_disabled_debug;
|
||
|
SET GLOBAL innodb_page_cleaner_disabled_debug=ON;
|
||
|
|
||
|
CREATE TABLE t1 (c INT) ENGINE=InnoDB;
|
||
|
INSERT INTO t1 VALUES (1);
|
||
|
|
||
|
--echo # backup
|
||
|
--disable_result_log
|
||
|
--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$base_dir
|
||
|
--enable_result_log
|
||
|
|
||
|
# Do not log crypt data to avoid it's execution on --prepare.
|
||
|
SET GLOBAL debug_dbug="+d,ib_do_not_log_crypt_data";
|
||
|
INSERT INTO t1 VALUES (2);
|
||
|
|
||
|
--disable_result_log
|
||
|
|
||
|
# Execute OPTIMIZE TABLE after the table is copied to execute optimized ddl
|
||
|
# callback during backup, which, in turns, will create t1.new file in backup
|
||
|
# directory.
|
||
|
--let after_copy_test_t1=OPTIMIZE TABLE test.t1;
|
||
|
|
||
|
--echo # incremental backup
|
||
|
--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$inc_dir --incremental-basedir=$base_dir --dbug=+d,mariabackup_events
|
||
|
|
||
|
--echo # prepare
|
||
|
--exec $XTRABACKUP --prepare --target-dir=$base_dir
|
||
|
|
||
|
# If the tablespace is created during delta tablespace open procedure, then
|
||
|
# crypt data will be not written, and page corruption test will not pass
|
||
|
# when some redo log event is executed, and --prepare will fail.
|
||
|
--echo # incremental prepare
|
||
|
--exec $XTRABACKUP --prepare --target-dir=$base_dir --incremental-dir=$inc_dir
|
||
|
|
||
|
--enable_result_log
|
||
|
|
||
|
SET GLOBAL innodb_log_optimize_ddl=@old_innodb_log_optimize_ddl;
|
||
|
SET GLOBAL innodb_page_cleaner_disabled_debug=@old_innodb_page_cleaner_disabled_debug;
|
||
|
SET GLOBAL debug_dbug=@old_debug_dbug;
|
||
|
|
||
|
--echo # Restore and check results
|
||
|
--let $targetdir=$base_dir
|
||
|
--source include/restart_and_restore.inc
|
||
|
--enable_result_log
|
||
|
|
||
|
SELECT count(*) FROM t1;
|
||
|
|
||
|
# Cleanup
|
||
|
DROP TABLE t1;
|
||
|
--rmdir $base_dir
|
||
|
--rmdir $inc_dir
|