polardbxengine/mysql-test/suite/ndb/t/ndb_mt_backup_parts.test

67 lines
2.4 KiB
Plaintext

--source include/have_ndb.inc
--source have_ndb_error_insert.inc
--source suite/ndb/include/backup_restore_setup.inc
create table all_data (id int primary key, val int) engine=ndb;
create table part_data (id int primary key, val int) engine=ndb;
create table all_logs (txt varchar(512)) engine=ndb;
create table part_logs (txt varchar(512)) engine=ndb;
create table txt (a varchar(512)) engine=ndb;
insert into part_data values (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8);
--exec $NDB_MGM --no-defaults --verbose=0 --ndb-connectstring="$NDB_CONNECTSTRING" -e "all error 10039"
--source suite/ndb/t/ndb_backup_nowait_start.inc
update part_data set val = 0;
--exec $NDB_MGM --no-defaults --verbose=0 --ndb-connectstring="$NDB_CONNECTSTRING" -e "all error 0"
--source suite/ndb/t/ndb_backup_nowait_wait.inc
delete from part_data;
let $node = 2;
while ($node)
{
let $part = 4;
while ($part)
{
--echo Restore data of part $part on node $node
--exec $NDB_RESTORE -b $the_backup_id -n $node -r $NDB_BACKUPS-$the_backup_id/BACKUP-$the_backup_id-PART-$part-OF-4 >> $NDB_TOOLS_OUTPUT 2>&1
--echo Check that part data does not overlap with already restored data
select count(*) from part_data join all_data where part_data.id = all_data.id;
--echo Capture backup logs of part $part on node $node
--disable_query_log
--let $outfile = $MYSQLTEST_VARDIR/tmp/ndb_backup_log.txt
--exec $NDB_RESTORE -b $the_backup_id -n $node --print-log $NDB_BACKUPS-$the_backup_id/BACKUP-$the_backup_id-PART-$part-OF-4 > $outfile 2>&1
truncate table txt;
eval load data infile '$outfile' into table txt fields terminated by '\n';
--remove_file $outfile
update txt set a = TRIM(TRAILING "\r" FROM a);
insert into part_logs select * from txt where (a like 'INSERT %') or (a like 'UPDATE %') or (a like 'DELETE %');
--enable_query_log
--echo Check that part logs do not overlap with logs from other parts
select count(*) from part_logs join all_logs where part_logs.txt = all_logs.txt;
--disable_query_log
insert into all_data select * from part_data;
insert into all_logs select * from part_logs;
delete from part_data;
delete from part_logs;
--enable_query_log
dec $part;
}
dec $node;
}
drop table txt;
drop table part_data;
drop table part_logs;
drop table all_data;
drop table all_logs;
--source suite/ndb/include/backup_restore_cleanup.inc
--remove_file $NDB_TOOLS_OUTPUT