3 changed files with 90 additions and 8 deletions
-
23extra/mariabackup/xtrabackup.cc
-
31mysql-test/suite/mariabackup/partition_partial.result
-
44mysql-test/suite/mariabackup/partition_partial.test
@ -0,0 +1,31 @@ |
|||
CREATE TABLE t1(i INT) ENGINE INNODB |
|||
PARTITION BY RANGE (i) |
|||
(PARTITION p1 VALUES LESS THAN (100), |
|||
PARTITION p2 VALUES LESS THAN (200), |
|||
PARTITION p3 VALUES LESS THAN (300), |
|||
PARTITION p4 VALUES LESS THAN (400)); |
|||
INSERT INTO t1 VALUES (1), (101), (201), (301); |
|||
# xtrabackup backup |
|||
INSERT INTO t1 VALUES (1), (101), (201), (301); |
|||
# xtrabackup prepare |
|||
CREATE TABLE t1_placeholder (i INT) ENGINE INNODB; |
|||
ALTER TABLE t1_placeholder DISCARD TABLESPACE; |
|||
ALTER TABLE t1_placeholder IMPORT TABLESPACE; |
|||
ALTER TABLE t1 EXCHANGE PARTITION p4 WITH TABLE t1_placeholder; |
|||
ALTER TABLE t1_placeholder DISCARD TABLESPACE; |
|||
ALTER TABLE t1_placeholder IMPORT TABLESPACE; |
|||
ALTER TABLE t1 EXCHANGE PARTITION p3 WITH TABLE t1_placeholder; |
|||
ALTER TABLE t1_placeholder DISCARD TABLESPACE; |
|||
ALTER TABLE t1_placeholder IMPORT TABLESPACE; |
|||
ALTER TABLE t1 EXCHANGE PARTITION p2 WITH TABLE t1_placeholder; |
|||
ALTER TABLE t1_placeholder DISCARD TABLESPACE; |
|||
ALTER TABLE t1_placeholder IMPORT TABLESPACE; |
|||
ALTER TABLE t1 EXCHANGE PARTITION p1 WITH TABLE t1_placeholder; |
|||
SELECT * FROM t1; |
|||
i |
|||
1 |
|||
101 |
|||
201 |
|||
301 |
|||
DROP TABLE t1; |
|||
DROP TABLE t1_placeholder; |
@ -0,0 +1,44 @@ |
|||
#--source include/innodb_page_size.inc |
|||
|
|||
# import partitioned table from table from partial backup |
|||
|
|||
CREATE TABLE t1(i INT) ENGINE INNODB |
|||
PARTITION BY RANGE (i) |
|||
(PARTITION p1 VALUES LESS THAN (100), |
|||
PARTITION p2 VALUES LESS THAN (200), |
|||
PARTITION p3 VALUES LESS THAN (300), |
|||
PARTITION p4 VALUES LESS THAN (400)); |
|||
|
|||
INSERT INTO t1 VALUES (1), (101), (201), (301); |
|||
|
|||
echo # xtrabackup backup; |
|||
|
|||
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; |
|||
--disable_result_log |
|||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables=test.t1" --target-dir=$targetdir; |
|||
--enable_result_log |
|||
INSERT INTO t1 VALUES (1), (101), (201), (301); |
|||
|
|||
|
|||
echo # xtrabackup prepare; |
|||
--disable_result_log |
|||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.1 --prepare --export --target-dir=$targetdir; |
|||
--enable_result_log |
|||
|
|||
|
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
CREATE TABLE t1_placeholder (i INT) ENGINE INNODB; |
|||
let $i=4; |
|||
while($i) |
|||
{ |
|||
eval ALTER TABLE t1_placeholder DISCARD TABLESPACE; |
|||
copy_file $targetdir/test/t1#P#p$i.cfg $MYSQLD_DATADIR/test/t1_placeholder.cfg; |
|||
copy_file $targetdir/test/t1#P#p$i.ibd $MYSQLD_DATADIR/test/t1_placeholder.ibd; |
|||
eval ALTER TABLE t1_placeholder IMPORT TABLESPACE; |
|||
eval ALTER TABLE t1 EXCHANGE PARTITION p$i WITH TABLE t1_placeholder; |
|||
dec $i; |
|||
} |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
DROP TABLE t1_placeholder; |
|||
rmdir $targetdir; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue