651 lines
24 KiB
Plaintext
651 lines
24 KiB
Plaintext
################################################################################
|
|
# Test to check if the flush command works fine for Group Replication.
|
|
#
|
|
# Test:
|
|
# 0. The test requires two servers: M1 and M2.
|
|
# 1. Setup a GROUP with two members ONLINE.
|
|
# 2. Test 'flush error logs' statement on M1. It should support.
|
|
# 3. Test 'flush relay logs' statement on M1. It should support.
|
|
# 4. Test 'flush slow logs' statement on M1. It should support.
|
|
# 5. Test 'flush general logs' statement on M1. It should support.
|
|
# 6. Test 'flush engine logs' statement on M1. It should support.
|
|
# For each 'flush..' command above:-
|
|
# - Check error log file exists on M1.
|
|
# - Make sure binary logs was not flushed on M1.
|
|
# - Make sure applier logs was not flushed on M1.
|
|
# - Make sure recovery logs was not flushed on M2.
|
|
# - Make sure applier logs was not flushed on M2.
|
|
# - Make sure binary logs was not flushed on M2.
|
|
# - Test that replication is working fine between the members.
|
|
# 7. Test 'flush binary logs' statement on M1. It should support.
|
|
# - Make sure binary logs is flushed on M1.
|
|
# - Make sure that the 'show binary logs' statement shows the correct data.
|
|
# - Make sure applier logs was not flushed on M1.
|
|
# - Make sure recovery logs was not flushed on M2.
|
|
# - Make sure applier logs was not flushed on M2.
|
|
# - Make sure binary logs was not flushed on M2.
|
|
# - Test that replication is working fine between the members.
|
|
# 8. Test if support to combine all kinds of logs into one statement on M1. It
|
|
# should support 'flush error logs, relay logs'.
|
|
# - Make sure binary logs was not flushed on M1.
|
|
# - Make sure applier logs was not flushed on M1.
|
|
# - Make sure recovery logs was not flushed on M2.
|
|
# - Make sure applier logs was not flushed on M2.
|
|
# - Make sure binary logs was not flushed on M2.
|
|
# - Test that replication is working fine between the members.
|
|
# 9. Test if 'flush logs' statement works fine and flush all the logs on M1.
|
|
# - Make sure binary logs is flushed on M1.
|
|
# - Make sure applier logs was not flushed on M1.
|
|
# - Make sure recovery logs was not flushed on M2.
|
|
# - Make sure applier logs was not flushed on M2.
|
|
# - Make sure binary logs was not flushed on M2.
|
|
# - Execute 'flush logs' on M2:
|
|
# - Make sure binary logs is flushed on M2.
|
|
# - Make sure applier logs was not flushed on M2.
|
|
# - Make sure applier logs was not flushed on M1.
|
|
# - Make sure binary logs was not flushed on M1.
|
|
# - Test that replication is working fine between the members.
|
|
################################################################################
|
|
--source include/have_group_replication_plugin.inc
|
|
--source include/group_replication.inc
|
|
|
|
################################################################################
|
|
# Save current binlog, applier log and recovery log index number to be used with
|
|
# `assert_logs_rotated.inc`
|
|
################################################################################
|
|
--write_file $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc PROCEDURE
|
|
if ($server_number == '')
|
|
{
|
|
--die !!!ERROR IN TEST: you must set $server_number
|
|
}
|
|
|
|
--let $old_include_silent = $include_silent
|
|
--let $include_silent = 1
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*binary-log*
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let MAX_BINLOG_FILE_BEFORE_FLUSH = $log_file_max_number
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*group_replication_applier*
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let MAX_APPLIER_LOG_FILE_BEFORE_FLUSH = $log_file_max_number
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*group_replication_recovery*
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let MAX_RECOVERY_LOG_FILE_BEFORE_FLUSH = $log_file_max_number
|
|
|
|
--let RESULT_FILE = $MYSQLTEST_VARDIR/tmp/save_current_log_info_$server_number.inc
|
|
|
|
--perl SCRIPT
|
|
my $max_binlog_file = $ENV{'MAX_BINLOG_FILE_BEFORE_FLUSH'};
|
|
my $max_applier_log_file = $ENV{'MAX_APPLIER_LOG_FILE_BEFORE_FLUSH'};
|
|
my $max_recovery_log_file = $ENV{'MAX_RECOVERY_LOG_FILE_BEFORE_FLUSH'};
|
|
my $out = $ENV{'RESULT_FILE'};
|
|
|
|
unlink $out;
|
|
open OUT, "> $out" or die("Unable to open $out: $!\n");
|
|
print OUT "--let \$max_binlog_file_before_flush = " . $max_binlog_file . "\n";
|
|
print OUT "--let \$max_applier_log_file_before_flush = " . $max_applier_log_file . "\n";
|
|
print OUT "--let \$max_recovery_log_file_before_flush = " . $max_recovery_log_file . "\n";
|
|
close OUT;
|
|
#END OF
|
|
SCRIPT
|
|
--let $include_silent = $old_include_silent
|
|
#END OF
|
|
PROCEDURE
|
|
|
|
################################################################################
|
|
# Load information stored with `save_current_log_info` and match it to current
|
|
# index number in binary log, applier log and recovery log.
|
|
################################################################################
|
|
--write_file $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc PROCEDURE
|
|
if ($server_number == '')
|
|
{
|
|
--die !!!ERROR IN TEST: you must set $server_number
|
|
}
|
|
if ($must_rotate_binlog == '')
|
|
{
|
|
--die !!!ERROR IN TEST: you must set $must_rotate_binlog
|
|
}
|
|
if ($must_rotate_applier_log == '')
|
|
{
|
|
--die !!!ERROR IN TEST: you must set $must_rotate_applier_log
|
|
}
|
|
if ($must_rotate_recovery_log == '')
|
|
{
|
|
--die !!!ERROR IN TEST: you must set $must_rotate_recovery_log
|
|
}
|
|
|
|
--let $old_include_silent = $include_silent
|
|
--let $include_silent = 1
|
|
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info_$server_number.inc
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*binary-log*
|
|
--let $include_silent = 1
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let $max_binlog_file_after_flush = $log_file_max_number
|
|
--let $assert_text = Binary log WAS flushed and rotated
|
|
--let $operator = <
|
|
if ($must_rotate_binlog == 'no')
|
|
{
|
|
--let $assert_text = Binary log WAS NOT flushed nor rotated
|
|
--let $operator = =
|
|
}
|
|
--let $assert_cond = $max_binlog_file_before_flush $operator $max_binlog_file_after_flush
|
|
--let $include_silent = 0
|
|
--source include/assert.inc
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*group_replication_applier*
|
|
--let $include_silent = 1
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let $max_applier_log_file_after_flush = $log_file_max_number
|
|
--let $assert_text = Applier relay log WAS flushed and rotated
|
|
--let $operator = <
|
|
if ($must_rotate_applier_log == 'no')
|
|
{
|
|
--let $assert_text = Applier relay log WAS NOT flushed nor rotated
|
|
--let $operator = =
|
|
}
|
|
--let $assert_cond = $max_applier_log_file_before_flush $operator $max_applier_log_file_after_flush
|
|
--let $include_silent = 0
|
|
--source include/assert.inc
|
|
|
|
--let $pattern_to_match = $MYSQLTEST_VARDIR/mysqld.$server_number/data/*group_replication_recovery*
|
|
--let $include_silent = 1
|
|
--source include/rpl_log_file_max_number.inc
|
|
--let $max_recovery_log_file_after_flush = $log_file_max_number
|
|
--let $assert_text = Recovery relay log WAS flushed and rotated
|
|
--let $operator = <
|
|
if ($must_rotate_recovery_log == 'no')
|
|
{
|
|
--let $assert_text = Recovery relay log WAS NOT flushed nor rotated
|
|
--let $operator = =
|
|
}
|
|
--let $assert_cond = $max_recovery_log_file_before_flush $operator $max_recovery_log_file_after_flush
|
|
--let $include_silent = 0
|
|
--source include/assert.inc
|
|
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/save_current_log_info_$server_number.inc
|
|
--error 1
|
|
--file_exists $MYSQLTEST_VARDIR/tmp/save_current_log_info_$server_number.inc
|
|
--let $include_silent = $old_include_silent
|
|
#END OF
|
|
PROCEDURE
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
CREATE TABLE t1 (i INT PRIMARY KEY) engine= innodb;
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Test if support 'flush error logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush error logs;
|
|
|
|
--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush error logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush error logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush error logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush error logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush error logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush error logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
INSERT INTO t1 VALUES(1);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(2);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 2 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--echo # Test if support 'flush local relay logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush local relay logs;
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush local relay logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush local relay logs' statement.
|
|
--echo # Make sure recovery logs was flushed after execute 'flush local relay logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = yes
|
|
--let $must_rotate_recovery_log = yes
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush local relay logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush local relay logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush local relay logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(3);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(4);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 4 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
# Test 'flush slow logs' statement.
|
|
--echo # Test if support 'flush slow logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush slow logs;
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush slow logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush slow logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush slow logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush slow logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush slow logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush slow logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(5);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(6);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 6 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
# Test 'flush general logs' statement.
|
|
--echo # Test if support 'flush general logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush general logs;
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush general logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush general logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush general logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush general logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush general logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush general logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(7);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(8);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 8 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
# Test 'flush engine logs' statement.
|
|
--echo # Test if support 'flush engine logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush engine logs;
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush engine logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush engine logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush engine logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush engine logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush engine logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush engine logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(9);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(10);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 10 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
# Test 'flush binary logs' statement.
|
|
--echo # Test if support 'flush binary logs' statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush binary logs;
|
|
|
|
--echo # Make sure binary logs is flushed after execute 'flush binary logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush binary logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush binary logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = yes
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--echo # Test if it supports 'show binary logs' statement and verify that it shows the correct data
|
|
|
|
--let $binlog1= query_get_value(show binary logs, Log_name, 1)
|
|
--let $assert_text= assert that the first binary log name is server-binary-log.000001
|
|
--let $assert_cond= "$binlog1" = "server-binary-log.000001"
|
|
--source include/assert.inc
|
|
|
|
--let $binlog2= query_get_value(show binary logs, Log_name, 2)
|
|
--let $assert_text= assert that the second binary log name is server-binary-log.000002
|
|
--let $assert_cond= "$binlog2" = "server-binary-log.000002"
|
|
--source include/assert.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush binary logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush binary logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush binary logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(11);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(12);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 12 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Test if support to combine all kinds of logs into one statement.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush local error logs, relay logs;
|
|
|
|
--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err
|
|
|
|
--echo # Make sure binary logs was not flushed after execute 'flush local error logs, relay logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush local error logs, relay logs' statement.
|
|
--echo # Make sure recovery logs was flushed after execute 'flush local error logs, relay logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = yes
|
|
--let $must_rotate_recovery_log = yes
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush local error logs, relay logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush local error logs, relay logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush local error logs, relay logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
INSERT INTO t1 VALUES(13);
|
|
--source include/rpl_sync.inc
|
|
|
|
INSERT INTO t1 VALUES(14);
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
--let $wait_condition= select count(*) = 14 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
# Test 'flush logs' statement
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Test if 'flush logs' statement works fine and flush all the logs.
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush logs;
|
|
|
|
--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err
|
|
|
|
--echo # Check 'server1-bin.000003' is created after execute 'flush logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush logs' statement.
|
|
--echo # Make sure recovery logs was flushed after execute 'flush logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = yes
|
|
--let $must_rotate_applier_log = yes
|
|
--let $must_rotate_recovery_log = yes
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--echo # Checking the "flush logs" behavior executed from the server2 side
|
|
|
|
--let $rpl_connection_name = server2
|
|
--source include/rpl_connection.inc
|
|
--let $server_number = 1
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--let $server_number = 2
|
|
--source $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
|
|
flush logs;
|
|
|
|
--echo # Check 'server2-bin.000002' is created after execute 'flush logs' statement.
|
|
--echo # Make sure applier logs was flushed after execute 'flush logs' statement.
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush logs' statement.
|
|
--let $server_number = 2
|
|
--let $must_rotate_binlog = yes
|
|
--let $must_rotate_applier_log = yes
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
--source include/rpl_sync.inc
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
--echo # Make sure recovery logs was not flushed after execute 'flush logs' statement.
|
|
--echo # Make sure applier logs was not flushed after execute 'flush logs' statement.
|
|
--echo # Make sure binary logs was not flushed after execute 'flush logs' statement.
|
|
--let $server_number = 1
|
|
--let $must_rotate_binlog = no
|
|
--let $must_rotate_applier_log = no
|
|
--let $must_rotate_recovery_log = no
|
|
--source $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
|
|
# Testing if the replication is working fine between the members.
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
|
|
INSERT INTO t1 VALUES(15);
|
|
|
|
--source include/rpl_sync.inc
|
|
INSERT INTO t1 VALUES(16);
|
|
|
|
--source include/rpl_sync.inc
|
|
|
|
--let $wait_condition= select count(*) = 16 from t1
|
|
--source include/wait_condition.inc
|
|
|
|
--let $diff_tables=server1:t1, server2:t1
|
|
--source include/diff_tables.inc
|
|
|
|
--let $rpl_connection_name = server1
|
|
--source include/rpl_connection.inc
|
|
DROP TABLE t1;
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/save_current_log_info.inc
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/assert_logs_rotated.inc
|
|
--source include/group_replication_end.inc
|