# Perl version of innobackup does not work on Windows --source include/not_windows.inc # innobackup needs to connect to the server. Not supported in embedded. --source include/not_embedded.inc # # This test case needs InnoDB. --source include/have_innodb.inc # # Check for existence of innobackup and set up environment for it. --source suite/meb/include/have_meb.inc # # Set path names. # --let $BACKUP_LOG = $MYSQLTEST_VARDIR/tmp/backup.log --let $REPLAY_LOG = $MYSQLTEST_VARDIR/tmp/replay.log --let $CPBACK_LOG = $MYSQLTEST_VARDIR/tmp/cpback.log --let BACKUP_TARGET_DIR = $MYSQLTEST_VARDIR/tmp/'#()<>&;$' --let $MYSQLD_DATADIR = `SELECT @@datadir` --echo # --echo # Precautionary clean up. --echo # --exec perl suite/meb/include/rmtree.pl $BACKUP_TARGET_DIR # Create databases and tables CREATE DATABASE dbb; CREATE TABLE dbb.td1(id INT)ENGINE=INNODB; INSERT INTO dbb.td1 VALUES (1),(2),(3),(4),(5); CREATE TABLE dbb.td2(a CHAR(10))ENGINE=MyISAM; INSERT INTO dbb.td2 VALUES('a'),('b'),('c'),('d'); CREATE TABLE dbb.td3(id INT, a CHAR(5))ENGINE=INNODB; INSERT INTO dbb.td3 VALUES(1,'a'),(2,'b'),(3,'c'),(4,'e'); CREATE TABLE dbb.te1(id INT)ENGINE=INNODB; INSERT INTO dbb.te1 VALUES(1),(2),(3),(4); CREATE TABLE dbb.te2(a CHAR(5))ENGINE=INNODB; CREATE TABLE dbb.tf1(a VARCHAR(10), id INT)ENGINE=INNODB; INSERT INTO dbb.tf1 VALUES('a',10),('b',20); # # Backup. # --echo # --echo # Run innobackup for backup. --exec $INNOBACKUP --port=$MASTER_MYPORT --user=root --no-timestamp $SERVER_CNF $BACKUP_TARGET_DIR > $BACKUP_LOG 2>&1 --echo ... # If not success, mysqltest would exit after exec. --echo # Success --echo # # Stop server. # --echo # --echo # Stop server. --source suite/meb/include/stop_mysqld.inc --echo # # Prepare for Restore. # Apply InnoDB log file. # --echo # --echo # Run innobackup for apply log. --exec $INNOBACKUP --apply-log $SERVER_CNF $BACKUP_TARGET_DIR > $REPLAY_LOG 2>&1 --echo ... # If not success, mysqltest would exit after exec. --echo # Success --echo # # Restore. # Replace files by removing old datadir and copying back files from backup. # --echo # --echo # Clear datadir. --exec perl suite/meb/include/rmtree.pl $MYSQLD_DATADIR --mkdir $MYSQLD_DATADIR # --echo # --echo # Run innobackup for copy back. --exec $INNOBACKUP --copy-back $SERVER_CNF $BACKUP_TARGET_DIR > $CPBACK_LOG 2>&1 --echo ... # If not success, mysqltest would exit after exec. --echo # Success --echo # # Restart server. # --echo # --echo # Restart server. --source suite/meb/include/restart_mysqld.inc --echo # Show the restored data. SHOW TABLES FROM dbb; SELECT COUNT(*) FROM dbb.td1; SELECT COUNT(*) FROM dbb.td2; # --exec perl suite/meb/include/rmtree.pl $BACKUP_TARGET_DIR