Quelle rpl_gtid_errorhandling.result
Sprache: Lisp
include/master-slave.inc
[connection master]
*** Test that we check against incorrect table definition for mysql.gtid_slave_pos ***
connection master;
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
call mtr.add_suppression("Incorrect definition of table mysql.gtid_slave_pos:.*");
connection slave;
connection slave;
include/stop_slave.inc
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no VARCHAR(20);
START SLAVE;
connection master;
INSERT INTO t1 VALUES (1);
connection slave;
CALL mtr.add_suppression("Slave: Failed to open mysql.gtid_slave_pos");
include/wait_for_slave_sql_error.inc [errno=1944]
include/stop_slave.inc
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no BIGINT UNSIGNED NOT NULL;
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id, domain_id);
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1944]
include/stop_slave.inc
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1944]
include/stop_slave.inc
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id);
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1944]
include/stop_slave.inc
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (domain_id, sub_id);
include/start_slave.inc
connection master;
connection slave;
connection slave;
SELECT * FROM t1;
a 1
*** Test that setting @@gtid_domain_id or @@gtid_seq_no is not allowed inside a transaction. ***
BEGIN;
INSERT INTO t1 VALUES (100); SET SESSION gtid_domain_id= 100; ERROR HY000: Cannot modify @@session.gtid_domain_id or @@session.gtid_seq_no inside a transaction SET SESSION gtid_seq_no= 100; ERROR HY000: Cannot modify @@session.gtid_domain_id or @@session.gtid_seq_no inside a transaction SET @old_domain= @@GLOBAL.gtid_domain_id; SET GLOBAL gtid_domain_id= 100;
SELECT @@SESSION.gtid_domain_id;
@@SESSION.gtid_domain_id 0 SET GLOBAL gtid_domain_id= @old_domain;
INSERT INTO t1 VALUES (101);
SELECT * FROM t1 ORDER BY a;
a 1 100 101
ROLLBACK;
SELECT * FROM t1 ORDER BY a;
a 1 SET @old_mode= @@SESSION.binlog_format; SET SESSION binlog_format= row; SET SESSION gtid_domain_id= 200;
CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB; SET SESSION gtid_domain_id= 0;
BEGIN;
INSERT INTO t2 VALUES (200);
INSERT INTO t1 SELECT * FROM t2;
COMMIT; SET SESSION gtid_domain_id= 201; SET SESSION gtid_domain_id= 0;
DELETE FROM t1 WHERE a=200; SET SESSION gtid_domain_id= 202;
DROP TEMPORARY TABLE t2; SET SESSION binlog_format= mixed; SET SESSION create_tmp_table_binlog_formats="mixed";
Warnings:
Warning 1292 Truncated incorrect create_tmp_table_binlog_formats value: 'MIXED' SET SESSION gtid_domain_id= 0;
CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t2 VALUES (1); SET SESSION gtid_domain_id= 0; SET SESSION gtid_domain_id= 204; ERROR HY000: Cannot modify @@session.gtid_domain_id while there are open temporary tables being binlogged SET SESSION binlog_format=statement;
INSERT INTO t2 VALUES (2); SET SESSION gtid_domain_id= 205; ERROR HY000: Cannot modify @@session.gtid_domain_id while there are open temporary tables being binlogged
DROP TEMPORARY TABLE t2; SET SESSION gtid_domain_id= @old_domain; SET SESSION binlog_format= @old_mode;
*** Test requesting an explicit GTID position that conflicts with newer GTIDs of our own in the binlog. ***
connection slave;
include/stop_slave.inc
connection master;
include/kill_binlog_dump_threads.inc
RESET MASTER;
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (4);
include/save_master_gtid.inc
connection slave; SET sql_log_bin = 0;
INSERT INTO t1 VALUES (2); SET sql_log_bin = 1;
INSERT INTO t1 VALUES (3);
CHANGE MASTER TO master_use_gtid=current_pos;
BEGIN; SET GLOBAL gtid_slave_pos = "100-100-100"; ERROR25000: You are not allowed to execute this command in a transaction
INSERT INTO t1 VALUES (100); SET GLOBAL gtid_slave_pos = "100-100-100"; ERROR25000: You are not allowed to execute this command in a transaction
ROLLBACK; SET GLOBAL gtid_strict_mode= 1; SET GLOBAL gtid_slave_pos = "0-1-1"; ERROR HY000: Specified GTID 0-1-1 conflicts with the binary log which contains a more recent GTID 0-2-18. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos SET GLOBAL gtid_slave_pos = ""; ERROR HY000: Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-18. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos SET GLOBAL gtid_strict_mode= 0; SET GLOBAL gtid_slave_pos = "0-1-1";
Warnings:
Warning 1947 Specified GTID 0-1-1 conflicts with the binary log which contains a more recent GTID 0-2-18. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos SET GLOBAL gtid_slave_pos = "";
Warnings:
Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-18. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos
RESET MASTER; SET GLOBAL gtid_slave_pos = "0-1-1";
START SLAVE;
include/sync_with_master_gtid.inc
SELECT * FROM t1 ORDER BY a;
a 1 2 3 4
*** MDEV-4688: Empty value of @@GLOBAL.gtid_slave_pos ***
include/stop_slave.inc
connection master;
INSERT INTO t1 VALUES (5);
include/save_master_gtid.inc
connection slave; SET @old_dbug= @@GLOBAL.debug_dbug; SET GLOBAL debug_dbug="+d,dummy_disable_default_dbug_output"; SET GLOBAL debug_dbug="+d,gtid_fail_after_record_gtid"; SET sql_log_bin=0;
CALL mtr.add_suppression('Got error 131 "Command not supported by the engine" during COMMIT'); SET sql_log_bin=1;
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1180]
SELECT @@GLOBAL.gtid_slave_pos;
@@GLOBAL.gtid_slave_pos 0-1-2
SELECT * FROM t1 ORDER BY a;
a 1 2 3 4 SET GLOBAL debug_dbug= @old_dbug;
START SLAVE SQL_THREAD;
include/sync_with_master_gtid.inc
SELECT * FROM t1 ORDER BY a;
a 1 2 3 4 5
*** Test slave requesting a GTID that is not present in the master's binlog ***
include/stop_slave.inc SET GLOBAL gtid_slave_pos = "0-1-4";
START SLAVE; SET sql_log_bin=0;
CALL mtr.add_suppression("Got fatal error .* from master when reading data from binary log: 'Error: connecting slave requested to start from GTID .*, which is not in the master's binlog'"); SET sql_log_bin=1;
include/wait_for_slave_io_error.inc [errno=1236]
Slave_IO_State = ''
Last_IO_Errno = '1236'
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Error: connecting slave requested to start from GTID 0-1-4, which is not in the master's binlog''
Using_Gtid = 'Current_Pos'
include/stop_slave.inc SET GLOBAL gtid_slave_pos = "0-1-3";
START SLAVE;
include/wait_for_slave_to_start.inc
connection master;
INSERT INTO t1 VALUES (6);
include/save_master_gtid.inc
connection slave;
include/sync_with_master_gtid.inc
SELECT * FROM t1 ORDER BY a;
a 1 2 3 4 5 6
*** MDEV-4278: Slave does not detect that master is not GTID-aware ***
connection slave;
include/stop_slave.inc
connection master; SET @old_dbug= @@global.DEBUG_DBUG; SET GLOBAL debug_dbug="+d,simulate_non_gtid_aware_master";
connection slave;
START SLAVE;
include/wait_for_slave_io_error.inc [errno=1233]
connection master; SET GLOBAL debug_dbug= @old_dbug;
INSERT INTO t1 VALUES (7);
connection slave;
START SLAVE; SET sql_log_bin=0;
CALL mtr.add_suppression("The slave I/O thread stops because master does not support MariaDB global transaction id"); SET sql_log_bin=1;
*** Test error during record_gtid() (non-xid cases) ***
connection slave;
include/stop_slave.inc
connection master;
CREATE TABLE t2 (a INT) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1);
connection slave; SET @old_dbug= @@global.DEBUG_DBUG; SET GLOBAL debug_dbug="+d,gtid_inject_record_gtid";
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1942] SET GLOBAL debug_dbug= @old_dbug;
START SLAVE SQL_THREAD;
SELECT * FROM t2;
a 1 1 SET sql_log_bin=0;
CALL mtr.add_suppression("Slave: Could not update replication slave gtid state"); SET sql_log_bin=1;
*** MDEV-4906: When event apply fails, next SQL thread start erroneously commits the failing GTID to gtid_slave_pos ***
connection slave;
include/stop_slave.inc SET sql_log_bin=0;
DELETE FROM t2; SET sql_log_bin=1; SET @old_format=@@binlog_format; SET GLOBAL binlog_format='row';
include/start_slave.inc
connection master; SET @old_format=@@binlog_format; SET binlog_format='row';
DELETE FROM t2; SET binlog_format=@old_format;
connection slave;
include/wait_for_slave_sql_error.inc [errno=1032]
result
OK
STOP SLAVE IO_THREAD;
START SLAVE;
include/wait_for_slave_sql_error.inc [errno=1032]
result
OK
STOP SLAVE IO_THREAD; SET sql_log_bin=0;
INSERT INTO t2 VALUES (1);
CALL mtr.add_suppression("Slave: Can't find record in 't2' Error_code: 1032"); SET sql_log_bin=1;
include/start_slave.inc SET GLOBAL binlog_format=@old_format;
connection master;
DROP TABLE t1;
DROP TABLE t2;
call mtr.add_suppression("Can't find record in 't2'");
include/rpl_end.inc
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-10-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.