Merge lp:~percona-dev/percona-xtrabackup/ib_extralsn into lp:percona-xtrabackup/2.0

Proposed by Valentine Gostev
Status: Work in progress
Proposed branch: lp:~percona-dev/percona-xtrabackup/ib_extralsn
Merge into: lp:percona-xtrabackup/2.0
Diff against target: 239 lines (+225/-0)
3 files modified
test/t/ib_extralsn.sh (+103/-0)
test/t/ib_lsn.sh (+103/-0)
test/t/xb_stats.sh (+19/-0)
To merge this branch: bzr merge lp:~percona-dev/percona-xtrabackup/ib_extralsn
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Needs Fixing
Review via email: mp+49931@code.launchpad.net

Description of the change

Added test cases for xtrabackup's --stats option and test case for innobackupex's --extra-lsndir

To post a comment you must log in.
Revision history for this message
Stewart Smith (stewart) wrote :

What's status of this merge req? Is it actually in progress? Can it easily be fixed up (whatever it needs) and get merged?

Revision history for this message
Alexey Kopytov (akopytov) wrote :

xb_stats.sh has already been merged. The other 2 tests must be updated to take the recent test suite cleanups into account.

review: Needs Fixing

Unmerged revisions

225. By Valentine Gostev

Added test for --extra-lsndir option

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'test/t/ib_extralsn.sh'
2--- test/t/ib_extralsn.sh 1970-01-01 00:00:00 +0000
3+++ test/t/ib_extralsn.sh 2011-02-16 08:37:02 +0000
4@@ -0,0 +1,103 @@
5+. inc/common.sh
6+
7+OUTFILE=results/ib_extralsn_innobackupex.out
8+
9+init
10+run_mysqld --innodb_file_per_table
11+load_dbase_schema incremental_sample
12+
13+# creating my.cnf for innobackupex
14+echo "
15+[mysqld]
16+datadir=$mysql_datadir" > $topdir/my.cnf
17+
18+# Adding initial rows
19+vlog "Adding initial rows to database..."
20+numrow=100
21+count=0
22+while [ "$numrow" -gt "$count" ]
23+do
24+ ${MYSQL} ${MYSQL_ARGS} -e "insert into test values ($count, $numrow);" incremental_sample
25+ let "count=count+1"
26+done
27+vlog "Initial rows added"
28+
29+# Full backup
30+# backup root directory
31+mkdir -p $topdir/backup
32+
33+vlog "Starting backup"
34+innobackupex --user=root --socket=$mysql_socket --defaults-file=$topdir/my.cnf --extra-lsndir=$topdir/lsn $topdir/backup > $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
35+full_backup_dir=`grep "innobackupex: Backup created in directory" $OUTFILE | awk -F\' '{print $2}'`
36+vlog "Full backup done to folder $full_backup_dir"
37+
38+# Changing data
39+
40+vlog "Making changes to database"
41+let "count=numrow+1"
42+let "numrow=500"
43+while [ "$numrow" -gt "$count" ]
44+do
45+ ${MYSQL} ${MYSQL_ARGS} -e "insert into test values ($count, $numrow);" incremental_sample
46+ let "count=count+1"
47+done
48+vlog "Changes done"
49+
50+# Saving the checksum of original table
51+checksum_a=`${MYSQL} ${MYSQL_ARGS} -Ns -e "checksum table test;" incremental_sample | awk '{print $2}'`
52+vlog "Table checksum is $checksum_a"
53+
54+vlog "Making incremental backup"
55+
56+echo "###############" >> $OUTFILE
57+echo "# INCREMENTAL #" >> $OUTFILE
58+echo "###############" >> $OUTFILE
59+
60+# Incremental backup
61+innobackupex --user=root --socket=$mysql_socket --defaults-file=$topdir/my.cnf --incremental --incremental-basedir=$topdir/lsn $topdir/backup >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
62+inc_backup_dir=`grep "innobackupex: Backup created in directory" $OUTFILE | tail -n 1 | awk -F\' '{print $2}'`
63+vlog "Incremental backup done to filder $inc_backup_dir"
64+
65+vlog "Preparing backup"
66+# Prepare backup
67+echo "##############" >> $OUTFILE
68+echo "# PREPARE #1 #" >> $OUTFILE
69+echo "##############" >> $OUTFILE
70+innobackupex --defaults-file=$topdir/my.cnf --apply-log --redo-only $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
71+vlog "Log applied to full backup"
72+echo "##############" >> $OUTFILE
73+echo "# PREPARE #2 #" >> $OUTFILE
74+echo "##############" >> $OUTFILE
75+innobackupex --defaults-file=$topdir/my.cnf --apply-log --redo-only --incremental-dir=$inc_backup_dir $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
76+vlog "Delta applied to full backup"
77+echo "##############" >> $OUTFILE
78+echo "# PREPARE #3 #" >> $OUTFILE
79+echo "##############" >> $OUTFILE
80+innobackupex --defaults-file=$topdir/my.cnf --apply-log $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
81+vlog "Data prepared for restore"
82+
83+# Destroying mysql data
84+stop_mysqld
85+rm -rf $mysql_datadir/*
86+vlog "Data destroyed"
87+
88+# Restore backup
89+vlog "Copying files"
90+run_cmd innobackupex --defaults-file=$topdir/my.cnf --copy-back $full_backup_dir
91+vlog "Data restored"
92+
93+run_mysqld --innodb_file_per_table
94+
95+vlog "Cheking checksums"
96+checksum_b=`${MYSQL} ${MYSQL_ARGS} -Ns -e "checksum table test;" incremental_sample | awk '{print $2}'`
97+
98+if [ $checksum_a -ne $checksum_b ]
99+then
100+ vlog "Checksums are not equal"
101+ exit -1
102+fi
103+
104+vlog "Checksums are OK"
105+
106+stop_mysqld
107+clean
108
109=== added file 'test/t/ib_lsn.sh'
110--- test/t/ib_lsn.sh 1970-01-01 00:00:00 +0000
111+++ test/t/ib_lsn.sh 2011-02-16 08:37:02 +0000
112@@ -0,0 +1,103 @@
113+. inc/common.sh
114+
115+OUTFILE=results/ib_extralsn_innobackupex.out
116+
117+init
118+run_mysqld --innodb_file_per_table
119+load_dbase_schema incremental_sample
120+
121+# creating my.cnf for innobackupex
122+echo "
123+[mysqld]
124+datadir=$mysql_datadir" > $topdir/my.cnf
125+
126+# Adding initial rows
127+vlog "Adding initial rows to database..."
128+numrow=100
129+count=0
130+while [ "$numrow" -gt "$count" ]
131+do
132+ ${MYSQL} ${MYSQL_ARGS} -e "insert into test values ($count, $numrow);" incremental_sample
133+ let "count=count+1"
134+done
135+vlog "Initial rows added"
136+
137+# Full backup
138+# backup root directory
139+mkdir -p $topdir/backup
140+
141+vlog "Starting backup"
142+innobackupex --user=root --socket=$mysql_socket --defaults-file=$topdir/my.cnf --extra-lsndir=$topdir/lsn $topdir/backup > $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
143+full_backup_dir=`grep "innobackupex: Backup created in directory" $OUTFILE | awk -F\' '{print $2}'`
144+vlog "Full backup done to folder $full_backup_dir"
145+
146+# Changing data
147+
148+vlog "Making changes to database"
149+let "count=numrow+1"
150+let "numrow=500"
151+while [ "$numrow" -gt "$count" ]
152+do
153+ ${MYSQL} ${MYSQL_ARGS} -e "insert into test values ($count, $numrow);" incremental_sample
154+ let "count=count+1"
155+done
156+vlog "Changes done"
157+
158+# Saving the checksum of original table
159+checksum_a=`${MYSQL} ${MYSQL_ARGS} -Ns -e "checksum table test;" incremental_sample | awk '{print $2}'`
160+vlog "Table checksum is $checksum_a"
161+
162+vlog "Making incremental backup"
163+
164+echo "###############" >> $OUTFILE
165+echo "# INCREMENTAL #" >> $OUTFILE
166+echo "###############" >> $OUTFILE
167+
168+# Incremental backup
169+innobackupex --user=root --socket=$mysql_socket --defaults-file=$topdir/my.cnf --incremental --incremental-basedir=$topdir/lsn $topdir/backup >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
170+inc_backup_dir=`grep "innobackupex: Backup created in directory" $OUTFILE | tail -n 1 | awk -F\' '{print $2}'`
171+vlog "Incremental backup done to filder $inc_backup_dir"
172+
173+vlog "Preparing backup"
174+# Prepare backup
175+echo "##############" >> $OUTFILE
176+echo "# PREPARE #1 #" >> $OUTFILE
177+echo "##############" >> $OUTFILE
178+innobackupex --defaults-file=$topdir/my.cnf --apply-log --redo-only $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
179+vlog "Log applied to full backup"
180+echo "##############" >> $OUTFILE
181+echo "# PREPARE #2 #" >> $OUTFILE
182+echo "##############" >> $OUTFILE
183+innobackupex --defaults-file=$topdir/my.cnf --apply-log --redo-only --incremental-dir=$inc_backup_dir $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
184+vlog "Delta applied to full backup"
185+echo "##############" >> $OUTFILE
186+echo "# PREPARE #3 #" >> $OUTFILE
187+echo "##############" >> $OUTFILE
188+innobackupex --defaults-file=$topdir/my.cnf --apply-log $full_backup_dir >> $OUTFILE 2>&1 || die "innobackupex died with exit code $?"
189+vlog "Data prepared for restore"
190+
191+# Destroying mysql data
192+stop_mysqld
193+rm -rf $mysql_datadir/*
194+vlog "Data destroyed"
195+
196+# Restore backup
197+vlog "Copying files"
198+run_cmd innobackupex --defaults-file=$topdir/my.cnf --copy-back $full_backup_dir
199+vlog "Data restored"
200+
201+run_mysqld --innodb_file_per_table
202+
203+vlog "Cheking checksums"
204+checksum_b=`${MYSQL} ${MYSQL_ARGS} -Ns -e "checksum table test;" incremental_sample | awk '{print $2}'`
205+
206+if [ $checksum_a -ne $checksum_b ]
207+then
208+ vlog "Checksums are not equal"
209+ exit -1
210+fi
211+
212+vlog "Checksums are OK"
213+
214+stop_mysqld
215+clean
216
217=== added file 'test/t/xb_stats.sh'
218--- test/t/xb_stats.sh 1970-01-01 00:00:00 +0000
219+++ test/t/xb_stats.sh 2011-02-16 08:37:02 +0000
220@@ -0,0 +1,19 @@
221+. inc/common.sh
222+
223+init
224+run_mysqld
225+load_dbase_schema sakila
226+load_dbase_data sakila
227+
228+# Take backup
229+mkdir -p $topdir/backup
230+run_cmd xtrabackup --datadir=$mysql_datadir --backup --target-dir=$topdir/backup
231+vlog "Backup taken, trying stats"
232+run_cmd xtrabackup --datadir=$mysql_datadir --prepare --target-dir=$topdir/backup
233+
234+run_cmd xtrabackup --stats --datadir=$topdir/backup
235+
236+vlog "stats did not fail"
237+
238+stop_mysqld
239+clean

Subscribers

People subscribed via source and target branches