--source include/have_innodb.inc let LOGDIR= $MYSQLTEST_VARDIR/log; let TMPDIR= $MYSQLTEST_VARDIR/tmp; let BACKUP1= $TMPDIR/backup1; let BACKUP2= $TMPDIR/backup2; # # Load test data. Insert 10K rows in one of the tables. # let $BIGTAB= db2.t0; let $BIGTAB_FROM= db1.t1; let $BIGTAB_ROWS= 10000; let $ENGINE_1=InnoDB; let $ENGINE_2=InnoDB; let $ENGINE_3=InnoDB; --disable_warnings --source suite/meb/include/extreme_data.inc --enable_query_log CREATE TABLE db1.t0(num int, msg text) ENGINE= Innodb; CREATE TABLE db1.test1(num int) ENGINE=InnoDB; --echo --echo ################################################### --echo # Creating backups. --echo ################################################### --echo INSERT INTO db1.t0 VALUES (1,'initial state'); INSERT INTO db1.test1 VALUES (1); --echo --echo == Initial, full backup == FLUSH TABLES; --exec $MYSQLBACKUP --port=$MASTER_MYPORT --protocol=tcp --user=root --backup-dir=$BACKUP1 backup > $LOGDIR/backup-full.log 2>&1 --echo # Backup done, reading backup LSN. --perl $log= "$ENV{LOGDIR}/backup-full.log"; $tmp= "$ENV{TMPDIR}/lsn.inc"; open (OUT,"> $tmp") or die "Could not open $tmp for writing!\n"; open (IN,"< $log") or die "Could not open $log for reading!\n"; while () { print OUT "let \$BACKUP_LSN1= $1;\n" if /page was modified at (\d+)/; } close (IN); close (OUT); EOF --source $TMPDIR/lsn.inc --remove_file $TMPDIR/lsn.inc --echo # Dumping server state. let $DUMP_FILE= $BACKUP1/data.dump; --source suite/meb/include/extreme_dump.inc INSERT INTO db1.t0 VALUES (2,'before 1st incremental backup'); --echo --echo == First incremental backup == FLUSH TABLES; --exec $MYSQLBACKUP --port=$MASTER_MYPORT --protocol=tcp --user=root --incremental --start-lsn=$BACKUP_LSN1 --incremental-backup-dir=$BACKUP2 backup > $LOGDIR/backup-inc1.log 2>&1 --echo # Dumping server state. let $DUMP_FILE= $BACKUP2/data.dump; --source suite/meb/include/extreme_dump.inc --echo --echo == Restoring data from first incremental backup == --echo # Stopping server. --source suite/meb/include/stop_mysqld.inc --exec $MYSQLBACKUP --defaults-group-suffix=.1 --incremental-backup-dir=$BACKUP2 --backup-dir=$BACKUP1 apply-incremental-backup >$LOGDIR/restore-inc1.log 2>&1 --exec $MYSQLBACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.1 --port=$MASTER_MYPORT --protocol=tcp --user=root --backup-dir=$BACKUP1 copy-back >>$LOGDIR/restore-inc1.log 2>&1 --echo # Re-starting server. --source suite/meb/include/restart_mysqld.inc --echo # Dumping server state. let $DUMP_FILE= $BACKUP2/restore.dump; --source suite/meb/include/extreme_dump.inc --diff_files $BACKUP2/data.dump $BACKUP2/restore.dump --source suite/meb/include/extreme_drop.inc SELECT * FROM db1.t0 ORDER BY num;