mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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;
 |