summaryrefslogtreecommitdiff
path: root/mysql-test/suite/mariabackup/unsupported_redo.test
blob: 319ee2c75716db234b56d452c981520f246f8251 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
--source include/have_innodb.inc
call mtr.add_suppression("InnoDB: New log files created");
call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation");
call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified");
call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them");
call mtr.add_suppression("InnoDB: Ignoring tablespace for `test`\\.`t21` because it could not be opened");
call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: ");
call mtr.add_suppression("Table .* in the InnoDB data dictionary has tablespace id .*, but tablespace with that id or name does not exist");

let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;

CREATE TABLE t1(i INT PRIMARY KEY auto_increment, a int) ENGINE INNODB;
--source ../../suite/innodb/include/no_checkpoint_start.inc
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;

# Below mariabackup operation may complete successfully if checkpoint happens
# after the alter table command.

echo # Fails during full backup;
--disable_result_log
--error 0,1
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf  --backup --target-dir=$basedir;
--enable_result_log

DROP TABLE t1;

--let MYSQLD_DATADIR=$basedir/
perl;
open(OUT, ">$ENV{MYSQLTEST_VARDIR}/log/check.txt") || die;
print OUT '
--let no_checkpoint_end=1
--let CLEANUP_IF_CHECKPOINT=rmdir $basedir;
--source ../../suite/innodb/include/no_checkpoint_end.inc
--exit Backup failed to fail despite MLOG_INDEX_LOAD record
' if (-f "$ENV{MYSQLD_DATADIR}/xtrabackup_info");
close(OUT);
EOF
--source $MYSQLTEST_VARDIR/log/check.txt
--remove_file $MYSQLTEST_VARDIR/log/check.txt
rmdir $basedir;

CREATE TABLE t1(i INT PRIMARY KEY auto_increment, a int) ENGINE INNODB;

INSERT INTO t1(a) select 1 union select 2 union select 3;

--echo # Create full backup , modify table, then fails during creation of
--echo #		incremental/differential backup
--disable_result_log
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf  --backup --target-dir=$basedir;
--enable_result_log

--source ../../suite/innodb/include/no_checkpoint_start.inc
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;

--disable_result_log
--error 0,1
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf  --backup --target-dir=$incremental_dir --incremental-basedir=$basedir;
--enable_result_log

DROP TABLE t1;

--let MYSQLD_DATADIR=$incremental_dir/
perl;
open(OUT, ">$ENV{MYSQLTEST_VARDIR}/log/check.txt") || die;
print OUT '
--let no_checkpoint_end=1
--let CLEANUP_IF_CHECKPOINT=rmdir $basedir;rmdir $incremental_dir;
--source ../../suite/innodb/include/no_checkpoint_end.inc
--exit Backup failed to fail despite MLOG_INDEX_LOAD record
' if (-f "$ENV{MYSQLD_DATADIR}/xtrabackup_info");
close(OUT);
EOF
--source $MYSQLTEST_VARDIR/log/check.txt
--remove_file $MYSQLTEST_VARDIR/log/check.txt
rmdir $basedir;rmdir $incremental_dir;

CREATE TABLE t1(i INT) ENGINE INNODB;
INSERT INTO t1 VALUES(1);
CREATE TABLE t21(i INT) ENGINE INNODB;
INSERT INTO t21 VALUES(1);

let $MYSQLD_DATADIR= `select @@datadir`;
let $targetdir=$MYSQLTEST_VARDIR/tmp/bk;

CREATE TABLE t2(i int) ENGINE INNODB;

ALTER TABLE t21 FORCE, ALGORITHM=INPLACE;

--echo # Create partial backup (excluding table t21), Ignore the
--echo # unsupported redo log for the table t21.

--disable_result_log
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf  --backup "--tables-exclude=test.t21" --target-dir=$targetdir;
--enable_result_log
--list_files $targetdir/test *.ibd

--echo # Prepare the full backup
--disable_result_log
exec $XTRABACKUP --prepare --target-dir=$targetdir;
--enable_result_log
--list_files $targetdir/test *.ibd

DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t21;
rmdir $targetdir;