mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
25b5c63905
This commit adds 3 new status variables to 'show all slaves status': - Master_last_event_time ; timestamp of the last event read from the master by the IO thread. - Slave_last_event_time ; Master timestamp of the last event committed on the slave. - Master_Slave_time_diff: The difference of the above two timestamps. All the above variables are NULL until the slave has started and the slave has read one query event from the master that changes data. - Added information_schema.slave_status, which allows us to remove: - show_master_info(), show_master_info_get_fields(), send_show_master_info_data(), show_all_master_info() - class Sql_cmd_show_slave_status. - Protocol::store(I_List<i_string_pair>* str_list) as it is not used anymore. - Changed old SHOW SLAVE STATUS and SHOW ALL SLAVES STATUS to use the SELECT code path, as all other SHOW ... STATUS commands. Other things: - Xid_log_time is set to time of commit to allow slave that reads the binary log to calculate Master_last_event_time and Slave_last_event_time. This is needed as there is not 'exec_time' for row events. - Fixed that Load_log_event calculates exec_time identically to Query_event. - Updated RESET SLAVE to reset Master/Slave_last_event_time - Updated SQL thread's update on first transaction read-in to only update Slave_last_event_time on group events. - Fixed possible (unlikely) bugs in sql_show.cc ...old_format() functions if allocation of 'field' would fail. Reviewed By: Brandon Nesterenko <brandon.nesterenko@mariadb.com> Kristian Nielsen <knielsen@knielsen-hq.org>
45 lines
1.3 KiB
Text
45 lines
1.3 KiB
Text
--source include/not_embedded.inc
|
|
--source include/have_log_bin.inc
|
|
|
|
--echo #
|
|
--echo # CHANGE MASTER TO doesn't work with prepared statements
|
|
--echo #
|
|
|
|
CHANGE MASTER TO MASTER_HOST='host1', MASTER_USER='user1';
|
|
|
|
let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1);
|
|
let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1);
|
|
|
|
--echo # Master_Host : $master_host
|
|
--echo # Master_User : $master_user
|
|
|
|
SET @s := "CHANGE MASTER TO MASTER_HOST='host2'";
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1);
|
|
let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1);
|
|
|
|
--echo # Master_Host : $master_host
|
|
--echo # Master_User : $master_user
|
|
|
|
SET @s := "CHANGE MASTER TO MASTER_USER='user2'";
|
|
PREPARE stmt FROM @s;
|
|
EXECUTE stmt;
|
|
# Multiple executions should not hurt.
|
|
EXECUTE stmt;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
let $master_host= `select Master_Host from information_schema.slave_status`;
|
|
let $master_user= `select Master_user from information_schema.slave_status`;
|
|
|
|
--echo # Master_Host : $master_host
|
|
--echo # Master_User : $master_user
|
|
|
|
|
|
# Reset
|
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_SSL_VERIFY_SERVER_CERT=0;
|
|
|
|
--echo # End of test
|