89 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			89 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | # ==== Purpose ====
 | ||
|  | #
 | ||
|  | # Issues STOP SLAVE on the current connection. Then waits until both
 | ||
|  | # the IO and SQL threads have stopped, or until a timeout is reached.
 | ||
|  | #
 | ||
|  | # Please use this instead of 'STOP SLAVE', to reduce the risk of races
 | ||
|  | # in test cases.
 | ||
|  | #
 | ||
|  | # This will fail if the slave IO or SQL thread has an error. If you
 | ||
|  | # expect an error in the IO thread, use
 | ||
|  | # include/wait_for_slave_io_error.inc and include/stop_slave_sql.inc.
 | ||
|  | #
 | ||
|  | #
 | ||
|  | # ==== Usage ====
 | ||
|  | #
 | ||
|  | # [--let $rpl_only_running_threads= 1]
 | ||
|  | # [--let $slave_timeout= NUMBER]
 | ||
|  | # [--let $rpl_debug= 1]
 | ||
|  | # --source include/stop_slave.inc
 | ||
|  | #
 | ||
|  | # Parameters:
 | ||
|  | #   $rpl_only_running_threads
 | ||
|  | #     By default, this script executes STOP SLAVE unconditionally.
 | ||
|  | #     This generates a warnings if one or both slave threads are
 | ||
|  | #     already stopped.  If $rpl_only_running_threads is set, this
 | ||
|  | #     script checks which slave threads are running, and issues either
 | ||
|  | #     STOP SLAVE, STOP SLAVE SQL_THREAD, STOP SLAVE IO_THREAD, or
 | ||
|  | #     nothing.
 | ||
|  | #
 | ||
|  | #   $slave_timeout
 | ||
|  | #     See include/wait_for_slave_param.inc
 | ||
|  | #
 | ||
|  | #   $rpl_debug
 | ||
|  | #     See include/rpl_init.inc
 | ||
|  | 
 | ||
|  | 
 | ||
|  | --let $include_filename= stop_slave.inc | ||
|  | --source include/begin_include_file.inc | ||
|  | 
 | ||
|  | 
 | ||
|  | if (!$rpl_debug) | ||
|  | { | ||
|  |   --disable_query_log | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | if ($rpl_only_running_threads) | ||
|  | { | ||
|  |   --let $_slave_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1) | ||
|  |   --let $_slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1) | ||
|  |   if ($rpl_debug) | ||
|  |   { | ||
|  |     --echo Stop SQL: $_slave_sql_running; Stop IO: $_slave_io_running | ||
|  |   } | ||
|  | 
 | ||
|  |   --let $_slave_running_bits= `SELECT IF('$_slave_io_running' = 'Yes', 1, 0) + IF('$_slave_sql_running' = 'Yes', 2, 0)` | ||
|  |   if ($_slave_running_bits) | ||
|  |   { | ||
|  |     --dec $_slave_running_bits | ||
|  |     # $_slave_running_bits=1: io thread running
 | ||
|  |     if (!$_slave_running_bits) | ||
|  |     { | ||
|  |       --source include/stop_slave_io.inc | ||
|  |     } | ||
|  |     --dec $_slave_running_bits | ||
|  |     # $_slave_running_bits=2: sql thread running
 | ||
|  |     if (!$_slave_running_bits) | ||
|  |     { | ||
|  |       --source include/stop_slave_sql.inc | ||
|  |     } | ||
|  |     --dec $_slave_running_bits | ||
|  |     # $_slave_running_bits=2: both threads running
 | ||
|  |     if (!$_slave_running_bits) | ||
|  |     { | ||
|  |       STOP SLAVE; | ||
|  |       --source include/wait_for_slave_to_stop.inc | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | if (!$rpl_only_running_threads) | ||
|  | { | ||
|  |   STOP SLAVE; | ||
|  |   --source include/wait_for_slave_to_stop.inc | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | --let $include_filename= stop_slave.inc | ||
|  | --source include/end_include_file.inc |