mirror of
https://github.com/MariaDB/server.git
synced 2025-05-10 02:01:19 +03:00
This allows us to avoid calculating variables (including those involving mutex) that doesn't match the given wildcard in SHOW STATUS LIKE '...' Removed all references to active_mi that could cause problems for multi-source replication. Added START|STOP ALL SLAVES Added SHOW ALL SLAVES STATUS include/mysql/plugin.h: Added SHOW_SIMPLE_FUNC include/mysql/plugin_audit.h.pp: Updated .pp file include/mysql/plugin_auth.h.pp: Updated .pp file include/mysql/plugin_ftparser.h.pp: Updated .pp file mysql-test/suite/multi_source/info_logs.result: New columns in SHOW ALL SLAVES STATUS mysql-test/suite/multi_source/info_logs.test: Test new syntax mysql-test/suite/multi_source/simple.result: New columns in SHOW ALL SLAVES STATUS mysql-test/suite/multi_source/simple.test: test new syntax mysql-test/suite/multi_source/syntax.result: Updated result mysql-test/suite/multi_source/syntax.test: Test new syntax mysql-test/suite/rpl/r/rpl_skip_replication.result: Updated result plugin/semisync/semisync_master_plugin.cc: SHOW_FUNC -> SHOW_SIMPLE_FUNC sql/item_create.cc: Simplify code sql/lex.h: Added SLAVES keyword sql/log.cc: Constant -> define sql/log_event.cc: Added comment sql/mysqld.cc: SHOW_FUNC -> SHOW_SIMPLE_FUNC Made slave_retried_trans, slave_received_heartbeats and heartbeat_period multi-source safe Clear variable denied_connections and slave_retried_transactions on startup sql/mysqld.h: Added slave_retried_transactions sql/rpl_mi.cc: create_signed_file_name -> create_logfile_name_with_suffix Added start_all_slaves() and stop_all_slaves() sql/rpl_mi.h: Added prototypes sql/rpl_rli.cc: create_signed_file_name -> create_logfile_name_with_suffix added executed_entries sql/rpl_rli.h: Added executed_entries sql/share/errmsg-utf8.txt: More and better error messages sql/slave.cc: Added more fields to SHOW ALL SLAVES STATUS Added slave_retried_transactions Changed constants -> defines sql/sql_class.h: Added comment sql/sql_insert.cc: active_mi.rli -> thd->rli_slave sql/sql_lex.h: Added SQLCOM_SLAVE_ALL_START & SQLCOM_SLAVE_ALL_STOP sql/sql_load.cc: active_mi.rli -> thd->rli_slave sql/sql_parse.cc: Added START|STOP ALL SLAVES sql/sql_prepare.cc: Added SQLCOM_SLAVE_ALL_START & SQLCOM_SLAVE_ALL_STOP sql/sql_reload.cc: Made REFRESH RELAY LOG multi-source safe sql/sql_repl.cc: create_signed_file_name -> create_logfile_name_with_suffix Don't send my_ok() from start_slave() or stop_slave() so that we can call it for all master connections sql/sql_show.cc: Compare wild cards early for all variables sql/sql_yacc.yy: Added START|STOP ALL SLAVES Added SHOW ALL SLAVES STATUS sql/sys_vars.cc: Made replicate_events_marked_for_skip,slave_net_timeout and rpl_filter multi-source safe. sql/sys_vars.h: Simplify Sys_var_rpl_filter
292 lines
12 KiB
Plaintext
292 lines
12 KiB
Plaintext
include/master-slave.inc
|
|
[connection master]
|
|
|
|
*** Preparing ***
|
|
include/stop_slave.inc
|
|
RESET SLAVE;
|
|
SET @restore_slave_net_timeout=@@global.slave_net_timeout;
|
|
RESET MASTER;
|
|
SET @restore_slave_net_timeout=@@global.slave_net_timeout;
|
|
SET @restore_event_scheduler=@@global.event_scheduler;
|
|
|
|
*** Default value ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root';
|
|
slave_net_timeout/slave_heartbeat_timeout=2.0000
|
|
RESET SLAVE;
|
|
|
|
*** Reset slave affect ***
|
|
SET @@global.slave_net_timeout=30;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=5;
|
|
RESET SLAVE;
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 15.000
|
|
|
|
*** Default value if slave_net_timeout changed ***
|
|
SET @@global.slave_net_timeout=50;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20;
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 25.000
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
RESET SLAVE;
|
|
|
|
*** Warning if updated slave_net_timeout < slave_heartbeat_timeout ***
|
|
SET @@global.slave_net_timeout=FLOOR(SLAVE_HEARTBEAT_TIMEOUT)-1;
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
RESET SLAVE;
|
|
|
|
*** Warning if updated slave_heartbeat_timeout > slave_net_timeout ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=SLAVE_NET_TIMEOUT;
|
|
Warnings:
|
|
Warning 1704 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
|
RESET SLAVE;
|
|
|
|
*** CHANGE MASTER statement only updates slave_heartbeat_period ***
|
|
SET @@global.slave_net_timeout=20;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=5;
|
|
SHOW VARIABLES LIKE 'slave_net_timeout';
|
|
Variable_name Value
|
|
slave_net_timeout 20
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 5.000
|
|
SET @@global.slave_net_timeout=2*@@global.slave_net_timeout;
|
|
SHOW VARIABLES LIKE 'slave_net_timeout';
|
|
Variable_name Value
|
|
slave_net_timeout 40
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 5.000
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
RESET SLAVE;
|
|
|
|
*** Update slave_net_timeout on master ***
|
|
SET @@global.slave_net_timeout=500;
|
|
SET @@global.slave_net_timeout=200;
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20;
|
|
include/start_slave.inc
|
|
SHOW VARIABLES LIKE 'slave_net_timeout';
|
|
Variable_name Value
|
|
slave_net_timeout 200
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 100.000
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
include/stop_slave.inc
|
|
RESET SLAVE;
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
|
|
*** Start/stop slave ***
|
|
SET @@global.slave_net_timeout=100;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=20;
|
|
include/start_slave.inc
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 20.000
|
|
include/stop_slave.inc
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 20.000
|
|
|
|
*** Reload slave ***
|
|
SET @@global.slave_net_timeout=50;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=30;
|
|
include/rpl_restart_server.inc [server_number=2]
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 30.000
|
|
SET @restore_slave_net_timeout=@@global.slave_net_timeout;
|
|
|
|
*** Disable heartbeat ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0;
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 0.000
|
|
SHOW STATUS LIKE 'slave_received_heartbeats';
|
|
Variable_name Value
|
|
Slave_received_heartbeats 0
|
|
include/start_slave.inc
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 0.000
|
|
SHOW STATUS LIKE 'slave_received_heartbeats';
|
|
Variable_name Value
|
|
Slave_received_heartbeats 0
|
|
include/stop_slave.inc
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 0.000
|
|
SHOW STATUS LIKE 'slave_received_heartbeats';
|
|
Variable_name Value
|
|
Slave_received_heartbeats 0
|
|
RESET SLAVE;
|
|
SELECT SLAVE_HEARTBEAT_TIMEOUT = 0 AS Result;
|
|
Result
|
|
0
|
|
|
|
*** Min slave_heartbeat_timeout ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.001;
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 0.001
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.0009;
|
|
Warnings:
|
|
Warning 1703 The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled.
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 0.000
|
|
RESET SLAVE;
|
|
|
|
*** Max slave_heartbeat_timeout ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=4294967;
|
|
Warnings:
|
|
Warning 1704 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
|
Variable_name Value
|
|
Slave_heartbeat_period 4294967.000
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=4294968;
|
|
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=8589935;
|
|
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=4294967296;
|
|
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
|
RESET SLAVE;
|
|
|
|
*** Misc incorrect values ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD='-1';
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''-1'' at line 1
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD='123abc';
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''123abc'' at line 1
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD='';
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '''' at line 1
|
|
RESET SLAVE;
|
|
|
|
*** Running slave ***
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.1;
|
|
include/start_slave.inc
|
|
Heartbeat event received
|
|
|
|
*** Stopped slave ***
|
|
include/stop_slave.inc
|
|
Number of received heartbeat events while slave stopped: 0
|
|
|
|
*** Started slave ***
|
|
include/start_slave.inc
|
|
Heartbeat event received
|
|
|
|
*** Stopped IO thread ***
|
|
include/stop_slave_io.inc
|
|
Number of received heartbeat events while io thread stopped: 0
|
|
|
|
*** Started IO thread ***
|
|
START SLAVE IO_THREAD;
|
|
include/wait_for_slave_io_to_start.inc
|
|
Heartbeat event received
|
|
|
|
*** Stopped SQL thread ***
|
|
include/stop_slave_sql.inc
|
|
Heartbeat events are received while sql thread stopped (1 means 'yes'): 1
|
|
|
|
*** Started SQL thread ***
|
|
START SLAVE SQL_THREAD;
|
|
include/wait_for_slave_sql_to_start.inc
|
|
Heartbeat event received
|
|
|
|
*** Stopped SQL thread by error ***
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10), c LONGTEXT);
|
|
INSERT INTO t1 VALUES (1, 'on slave', NULL);
|
|
INSERT INTO t1 VALUES (1, 'on master', NULL);
|
|
call mtr.add_suppression("Slave SQL.*Duplicate entry .1. for key .PRIMARY.. on query.* Error_code: 1062");
|
|
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");
|
|
Heartbeat events are received while sql thread stopped (1 means 'yes'): 1
|
|
include/stop_slave.inc
|
|
DROP TABLE t1;
|
|
|
|
*** Master send to slave ***
|
|
CREATE EVENT e1
|
|
ON SCHEDULE EVERY 1 SECOND
|
|
DO
|
|
BEGIN
|
|
UPDATE test.t1 SET a = a + 1 WHERE a < 10;
|
|
END|
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=5;
|
|
include/start_slave.inc
|
|
SET @@global.event_scheduler=1;
|
|
Number of received heartbeat events: 0
|
|
DELETE FROM t1;
|
|
DROP EVENT e1;
|
|
|
|
*** Flush logs on slave ***
|
|
STOP SLAVE;
|
|
RESET SLAVE;
|
|
DROP TABLE t1;
|
|
DROP TABLE t1;
|
|
RESET MASTER;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.5;
|
|
include/start_slave.inc
|
|
Heartbeat events are received while rotation of relay logs (1 means 'yes'): 1
|
|
|
|
*** Compressed protocol ***
|
|
SET @@global.slave_compressed_protocol=1;
|
|
include/stop_slave.inc
|
|
RESET SLAVE;
|
|
SET @@global.slave_compressed_protocol=1;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.1;
|
|
include/start_slave.inc
|
|
Heartbeat event received
|
|
SET @@global.slave_compressed_protocol=0;
|
|
SET @@global.slave_compressed_protocol=0;
|
|
|
|
*** Reset master ***
|
|
STOP SLAVE;
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.1;
|
|
include/start_slave.inc
|
|
RESET MASTER;
|
|
Heartbeat events are received after reset of master (1 means 'yes'): 1
|
|
|
|
*** Reload master ***
|
|
STOP SLAVE;
|
|
RESET SLAVE;
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_CONNECT_RETRY=20, MASTER_HEARTBEAT_PERIOD=0.1;
|
|
include/start_slave.inc
|
|
Heartbeat event received
|
|
include/rpl_restart_server.inc [server_number=1]
|
|
include/wait_for_slave_io_to_start.inc
|
|
Heartbeat event received
|
|
|
|
*** Circular replication ***
|
|
include/rpl_reset.inc
|
|
include/stop_slave.inc
|
|
include/rpl_change_topology.inc [new topology=1->2->1]
|
|
CHANGE MASTER TO MASTER_HEARTBEAT_PERIOD=1;
|
|
include/start_slave.inc
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10));
|
|
INSERT INTO t1 VALUES(1, 'on master');
|
|
CHANGE MASTER TO MASTER_HEARTBEAT_PERIOD=0.1;
|
|
include/start_slave.inc
|
|
INSERT INTO t1 VALUES(2, 'on slave');
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 on master
|
|
2 on slave
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 on master
|
|
2 on slave
|
|
Heartbeat event received on master
|
|
Heartbeat event received on slave
|
|
*** Clean up ***
|
|
DROP TABLE t1;
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
include/rpl_end.inc
|