# Test of options max_binlog_size and max_relay_log_size and # how they act (if max_relay_log_size == 0, use max_binlog_size # for relay logs too). # Test of manual relay log rotation with FLUSH LOGS. source include/master-slave.inc; connection slave; stop slave; connection master; # Generate a big enough master's binlog to cause relay log rotations create table t1 (a int); let $1=800; disable_query_log; begin; while ($1) { # eval means expand $ expressions eval insert into t1 values( $1 ); dec $1; } enable_query_log; drop table t1; save_master_pos; connection slave; reset slave; set global max_binlog_size=8192; set global max_relay_log_size=8192-1; # mapped to 4096 select @@global.max_relay_log_size; start slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; stop slave; reset slave; set global max_relay_log_size=(5*4096); select @@global.max_relay_log_size; start slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; stop slave; reset slave; set global max_relay_log_size=0; select @@global.max_relay_log_size; start slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; # Tests below are mainly to ensure that we have not coded with wrong assumptions stop slave; reset slave; # test of relay log rotation when the slave is stopped # (to make sure it does not crash). flush logs; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; reset slave; start slave; sync_with_master; # test of relay log rotation when the slave is started flush logs; # We have now easy way to be sure that the SQL thread has now deleted the # log we just closed. But a trick to achieve this is do an update on the master. connection master; create table t1 (a int); save_master_pos; connection slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; # one more rotation, to be sure Relay_Log_Space is correctly updated flush logs; connection master; drop table t1; save_master_pos; connection slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 33 # show slave status; connection master; # test that the absence of relay logs does not make a master crash flush logs; show master status;