1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-20601: Make REPLICA a synonym for SLAVE in SQL statements

Fix:
===
Add "REPLICA" as an alias for "SLAVE". All commands which use "SLAVE" keyword
can be used with new alias "REPLICA".

List of commands:

On Master:
=========
SHOW REPLICA HOSTS <--> SHOW SLAVE HOSTS
Privilege "SLAVE"  <--> "REPLICA"

On Slave:
=========
START SLAVE       <--> START REPLICA
START ALL SLAVES  <--> START ALL REPLICAS
START SLAVE UNTIL <--> START REPLICA UNTIL
STOP SLAVE        <--> STOP REPLICA
STOP ALL SLAVES   <--> STOP ALL REPLICAS
RESET SLAVE       <--> RESET REPLICA
RESET SLAVE ALL   <--> RESET REPLICA ALL
SLAVE_POS         <--> REPLICA_POS
This commit is contained in:
Sujatha
2020-02-04 18:16:21 +05:30
parent 287c1db786
commit 42e825dd0a
5 changed files with 392 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
# ==== Purpose ====
#
# Test verifies that SQL statements which use keyword 'REPLICA' a synonym for
# 'SLAVE' work as expected.
#
# ==== Implementation ====
#
# List of commands being verified are
# On Master: SHOW REPLICA HOSTS
# : Privilege "REPLICA"
#
# On Slave: START REPLICA
# START REPLICA UNTIL
# STOP REPLICA
# SHOW REPLICA STATUS
# RESET REPLICA ALL
# REPLICA_POS
#
# ==== References ====
#
# MDEV-20601: Make REPLICA a synonym for SLAVE in SQL statements
#
--source include/have_innodb.inc
--source include/master-slave.inc
--echo "Command: STOP SLAVE --> STOP REPLICA"
--connection slave
STOP REPLICA;
--source include/wait_for_slave_io_to_stop.inc
--source include/wait_for_slave_sql_to_stop.inc
--connection master
CREATE USER 'repl_user';
--echo "Privilege: SLAVE --> REPLICA"
GRANT REPLICATION REPLICA on *.* TO repl_user;
FLUSH PRIVILEGES;
--connection slave
--echo "SHOW SLAVE STATUS --> SHOW REPLICA STATUS"
--let $master_user= query_get_value(SHOW REPLICA STATUS, Master_User, 1)
CHANGE MASTER TO MASTER_USER= 'repl_user';
--echo "Command: START SLAVE --> START REPLICA"
START REPLICA;
--source include/wait_for_slave_io_to_start.inc
--source include/wait_for_slave_sql_to_start.inc
--connection master
--echo "Command: SHOW SLAVE HOSTS --> SHOW REPLICA HOSTS"
--replace_result $SLAVE_MYPORT SLAVE_PORT
SHOW REPLICA HOSTS;
DROP USER 'repl_user';
--sync_slave_with_master
--echo "Command: SHOW SLAVE IO/SQL THREAD --> SHOW REPLICA IO/SQL THREAD"
STOP REPLICA IO_THREAD;
STOP REPLICA SQL_THREAD;
--source include/wait_for_slave_io_to_stop.inc
--source include/wait_for_slave_sql_to_stop.inc
--echo "Command: RESET SLAVE ALL --> RESET REPLICA ALL"
RESET REPLICA ALL;
--connection master
RESET MASTER;
CREATE TABLE t(f INT) ENGINE=INNODB;
INSERT INTO t VALUES (10);
let $master_log_file= query_get_value(SHOW MASTER STATUS, File, 1);
let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
DROP TABLE t;
--connection slave
--replace_result $MASTER_MYPORT MASTER_PORT
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1',MASTER_PORT=$MASTER_MYPORT,MASTER_USER='$master_user';
--echo "Command: START SLAVE UNTIL --> START REPLICA UNTIL"
--replace_result $master_log_file MASTER_LOG_FILE $master_pos MASTER_POS
--eval START REPLICA UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=$master_pos
--source include/wait_for_slave_sql_to_stop.inc
--source include/stop_slave_io.inc
SELECT * FROM t;
--let $slave_param= Exec_Master_Log_Pos
--let $slave_param_value= $master_pos
--source include/check_slave_param.inc
--replace_result $MASTER_MYPORT MASTER_PORT
--echo "MASTER_USE_GTID=SLAVE_POS --> MASTER_USE_GTID=REPLICA_POS"
--replace_result $MASTER_MYPORT MASTER_PORT
--eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT, MASTER_USE_GTID=REPLICA_POS
--source include/start_slave.inc
--connection master
CREATE TABLE t2 (f INT PRIMARY KEY) ENGINE=INNODB;
INSERT INTO t2 VALUES (10);
DROP TABLE t2;
--source include/rpl_end.inc