config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/rpl/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/rpl/t/rpl_multi_source_relay_log_recovery.test

###############################################################################
# Bug#21507981: REPLICATION POSITION LOST AFTER CRASH ON MTS CONFIGURED SLAVE
#
# Problem:
# ========
# Enable MTS along with crash-safe replication tables. Make sure that the
# server is busily inserting data with multiple threads in parallel. Shutdown
# mysqld uncleanly (kill -9 or power off server without notice).
#
# Now users are restarting the server with --relay-log-recovery=1 to recover
# the crashed slave.
#
# This results in following error:
# ================================
# 2015-06-24 13:49:03 3895 [ERROR] --relay-log-recovery cannot be executed
# when the slave was stopped with an error or killed in MTS mode; consideri
# using RESET SLAVE or restart the server with --relay-log-recovery = 0
# followed by # START SLAVE UNTIL SQL_AFTER_MTS_GAPS.
#
# i.e relay-log-recovery will not work in MTS mode.
###############################################################################
# Following test demonstrates that when gaps are generated due to MTS crash
# but not due to an error then recovery should be successful with
# --relay-log-recovery=1 option.
#
# In case of Multi source replication all channels will go through the relay
# log recovery process and gaps will be filled.

# Test ensures that after crash recovery the slave is in a consistent state
# and there are no gaps in MTS execution and it is up and running.

#Skip on group replication runs
--source include/not_group_replication_plugin.inc
--source include/force_restart.inc
--source include/have_binlog_format_statement.inc
--source include/only_mts_slave_parallel_workers.inc
--source include/only_mts_slave_parallel_type_database.inc

--echo #
--echo # set up masters server_1 and server_3 with server_2 being a slave.
--echo #.
--let $rpl_topology= 1->2,3->2
--let $rpl_multi_source= 1
--source include/rpl_init.inc

--echo #### I. Initialize slaves ####
--let $rpl_connection_name= server_2
--source include/rpl_connection.inc
--let $slave_stop_wait=5

--source include/rpl_stop_slaves.inc
SET @save.innodb_lock_wait_timeout= @@global.innodb_lock_wait_timeout;
--eval set @@global.innodb_lock_wait_timeout=$slave_stop_wait + 1000

--echo #start slave
--source include/rpl_start_slaves.inc

--echo #
--echo # Generate MTS gaps for channel1.
--echo #
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc
--let $channel_id=1
--source extra/rpl_tests/rpl_multi_source_generate_mts_gap.test

--echo #
--echo # Generate MTS gaps for channel3.
--echo #
--let $rpl_connection_name= server_3
--source include/rpl_connection.inc
--let $channel_id=3
--source extra/rpl_tests/rpl_multi_source_generate_mts_gap.test

--let $rpl_connection_name= server_2
--source include/rpl_connection.inc
CALL mtr.add_suppression("Recovery from master pos");
# Kill the slave server
--source include/kill_mysqld.inc

--let $rpl_server_number= 2
--let $rpl_server_parameters= --relay-log-recovery --skip-slave-start --gtid-mode=off --master-info-repository=TABLE --relay-log-info-repository=TABLE
--source include/rpl_start_server.inc

--let $rpl_connection_name= server_2
--source include/rpl_connection.inc
START SLAVE;


#
# Cleanup; This involves deleting/dropping and manual syncing
#

--echo # channel 1
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc

--let $rpl_channel_name= channel_1
--let $sync_slave_connection= server_2
--source include/sync_slave_sql_with_master.inc

--echo # channel 3
--let $rpl_connection_name= server_3
--source include/rpl_connection.inc

--let $rpl_channel_name= channel_3
--let $sync_slave_connection= server_2
--source include/sync_slave_sql_with_master.inc

# now do the clean up

--echo connection_server_1
--connection server_1
DROP DATABASE d1_1;
DROP DATABASE d2_1;
--let $rpl_channel_name= channel_1
--let $sync_slave_connection= server_2
--source include/sync_slave_sql_with_master.inc

--echo connection_server_3
--connection server_3
DROP DATABASE d1_3;
DROP DATABASE d2_3;
--let $rpl_channel_name= channel_3
--let $sync_slave_connection= server_2
--source include/sync_slave_sql_with_master.inc

--let $rpl_skip_sync= 1
--source include/rpl_end.inc

Man Man