mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
7c7161a1bd
Problem: ======= Mariabackup incremental prepare creates new tablespace when it encounter new tablespace. It sets the intial size as FIL_IBD_FILE_INITIAL_SIZE (4). But while applying redo log, it tries to access 5th page and then it leads to out of tablespace error. Fix: === While parsing the redo log record, track FSP_SIZE in recv_spaces for the respective space id. Assign the recv_size for the tablespace when it is loaded. Extend the tablespace depends on recv_size while applying the redo log record.
50 lines
1.6 KiB
Text
50 lines
1.6 KiB
Text
--source include/have_debug.inc
|
|
|
|
call mtr.add_suppression("InnoDB: New log files created");
|
|
|
|
let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
|
|
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;
|
|
|
|
CREATE TABLE t1(i INT) ENGINE INNODB;
|
|
CREATE TABLE t2(i INT PRIMARY KEY) ENGINE INNODB;
|
|
CREATE TABLE t3(i INT) ENGINE INNODB;
|
|
|
|
echo # Create full backup , modify table, then create incremental/differential backup;
|
|
--disable_result_log
|
|
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
|
|
--enable_result_log
|
|
|
|
create table t4(f1 int not null, f2 int not null)engine=innodb;
|
|
insert into t4 values(1, 2), (2, 2), (3, 3), (5, 5), (6, 6), (4, 4), (9, 9);
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
insert into t4 select * from t4;
|
|
rename table t4 to t7;
|
|
select count(*) from t7;
|
|
|
|
--echo # XTRABACKUP INCREMENTAL
|
|
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$incremental_dir --incremental-basedir=$basedir;
|
|
|
|
--echo # XTRABACKUP PREPARE
|
|
exec $XTRABACKUP --apply-log-only --prepare --target-dir=$basedir;
|
|
|
|
--echo # XTRABACKUP INCREMENTAL PREPARE
|
|
exec $XTRABACKUP --prepare --target-dir=$basedir --incremental-dir=$incremental_dir;
|
|
|
|
let $targetdir=$basedir;
|
|
-- source include/restart_and_restore.inc
|
|
--enable_result_log
|
|
|
|
select count(*) from t7;
|
|
drop table t1, t2, t7, t3;
|
|
|
|
# Cleanup
|
|
rmdir $basedir;
|
|
rmdir $incremental_dir;
|