COM_BINLOG_DUMP
This is a command the slave sends to the master after COM_REGISTER_SLAVE.
The master server sends the binlog events from the requested file and position, or if GTID registration is in use, from the GTID value set in the earlier registration phase.
The payload is:
uint<1> command (COM_BINLOG_DUMP = 0x12)
uint<4> The requested binlog position
uint<2> Flags
uint<4> Slave server_id
string The requested binlog file name
Note
Flags, usually set to 0. It can be set to BINLOG_SEND_ANNOTATE_ROWS_EVENT (0x02) if the slave server wants to receive the MariaDB 10 ANNOTATE_ROWS events. It can also be set to BINLOG_DUMP_NON_BLOCK (1): in the case the slave is receiving an EOF packet after last event sent by the master.
Requested binlog position can be 4 when registering to master server for the very first time or when requesting events from a particular binlog file from the beginning of it.
The requested binlog file can empty when registering for the very first time if master log file is unknown or with GTID registration (not required).
After sending events to the replica the server kills connection.
When replication resumes or it is restarted (STOP SLAVE; START SLAVE) the slave server always sends the latest binlog file name and position even if GTID registration is in place.
Example of COM_BINLOG_DUMP
1b 00 00 00 12 34 06 00 00 02 00 75 27 00 00 6d .....4.....u'..m
79 73 71 6c 2d 62 69 6e 2e 30 30 30 30 33 34 ysql-bin.000034
After 4 bytes network protocol header we can see:
command [1] = 12
requested binlog position [4] = 34 06 00 00 => 00 00 06 34 = 1588
flags [2] = 02 00 => 2 = BINLOG_SEND_ANNOTATE_ROWS_EVENT
binlog file[n] = mysql-bin.000034
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?