mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
611f91605a
- created binlog_encryption test suite and added it to the default list - moved some tests from rpl, binlog and multisource suites to extra so that they could be re-used in different suites - made minor changes in include files
149 lines
4.1 KiB
Text
149 lines
4.1 KiB
Text
#
|
|
# Test of sql_slave_skip_counter and rpl_max_size
|
|
#
|
|
|
|
# Create a schema and a table i
|
|
# on the 1st master
|
|
|
|
--source include/not_embedded.inc
|
|
--let $rpl_server_count= 0
|
|
|
|
--connect (master1,127.0.0.1,root,,,$SERVER_MYPORT_1)
|
|
|
|
--disable_warnings
|
|
drop database if exists db;
|
|
--enable_warnings
|
|
create database db;
|
|
create table db.this_will_not_be_replicated (i int) engine=MyISAM;
|
|
create table db.t1 (i int) engine=MyISAM;
|
|
create table db.t2 (i int) engine=MyISAM;
|
|
--save_master_pos
|
|
|
|
# Create the same schema and another table
|
|
# on the 2nd master
|
|
|
|
--connect (master2,127.0.0.1,root,,,$SERVER_MYPORT_2)
|
|
|
|
--disable_warnings
|
|
drop database if exists db;
|
|
--enable_warnings
|
|
create database db;
|
|
create table db.t3 (i int) engine=MyISAM;
|
|
|
|
--connect (slave,127.0.0.1,root,,,$SERVER_MYPORT_3)
|
|
|
|
# Start replication from the first master
|
|
|
|
--replace_result $SERVER_MYPORT_1 MYPORT_1
|
|
eval change master 'master1' to
|
|
master_port=$SERVER_MYPORT_1,
|
|
master_host='127.0.0.1',
|
|
master_user='root';
|
|
|
|
start slave 'master1';
|
|
set default_master_connection = 'master1';
|
|
--source include/wait_for_slave_to_start.inc
|
|
--sync_with_master 0,'master1'
|
|
|
|
# Start replication from the second master
|
|
|
|
set default_master_connection = 'master2';
|
|
|
|
--replace_result $SERVER_MYPORT_2 MYPORT_2
|
|
eval change master 'master2' to
|
|
master_port=$SERVER_MYPORT_2,
|
|
master_host='127.0.0.1',
|
|
master_user='root';
|
|
|
|
# the schema creation will be replicated from the 1st master,
|
|
# so we want to skip it in the second replication connection
|
|
# The events we want to skip are:
|
|
#
|
|
# The start format statement event
|
|
# drop database if exists db
|
|
# create database db
|
|
# Create table db.t1
|
|
# - > 4 events in total
|
|
|
|
--let $skip_counter_saved = `select @@global.sql_slave_skip_counter`
|
|
--let $max_relay_log_size_saved= `select @@global.max_relay_log_size`
|
|
--let $max_binlog_size_saved= `select @@global.max_binlog_size`
|
|
set global sql_slave_skip_counter = 2;
|
|
select @@global.sql_slave_skip_counter;
|
|
select @@session.sql_slave_skip_counter;
|
|
set session sql_slave_skip_counter = 3;
|
|
select @@global.sql_slave_skip_counter;
|
|
select @@session.sql_slave_skip_counter;
|
|
set global sql_slave_skip_counter= default;
|
|
select @@global.sql_slave_skip_counter;
|
|
select @@session.sql_slave_skip_counter;
|
|
set global sql_slave_skip_counter= 4;
|
|
|
|
set default_master_connection = 'master1';
|
|
select @@session.sql_slave_skip_counter;
|
|
set default_master_connection = 'qqq';
|
|
select @@session.sql_slave_skip_counter;
|
|
set default_master_connection = 'master2';
|
|
select @@session.sql_slave_skip_counter;
|
|
|
|
# Test of setting max_relay_log_size
|
|
select @@global.max_relay_log_size;
|
|
set global max_relay_log_size = 1*1024*1024;
|
|
select @@global.max_relay_log_size;
|
|
select @@session.max_relay_log_size;
|
|
set session max_relay_log_size = 3*1024*1024;
|
|
select @@global.max_relay_log_size;
|
|
select @@session.max_relay_log_size;
|
|
set global max_relay_log_size= default;
|
|
select @@global.max_relay_log_size;
|
|
select @@session.max_relay_log_size;
|
|
set global max_relay_log_size= 3*1024*1024;
|
|
set default_master_connection = 'master1';
|
|
select @@session.max_relay_log_size;
|
|
set default_master_connection = 'qqq';
|
|
select @@session.max_relay_log_size;
|
|
set default_master_connection = 'master2';
|
|
select @@session.max_relay_log_size;
|
|
set global max_binlog_size= 4*1024*1024;
|
|
select @@global.max_relay_log_size;
|
|
|
|
start slave 'master2';
|
|
--source include/wait_for_slave_to_start.inc
|
|
set default_master_connection = '';
|
|
|
|
--connection master2
|
|
--save_master_pos
|
|
|
|
--connection slave
|
|
|
|
--sync_with_master 0,'master2'
|
|
|
|
# If the skip_counter worked as expected, we should
|
|
# get here (replication shouldn't have broken)
|
|
# and should see both tables here
|
|
# (drop database which came from master2 shouldn't have been executed
|
|
# so t1 should still exist)
|
|
|
|
show tables in db;
|
|
|
|
# Cleanup
|
|
|
|
drop database db;
|
|
|
|
--eval set global sql_slave_skip_counter = $skip_counter_saved
|
|
--eval set global max_relay_log_size = $max_relay_log_size_saved
|
|
--eval set global max_binlog_size = $max_binlog_size_saved
|
|
|
|
--source include/reset_master_slave.inc
|
|
--disconnect slave
|
|
|
|
--connection master1
|
|
drop database db;
|
|
--source include/reset_master_slave.inc
|
|
--disconnect master1
|
|
|
|
--connection master2
|
|
drop database db;
|
|
--source include/reset_master_slave.inc
|
|
--disconnect master2
|
|
|