include/master-slave.inc
[connection master]
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
call mtr.add_suppression("Slave SQL.*Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group");
connection slave;
include/stop_slave.inc SET @old_log_output= @@log_output; SET GLOBAL log_output= 'TABLE'; SET @old_long_query_time= @@long_query_time; SET GLOBAL long_query_time= 2;
TRUNCATE mysql.slow_log;
include/start_slave.inc
connection master;
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 values(1, 1);
INSERT INTO t1 values(1, sleep(3));
connection slave;
TRUNCATE mysql.slow_log;
connect extra,127.0.0.1,root,,test,$SLAVE_MYPORT;
connection extra;
SELECT 1, sleep(3); 1 sleep(3) 10
SELECT 1; 1 1
TRUNCATE mysql.slow_log; SET TIMESTAMP= 1;
SELECT 2, sleep(3); 2 sleep(3) 20
SELECT 2; 2 2
TRUNCATE mysql.slow_log;
connect extra2,127.0.0.1,root,,test,$SLAVE_MYPORT;
connection extra2; SET @old_slow_query_log= @@slow_query_log; SET GLOBAL slow_query_log= 'OFF';
connection extra;
SELECT 3, sleep(3); 3 sleep(3) 30
SELECT 3; 3 3
TRUNCATE mysql.slow_log;
connection extra2; SET GLOBAL slow_query_log= @old_slow_query_log;
connection master;
DROP TABLE t1;
connection slave;
include/stop_slave.inc SET GLOBAL long_query_time= @old_long_query_time; SET GLOBAL log_output= @old_log_output;
include/start_slave.inc
disconnect extra;
disconnect extra2;
include/rpl_reset.inc
connection master; SET @old_log_output= @@log_output; SET GLOBAL log_output= 'TABLE'; SET GLOBAL long_query_time= 2; SET @old_long_query_time= @@long_query_time; SET SESSION long_query_time= 2;
TRUNCATE mysql.slow_log;
connection slave;
include/stop_slave.inc SET @old_log_output= @@log_output; SET GLOBAL log_output= 'TABLE'; SET @old_long_query_time= @@long_query_time; SET GLOBAL long_query_time= 2;
TRUNCATE mysql.slow_log;
include/start_slave.inc
connection master;
CREATE TABLE t1 (a int, b int);
********************************************************************
**** INSERT one row that exceeds long_query_time
**** Outcome: query ends up in both master and slave slow log
********************************************************************
INSERT INTO t1 values(1, sleep(3));
connection slave;
### Assertion is good. Both Master and Slave exhibit the
### same number of queries in slow log: 1
TRUNCATE mysql.slow_log;
connection master;
TRUNCATE mysql.slow_log;
********************************************************************
**** Now do inserts again, but first add an index to the table.
**** Outcome: Note that the slave contains the same one entry (as
**** the master does) whereas before the patch it did not.
********************************************************************
ALTER TABLE t1 ADD INDEX id1(a);
INSERT INTO t1 values(1, sleep(3));
connection slave;
### Assertion is good. Both Master and Slave exhibit the
### same number of queries in slow log: 1
********************************************************************
**** TRUNCATE the slow log then check whether runtime changes of
**** log_slow_slave_statements work without slave restart.
******************************************************************** SET @old_log_slow_slave_statements= @@global.log_slow_slave_statements; SET @@global.log_slow_slave_statements = off;
TRUNCATE mysql.slow_log;
connection master;
INSERT INTO t1 values(1, sleep(3));;
connection slave;
connection slave;
SELECT sql_text FROM mysql.slow_log WHERE sql_text like 'INSERT INTO t1 values(1, sleep(3))';
sql_text SET @@global.log_slow_slave_statements = on;
connection master;
INSERT INTO t1 values(1, sleep(3));;
connection slave;
connection slave;
SELECT sql_text FROM mysql.slow_log WHERE sql_text like 'INSERT INTO t1 values(1, sleep(3))';
sql_text
INSERT INTO t1 values(1, sleep(3))
connection master; SET @@global.log_output= @old_log_output; SET @@global.long_query_time= @old_long_query_time;
DROP TABLE t1;
connection slave; SET @@global.log_output= @old_log_output; SET @@global.long_query_time= @old_long_query_time;
include/rpl_end.inc
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.