mariadb/mysql-test/suite/multi_source/skip_counter.result
Brandon Nesterenko 5ab5ff08b0 MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based replication is used by default if master supports it
This commit makes replicas crash-safe by default by changing the
Using_Gtid value to be Slave_Pos on a fresh slave start and after
RESET SLAVE is issued. If the primary server does not support GTIDs
(i.e., version < 10), the replica will fall back to Using_Gtid=No on
slave start and after RESET SLAVE.

The following additional informational messages/warnings are added:

 1. When Using_Gtid is automatically changed. That is, if RESET
SLAVE reverts Using_Gtid back to Slave_Pos, or Using_Gtid is
inferred to No from a CHANGE MASTER TO given with log coordinates
without MASTER_USE_GTID.
 2. If options are ignored in CHANGE MASTER TO. If CHANGE MASTER TO
is given with log coordinates, yet also specifies
MASTER_USE_GTID=Slave_Pos, a warning message is given that the log
coordinate options are ignored.

Additionally, an MTR macro has been added for RESET SLAVE,
reset_slave.inc, which provides modes/options for resetting a slave
in log coordinate or gtid modes. When in log coordinates mode, the
macro will execute CHANGE MASTER TO MASTER_USE_GTID=No after the
RESET SLAVE command. When in GTID mode, an extra parameter,
reset_slave_keep_gtid_state, can be set to reset or preserve the
value of gtid_slave_pos.

Reviewed By:
===========
Andrei Elkin <andrei.elkin@mariadb.com>
2022-07-26 13:31:27 -06:00

129 lines
3.5 KiB
Text

connect master1,127.0.0.1,root,,,$SERVER_MYPORT_1;
drop database if exists db;
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;
connect master2,127.0.0.1,root,,,$SERVER_MYPORT_2;
drop database if exists db;
create database db;
create table db.t3 (i int) engine=MyISAM;
connect slave,127.0.0.1,root,,,$SERVER_MYPORT_3;
change master 'master1' to
master_port=MYPORT_1,
master_host='127.0.0.1',
master_user='root',
master_use_gtid=no;
start slave 'master1';
set default_master_connection = 'master1';
include/wait_for_slave_to_start.inc
set default_master_connection = 'master2';
change master 'master2' to
master_port=MYPORT_2,
master_host='127.0.0.1',
master_user='root',
master_use_gtid=no;
set global sql_slave_skip_counter = 2;
select @@global.sql_slave_skip_counter;
@@global.sql_slave_skip_counter
2
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
2
set session sql_slave_skip_counter = 3;
select @@global.sql_slave_skip_counter;
@@global.sql_slave_skip_counter
3
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
3
set global sql_slave_skip_counter= default;
select @@global.sql_slave_skip_counter;
@@global.sql_slave_skip_counter
0
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
0
set global sql_slave_skip_counter= 4;
set default_master_connection = 'master1';
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
0
set default_master_connection = 'qqq';
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
0
Warnings:
Warning 1617 There is no master connection 'qqq'
set default_master_connection = 'master2';
select @@session.sql_slave_skip_counter;
@@session.sql_slave_skip_counter
4
select @@global.max_relay_log_size;
@@global.max_relay_log_size
1073741824
set global max_relay_log_size = 1*1024*1024;
select @@global.max_relay_log_size;
@@global.max_relay_log_size
1048576
select @@session.max_relay_log_size;
@@session.max_relay_log_size
1048576
set session max_relay_log_size = 3*1024*1024;
select @@global.max_relay_log_size;
@@global.max_relay_log_size
3145728
select @@session.max_relay_log_size;
@@session.max_relay_log_size
3145728
set global max_relay_log_size= default;
select @@global.max_relay_log_size;
@@global.max_relay_log_size
1073741824
select @@session.max_relay_log_size;
@@session.max_relay_log_size
1073741824
set global max_relay_log_size= 3*1024*1024;
set default_master_connection = 'master1';
select @@session.max_relay_log_size;
@@session.max_relay_log_size
1073741824
set default_master_connection = 'qqq';
select @@session.max_relay_log_size;
@@session.max_relay_log_size
0
Warnings:
Warning 1617 There is no master connection 'qqq'
set default_master_connection = 'master2';
select @@session.max_relay_log_size;
@@session.max_relay_log_size
3145728
set global max_binlog_size= 4*1024*1024;
select @@global.max_relay_log_size;
@@global.max_relay_log_size
3145728
start slave 'master2';
include/wait_for_slave_to_start.inc
set default_master_connection = '';
connection master2;
connection slave;
show tables in db;
Tables_in_db
t1
t2
t3
this_will_not_be_replicated
drop database db;
set global sql_slave_skip_counter = 0;
set global max_relay_log_size = 1073741824;
set global max_binlog_size = 1073741824;
include/reset_master_slave.inc
disconnect slave;
connection master1;
drop database db;
include/reset_master_slave.inc
disconnect master1;
connection master2;
drop database db;
include/reset_master_slave.inc
disconnect master2;