Skip to content

Instantly share code, notes, and snippets.

@altmannmarcelo
Last active June 1, 2022 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save altmannmarcelo/cd2259c1cfc1be5f8834279d91febd6c to your computer and use it in GitHub Desktop.
Save altmannmarcelo/cd2259c1cfc1be5f8834279d91febd6c to your computer and use it in GitHub Desktop.
start_server
backup_dir=$topdir/xb_export_backup
rm -rf $backup_dir
mkdir $backup_dir
mysql -e 'CREATE TABLE test1(a int, b int, PRIMARY KEY (a), KEY (b DESC))' test
mysql -e 'CREATE TABLE test2(a int, b int, PRIMARY KEY (a), KEY (b ASC))' test
mysql -e "INSERT INTO test1 VALUES(1,2)" test
mysql -e "INSERT INTO test1 VALUES(2,2)" test
mysql -e "INSERT INTO test1 VALUES(3,2)" test
mysql -e "INSERT INTO test2 VALUES(1,2)" test
mysql -e "INSERT INTO test2 VALUES(3,2)" test
checksum_1_1=`checksum_table test test1`
rowsnum_1_1=`${MYSQL} ${MYSQL_ARGS} -Ns -e "select count(*) from test1" test`
vlog "rowsnum_1_1 is $rowsnum_1_1"
vlog "checksum_1_1 is $checksum_1_1"
checksum_2_1=`checksum_table test test2`
rowsnum_2_1=`${MYSQL} ${MYSQL_ARGS} -Ns -e "select count(*) from test2" test`
vlog "rowsnum_2_1 is $rowsnum_2_1"
vlog "checksum_2_1 is $checksum_2_1"
xtrabackup --datadir=$mysql_datadir --backup --target-dir=$backup_dir --tables="^test[.]test[1|2]"
stop_server
rm -rf ${MYSQLD_DATADIR}
start_server
mysql -e 'CREATE TABLE test1(a int, b int, PRIMARY KEY (a), KEY (b DESC))' test
mysql -e 'CREATE TABLE test2(a int, b int, PRIMARY KEY (a), KEY (b ASC))' test
mysql -e "alter table test1 discard tablespace;" test
mysql -e "alter table test2 discard tablespace;" test
xtrabackup --datadir=$mysql_datadir --prepare --export \
--target-dir=$backup_dir
run_cmd cp $backup_dir/test/test* $mysql_datadir/test/
mysql -e "alter table test1 import tablespace" test
mysql -e "alter table test2 import tablespace" test
checksum_1_2=`checksum_table test test1`
rowsnum_1_2=`${MYSQL} ${MYSQL_ARGS} -Ns -e "select count(*) from test1" test`
vlog "rowsnum_1_2 is $rowsnum_1_2"
vlog "checksum_1_2 is $checksum_1_2"
checksum_2_2=`checksum_table test test2`
rowsnum_2_2=`${MYSQL} ${MYSQL_ARGS} -Ns -e "select count(*) from test2" test`
vlog "rowsnum_2_2 is $rowsnum_2_2"
vlog "checksum_2_2 is $checksum_2_2"
if [ "$checksum_1_1" != "$checksum_1_2" ]
then
vlog "Checksum test1 are not equal"
exit -1
fi
if [ "$checksum_2_1" != "$checksum_2_2" ]
then
vlog "Checksum test2 are not equal"
exit -1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment