summaryrefslogtreecommitdiff
path: root/mysql-test/include/sync_with_master_gtid.inc
blob: 777711b979c69692c70ad86f27a5b92acf19c2dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# ==== Purpose ====
#
# Wait until the slave has reached a certain GTID position.
# Similar to --sync_with_master, but using GTID instead of old-style
# binlog file/offset coordinates.
#
#
# ==== Usage ====
#
# --let $master_pos= `SELECT @@GLOBAL.gtid_binlog_pos`
# [--let $slave_timeout= NUMBER]
# [--let $rpl_debug= 1]
# --source include/sync_with_master_gtid.inc
#
# Syncs slave to the specified GTID position.
#
# Must be called on the slave.
#
# Parameters:
#   $master_pos
#     The GTID position to sync to. Typically obtained from
#      @@GLOBAL.gtid_binlog_pos on the master.
#
#   $slave_timeout
#      Timeout in seconds. The default is 2 minutes.
#
#   $rpl_debug
#      See include/rpl_init.inc

--let $include_filename= sync_with_master_gtid.inc
--source include/begin_include_file.inc

let $_slave_timeout= $slave_timeout;
if (!$_slave_timeout)
{
  let $_slave_timeout= 120;
  if ($VALGRIND_TEST)
  {
    let $_slave_timeout= 1200;
  }
}

--let $_result= `SELECT master_gtid_wait('$master_pos', $_slave_timeout)`
if ($_result == -1)
{
  --let $_current_gtid_pos= `SELECT @@GLOBAL.gtid_slave_pos`
  --echo Timeout in master_gtid_wait('$master_pos', $_slave_timeout), current slave GTID position is: $_current_gtid_pos.
  --die Failed to sync with master
}

--let $include_filename= sync_with_master_gtid.inc
--source include/end_include_file.inc