1 2function backup() { 3 mkdir $topdir/binlog-dir1 4 mkdir $topdir/binlog-dir2 5 6 start_server $* 7 8 mysql -e "SHOW VARIABLES LIKE 'log%'"; 9 10 mysql -e "CREATE TABLE t (a INT) engine=InnoDB" test 11 mysql -e "INSERT INTO t (a) VALUES (1), (2), (3)" test 12 13 xtrabackup --backup --target-dir=$topdir/backup 14 xtrabackup --prepare --apply-log-only --target-dir=$topdir/backup 15 16 mysql -e "INSERT INTO t (a) VALUES (1), (2), (3)" test 17 18 xtrabackup --backup --target-dir=$topdir/backup1 --incremental-basedir=$topdir/backup 19 xtrabackup --prepare --incremental-dir=$topdir/backup1 --target-dir=$topdir/backup 20 21 stop_server 22 23 rm -rf $mysql_datadir 24 rm -rf $topdir/binlog-dir1 25 rm -rf $topdir/binlog-dir2 26} 27 28function restore() { 29 xtrabackup --copy-back --target-dir=$topdir/backup $* 30 31 cd $mysql_datadir 32 for file in $FILES ; do 33 if ! [ -f $file ] ; then 34 die "File $file is not found!" 35 fi 36 done 37 cd - 38 39 start_server $* 40 41 mysql -e "SELECT * FROM t" test 42 43 stop_server 44 45 rm -rf $mysql_datadir 46 rm -rf $topdir/binlog-dir1 47 rm -rf $topdir/binlog-dir2 48 rm -rf $topdir/backup 49 rm -rf $topdir/backup1 50} 51 52function backup_restore() { 53 backup $* 54 restore $* 55} 56 57vlog "------- TEST 1 -------" 58FILES="" 59backup_restore --skip-log-bin 60 61vlog "------- TEST 2 -------" 62FILES="mysql-bin.index mysql-bin.000004" 63backup_restore --log-bin 64 65vlog "------- TEST 3 -------" 66FILES="binlog123.index binlog123.000003" 67backup_restore --log-bin=binlog123 68 69vlog "------- TEST 4 -------" 70FILES="binlog898.index binlog123.000003" 71backup_restore --log-bin=binlog123 --log-bin-index=binlog898 72 73vlog "------- TEST 5 -------" 74FILES="binlog898.index binlog123.000003" 75backup_restore --log-bin=binlog123 --log-bin-index=binlog898.index 76 77vlog "------- TEST 6 -------" 78FILES="log.index $topdir/binlog-dir1/bin.000003" 79backup_restore --log-bin=$topdir/binlog-dir1/bin --log-bin-index=log 80 81vlog "------- TEST 7 -------" 82FILES="$topdir/binlog-dir1/idx.index binlog-abcd.000003" 83backup_restore --log-bin=binlog-abcd --log-bin-index=$topdir/binlog-dir1/idx 84 85vlog "------- TEST 8 -------" 86FILES="$topdir/binlog-dir2/idx.index $topdir/binlog-dir1/bin.000003" 87backup_restore --log-bin=$topdir/binlog-dir1/bin --log-bin-index=$topdir/binlog-dir2/idx 88 89vlog "------- TEST 9 -------" 90FILES="$topdir/binlog-dir2/idx.index $topdir/binlog-dir1/bin.000003" 91backup_restore --log-bin=$topdir/binlog-dir1/bin --log-bin-index=$topdir/binlog-dir2/idx.index 92 93vlog "------- TEST 10 -------" 94FILES="$topdir/binlog-dir1/bin.index $topdir/binlog-dir1/bin.000003" 95backup_restore --log-bin=$topdir/binlog-dir1/bin 96 97 98# do the same, but with updating my.cnf 99 100vlog "------- TEST 101 -------" 101MYSQLD_EXTRA_MY_CNF_OPTS=" 102skip-log-bin 103" 104FILES="" 105backup_restore 106 107vlog "------- TEST 102 -------" 108MYSQLD_EXTRA_MY_CNF_OPTS=" 109log-bin 110" 111FILES="mysql-bin.index mysql-bin.000004" 112backup_restore 113 114vlog "------- TEST 103 -------" 115MYSQLD_EXTRA_MY_CNF_OPTS=" 116log-bin=binlog123 117" 118FILES="binlog123.index binlog123.000004" 119backup_restore 120 121vlog "------- TEST 104 -------" 122MYSQLD_EXTRA_MY_CNF_OPTS=" 123log-bin=binlog123 124log-bin-index=binlog898 125" 126FILES="binlog898.index binlog123.000004" 127backup_restore 128 129vlog "------- TEST 105 -------" 130MYSQLD_EXTRA_MY_CNF_OPTS=" 131log-bin=binlog123 132log-bin-index=binlog898.index 133" 134FILES="binlog898.index binlog123.000004" 135backup_restore 136 137vlog "------- TEST 106 -------" 138MYSQLD_EXTRA_MY_CNF_OPTS=" 139log-bin=$topdir/binlog-dir1/bin 140log-bin-index=log 141" 142FILES="log.index $topdir/binlog-dir1/bin.000004" 143backup_restore 144 145vlog "------- TEST 107 -------" 146MYSQLD_EXTRA_MY_CNF_OPTS=" 147log-bin=binlog-abcd 148log-bin-index=$topdir/binlog-dir1/idx 149" 150FILES="$topdir/binlog-dir1/idx.index binlog-abcd.000004" 151backup_restore 152 153vlog "------- TEST 108 -------" 154MYSQLD_EXTRA_MY_CNF_OPTS=" 155log-bin=$topdir/binlog-dir1/bin 156log-bin-index=$topdir/binlog-dir2/idx 157" 158FILES="$topdir/binlog-dir2/idx.index $topdir/binlog-dir1/bin.000004" 159backup_restore 160 161vlog "------- TEST 109 -------" 162MYSQLD_EXTRA_MY_CNF_OPTS=" 163log-bin=$topdir/binlog-dir1/bin 164log-bin-index=$topdir/binlog-dir2/idx.index 165" 166FILES="$topdir/binlog-dir2/idx.index $topdir/binlog-dir1/bin.000004" 167backup_restore 168 169vlog "------- TEST 110 -------" 170MYSQLD_EXTRA_MY_CNF_OPTS=" 171log-bin=$topdir/binlog-dir1/bin 172" 173FILES="$topdir/binlog-dir1/bin.index $topdir/binlog-dir1/bin.000004" 174backup_restore --log-bin=$topdir/binlog-dir1/bin 175 176 177# PXB-1810 - restore binlog to the different location 178 179vlog "------- TEST 201 -------" 180MYSQLD_EXTRA_MY_CNF_OPTS=" 181log-bin=$topdir/binlog-dir1/bin 182log-bin-index=$topdir/binlog-dir1/idx 183" 184FILES="idx.index bin.000004" 185backup 186restore --log-bin=bin --log-bin-index=idx 187 188vlog "------- TEST 202 -------" 189MYSQLD_EXTRA_MY_CNF_OPTS=" 190log-bin=bin 191log-bin-index=idx 192" 193FILES="logidx.index logbin.000004" 194backup 195restore --log-bin=logbin --log-bin-index=logidx 196 197vlog "------- TEST 203 -------" 198MYSQLD_EXTRA_MY_CNF_OPTS=" 199log-bin=$topdir/binlog-dir1/bin 200log-bin-index=$topdir/binlog-dir1/bin 201" 202FILES="$topdir/binlog-dir2/bin.index $topdir/binlog-dir1/logbin.000004" 203backup 204restore --log-bin=$topdir/binlog-dir1/logbin --log-bin-index=$topdir/binlog-dir2/bin.index 205