mirror of
https://github.com/MariaDB/server.git
synced 2025-02-14 17:35:35 +01:00
![Brandon Nesterenko](/assets/img/avatar_default.png)
This reverts commit c37b2087b4
.
In c37b20887, when re-binlogging a GTID event on a replica,
it will overwrite the thread_id from the primary to be the
value of the slave applier (SQL thread or parallel worker).
This should be the value of the original thread_id on the
master connection though, to both help track temporary
tables, and be consistent with Query_log_event.
Reverting the commit to re-target 11.5, so we can re-test
with the corrected thread_id.
374 lines
11 KiB
Text
374 lines
11 KiB
Text
RESET MASTER;
|
|
connect slave,127.0.0.1,root,,,$SERVER_MYPORT_3;
|
|
change master to relay_log_file='' for channel 'abc1';
|
|
ERROR HY000: Failed initializing relay log position: Could not find target log during relay log initialization
|
|
change master to master_host='' for channel 'abc2';
|
|
ERROR HY000: Incorrect arguments to MASTER_HOST
|
|
change master to
|
|
master_port=MYPORT_1,
|
|
master_host='127.0.0.1',
|
|
master_user='root', master_ssl_verify_server_cert=0,
|
|
master_use_gtid=no
|
|
for channel 'master1';
|
|
start slave for channel 'master1';
|
|
set default_master_connection = 'master1';
|
|
include/wait_for_slave_to_start.inc
|
|
connect master1,127.0.0.1,root,,,$SERVER_MYPORT_1;
|
|
connection slave;
|
|
#
|
|
# Checking SHOW SLAVE 'master1' STATUS
|
|
#
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000002'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
#
|
|
# Checking SHOW SLAVE STATUS
|
|
#
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000002'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
#
|
|
# Checking SHOW ALL SLAVES STATUS
|
|
#
|
|
Connection_name = 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000002'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
Slave_heartbeat_period = '60.000'
|
|
#
|
|
connection master1;
|
|
drop database if exists db1;
|
|
create database db1;
|
|
use db1;
|
|
create table t1 (i int auto_increment, f1 varchar(16), primary key pk (i,f1)) engine=MyISAM;
|
|
Warnings:
|
|
Warning 1280 Name 'pk' ignored for PRIMARY key.
|
|
insert into t1 (f1) values ('one'),('two');
|
|
connection slave;
|
|
select * from db1.t1;
|
|
i f1
|
|
1 one
|
|
2 two
|
|
# List of relay log files in the datadir
|
|
mysqld-relay-bin-master1.000001
|
|
mysqld-relay-bin-master1.000002
|
|
mysqld-relay-bin-master1.index
|
|
include/show_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
mysqld-relay-bin-master1.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin-master1.000001 # Rotate # # mysqld-relay-bin-master1.000002;pos=4
|
|
include/show_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
mysqld-relay-bin-master1.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin-master1.000002 # Rotate # # master-bin.000001;pos=POS
|
|
mysqld-relay-bin-master1.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin-master1.000002 # Gtid_list # # []
|
|
mysqld-relay-bin-master1.000002 # Binlog_checkpoint # # master-bin.000001
|
|
mysqld-relay-bin-master1.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin-master1.000002 # Query # # drop database if exists db1
|
|
mysqld-relay-bin-master1.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin-master1.000002 # Query # # create database db1
|
|
mysqld-relay-bin-master1.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin-master1.000002 # Query # # use `db1`; create table t1 (i int auto_increment, f1 varchar(16), primary key pk (i,f1)) engine=MyISAM
|
|
mysqld-relay-bin-master1.000002 # Gtid # # BEGIN GTID #-#-#
|
|
mysqld-relay-bin-master1.000002 # Intvar # # INSERT_ID=1
|
|
mysqld-relay-bin-master1.000002 # Query # # use `db1`; insert into t1 (f1) values ('one'),('two')
|
|
mysqld-relay-bin-master1.000002 # Query # # COMMIT
|
|
change master to
|
|
master_port=MYPORT_2,
|
|
master_host='127.0.0.1',
|
|
master_user='root'
|
|
for channel 'master1';
|
|
ERROR HY000: This operation cannot be performed as you have a running slave 'master1'; run STOP SLAVE 'master1' first
|
|
change master to
|
|
master_port=MYPORT_2,
|
|
master_host='127.0.0.1',
|
|
master_user='root';
|
|
ERROR HY000: This operation cannot be performed as you have a running slave 'master1'; run STOP SLAVE 'master1' first
|
|
change master to
|
|
master_port=MYPORT_1,
|
|
master_host='127.0.0.1',
|
|
master_user='root' for channel 'master2';
|
|
ERROR HY000: Connection 'master2' conflicts with existing connection 'master1'
|
|
set default_master_connection = '';
|
|
change master to
|
|
master_port=MYPORT_2,
|
|
master_host='127.0.0.1',
|
|
master_user='root', master_ssl_verify_server_cert=0,
|
|
master_use_gtid=no;
|
|
start slave;
|
|
include/wait_for_slave_to_start.inc
|
|
#
|
|
# Checking SHOW ALL SLAVES STATUS
|
|
#
|
|
Connection_name = ''
|
|
Connection_name = 'master1'
|
|
Master_Port = 'MYPORT_2'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin.000002'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000002'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
Slave_heartbeat_period = '60.000'
|
|
Slave_heartbeat_period = '60.000'
|
|
#
|
|
connection master1;
|
|
insert into t1 (f1) values ('three');
|
|
connect master2,127.0.0.1,root,,,$SERVER_MYPORT_2;
|
|
drop database if exists db2;
|
|
create database db2;
|
|
use db2;
|
|
create table t1 (pk int auto_increment primary key, f1 int) engine=InnoDB;
|
|
begin;
|
|
insert into t1 (f1) values (1),(2);
|
|
connection slave;
|
|
connection master2;
|
|
connection slave;
|
|
select * from db1.t1;
|
|
i f1
|
|
1 one
|
|
2 two
|
|
3 three
|
|
select * from db2.t1;
|
|
pk f1
|
|
connection master2;
|
|
commit;
|
|
connection slave;
|
|
select * from db2.t1;
|
|
pk f1
|
|
1 1
|
|
2 2
|
|
connection master1;
|
|
flush logs;
|
|
connection slave;
|
|
connection master1;
|
|
purge binary logs to 'master-bin.000002';
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000002 filesize
|
|
insert into t1 (f1) values ('four');
|
|
create table db1.t3 (f1 int) engine=InnoDB;
|
|
connection slave;
|
|
#
|
|
# Checking SHOW ALL SLAVES STATUS
|
|
#
|
|
Connection_name = ''
|
|
Connection_name = 'master1'
|
|
Master_Port = 'MYPORT_2'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin.000002'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000004'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
Slave_heartbeat_period = '60.000'
|
|
Slave_heartbeat_period = '60.000'
|
|
#
|
|
#
|
|
# MDEV:16437: merge 5.7 P_S replication instrumentation and tables
|
|
#
|
|
SELECT * FROM performance_schema.replication_applier_status_by_coordinator;
|
|
CHANNEL_NAME master1
|
|
THREAD_ID #
|
|
SERVICE_STATE ON
|
|
LAST_ERROR_NUMBER 0
|
|
LAST_ERROR_MESSAGE
|
|
LAST_ERROR_TIMESTAMP 0000-00-00 00:00:00
|
|
LAST_SEEN_TRANSACTION 0-1-7
|
|
LAST_TRANS_RETRY_COUNT 0
|
|
CHANNEL_NAME
|
|
THREAD_ID #
|
|
SERVICE_STATE ON
|
|
LAST_ERROR_NUMBER 0
|
|
LAST_ERROR_MESSAGE
|
|
LAST_ERROR_TIMESTAMP 0000-00-00 00:00:00
|
|
LAST_SEEN_TRANSACTION 0-2-4
|
|
LAST_TRANS_RETRY_COUNT 0
|
|
select * from db1.t1;
|
|
i f1
|
|
1 one
|
|
2 two
|
|
3 three
|
|
4 four
|
|
include/show_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
mysqld-relay-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin.000001 # Rotate # # mysqld-relay-bin.000002;pos=4
|
|
include/show_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
mysqld-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin.000002 # Rotate # # master-bin.000001;pos=POS
|
|
mysqld-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION
|
|
mysqld-relay-bin.000002 # Gtid_list # # []
|
|
mysqld-relay-bin.000002 # Binlog_checkpoint # # master-bin.000001
|
|
mysqld-relay-bin.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin.000002 # Query # # drop database if exists db2
|
|
mysqld-relay-bin.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin.000002 # Query # # create database db2
|
|
mysqld-relay-bin.000002 # Gtid # # GTID #-#-#
|
|
mysqld-relay-bin.000002 # Query # # use `db2`; create table t1 (pk int auto_increment primary key, f1 int) engine=InnoDB
|
|
mysqld-relay-bin.000002 # Gtid # # BEGIN GTID #-#-#
|
|
mysqld-relay-bin.000002 # Intvar # # INSERT_ID=1
|
|
mysqld-relay-bin.000002 # Query # # use `db2`; insert into t1 (f1) values (1),(2)
|
|
mysqld-relay-bin.000002 # Xid # # COMMIT /* XID */
|
|
disconnect slave;
|
|
connect slave,127.0.0.1,root,,,$SERVER_MYPORT_3;
|
|
stop slave io_thread;
|
|
show status like 'Slave_running';
|
|
Variable_name Value
|
|
Slave_running OFF
|
|
set default_master_connection = 'master1';
|
|
show status like 'Slave_running';
|
|
Variable_name Value
|
|
Slave_running ON
|
|
|
|
#
|
|
# syntax compatible test
|
|
#
|
|
|
|
#
|
|
# show relaylog events
|
|
#
|
|
SHOW RELAYLOG EVENTS for channel 'master1';
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
mysqld-relay-bin-master1.000003 4 Format_desc 3 256 Server ver: Version
|
|
mysqld-relay-bin-master1.000003 256 Rotate 1 1358 master-bin.000002;pos=4
|
|
mysqld-relay-bin-master1.000003 304 Rotate 3 366 mysqld-relay-bin-master1.000004;pos=4
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000004'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# stop slave
|
|
#
|
|
STOP SLAVE for channel 'master1';
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000004'
|
|
Slave_IO_Running = 'No'
|
|
Slave_SQL_Running = 'No'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# start slave
|
|
#
|
|
START SLAVE for channel 'master1';
|
|
include/wait_for_slave_to_start.inc
|
|
connection master1;
|
|
create table foo (a int);
|
|
drop table foo;
|
|
connection slave;
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000005'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# flush relay logs
|
|
#
|
|
FLUSH RELAY LOGS for channel 'master1';
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000006'
|
|
Slave_IO_Running = 'Yes'
|
|
Slave_SQL_Running = 'Yes'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# stop slave
|
|
#
|
|
STOP SLAVE for channel 'master1';
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = 'mysqld-relay-bin-master1.000006'
|
|
Slave_IO_Running = 'No'
|
|
Slave_SQL_Running = 'No'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# reset slave
|
|
#
|
|
RESET SLAVE for channel 'master1';
|
|
Warnings:
|
|
Note 4190 RESET SLAVE is implicitly changing the value of 'Using_Gtid' from 'No' to 'Slave_Pos'
|
|
|
|
show slave status for channel 'master1'
|
|
Master_Port = 'MYPORT_1'
|
|
Relay_Log_File = ''
|
|
Slave_IO_Running = 'No'
|
|
Slave_SQL_Running = 'No'
|
|
Last_Errno = '0'
|
|
Last_SQL_Errno = '0'
|
|
|
|
#
|
|
# show relaylog events after reset slave
|
|
#
|
|
SHOW RELAYLOG EVENTS for channel 'master1';
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
|
|
#
|
|
# check error syntax
|
|
#
|
|
RESET SLAVE 'master1' for channel 'mmaster2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
STOP SLAVE 'master1' for channel 'master2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
FLUSH RELAY LOGS 'master1' for channel 'master2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
START SLAVE 'master1' for channel 'master2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
SHOW RELAYLOG 'master1' EVENTS for channel 'master2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
SHOW SLAVE 'master1' STATUS for channel 'master2';
|
|
ERROR HY000: Incorrect arguments to CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)
|
|
|
|
drop database db1;
|
|
drop database db2;
|
|
include/reset_master_slave.inc
|
|
disconnect slave;
|
|
connection master1;
|
|
drop database db1;
|
|
include/reset_master_slave.inc
|
|
disconnect master1;
|
|
connection master2;
|
|
drop database db2;
|
|
include/reset_master_slave.inc
|
|
disconnect master2;
|
|
connection default;
|
|
CREATE TABLE channel (channel int);
|
|
DROP TABLE channel;
|