1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
include/master-slave.inc
[connection master]
connection slave;
include/stop_slave.inc
SET @@global.slave_parallel_threads=4;
SET @@global.slave_parallel_mode=optimistic;
CHANGE MASTER TO master_use_gtid=slave_pos;
SET @@global.debug_dbug="+d,at_write_start_alter";
include/start_slave.inc
connection master;
SET @@session.binlog_alter_two_phase=true;
CREATE TABLE t1 (a INT) ENGINE=innodb;
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
connection master;
SET @@session.gtid_domain_id=11;
ALTER TABLE t1 ADD COLUMN b int, algorithm=instant;
# START Alter having exclusive lock is waiting for the signal
connection slave;
# FTWRL is sent first to wait for SA
connection slave1;
FLUSH TABLES WITH READ LOCK;
# SA completes
connection slave;
set DEBUG_SYNC= "now signal alter_cont";
connection slave1;
connection slave;
# Release CA
connection slave1;
UNLOCK TABLES;
connection master;
connection slave;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000001 # Gtid # # GTID #-#-#
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) ENGINE=innodb
slave-bin.000001 # Gtid # # GTID #-#-# START ALTER
slave-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN b int, algorithm=instant
slave-bin.000001 # Gtid # # GTID #-#-# COMMIT ALTER id=#
slave-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN b int, algorithm=instant
connection master;
DROP TABLE t1;
connection slave;
# cleanup
connection slave;
set DEBUG_SYNC = RESET;
include/stop_slave.inc
set global slave_parallel_threads = 0;
set global slave_parallel_mode = optimistic;
set @@global.debug_dbug = "";
include/start_slave.inc
include/rpl_end.inc
|