polardbxengine/mysql-test/suite/xcluster/t/binlog_checksum.test

161 lines
3.6 KiB
Plaintext

# test the following config when binlog_checksum is set to crc32:
# binlog_checksum=crc32
# master_verify_checksum=ON|OFF
# slave_sql_verify_checksum=ON|OFF
--connect (conn1,127.0.0.1,root,,test,$MYPORT_1)
--connect (conn2,127.0.0.1,root,,test,$MYPORT_2)
--connect (conn3,127.0.0.1,root,,test,$MYPORT_3)
--echo "master_verify_checksum=OFF, slave_sql_verify_checksum=ON"
# connect 3 server. must have test database
--connection conn1
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=OFF;
--connection conn2
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=OFF;
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--enable_reconnect
--source include/wait_until_connected_again_old.inc
--connection conn1
create table t1(id int, data longblob);
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024*30));
--enable_query_log
dec $cnt;
}
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024));
--connection conn2
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--connection conn1
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--enable_query_log
dec $cnt;
}
--echo "master_verify_checksum=ON, slave_sql_verify_checksum=ON"
# connect 3 server. must have test database
--connection conn1
set global master_verify_checksum=ON;
set global slave_sql_verify_checksum=ON;
--connection conn2
set global master_verify_checksum=ON;
set global slave_sql_verify_checksum=ON;
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--enable_reconnect
--source include/wait_until_connected_again_old.inc
--connection conn1
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024*30));
--enable_query_log
dec $cnt;
}
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024));
--connection conn2
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--connection conn1
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--enable_query_log
dec $cnt;
}
--echo "master_verify_checksum=ON, slave_sql_verify_checksum=OFF"
# connect 3 server. must have test database
--connection conn1
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=ON;
--connection conn2
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=ON;
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
--enable_reconnect
--source include/wait_until_connected_again_old.inc
--connection conn1
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024*30));
--enable_query_log
dec $cnt;
}
let $cnt=100;
let $cnt=100;
while($cnt)
{
--disable_query_log
insert into t1 values (1, repeat('a', 1024));
--connection conn2
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--connection conn1
let $doflush= query_get_value("select $cnt%30 as c1", c1, 1);
if (!$doflush)
{
flush local logs;
}
--enable_query_log
dec $cnt;
}
# check result
--connection conn1
--source include/wait_follower_catchup.inc
select count(distinct(APPLIED_INDEX)) from information_schema.alisql_cluster_global;
# cleanup
--connection conn1
drop table t1;
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=OFF;
--connection conn2
set global master_verify_checksum=OFF;
set global slave_sql_verify_checksum=OFF;