During replication, a slave server creates several logs that hold the binary log events relayed from the master to the slave, and record information about the current status and location within the relay log. There are three types of logs used in the process, listed here:
The relay log consists of the events read from the binary log of the master and written by the slave I/O thread. Events in the relay log are executed on the slave as part of the SQL thread.
The master info log contains status and current configuration information for the slave's connection to the master. This log holds information on the master host name, login credentials, and coordinates indicating how far the slave has read from the master's binary log. The master info log is written to the
mysql.slave_master_info
table.The relay log info log holds status information about the execution point within the slave's relay log. The relay log is written to the
mysql.slave_relay_log_info
table.
In MySQL 8.0, a warning is given when mysqld is unable to initialize the replication logging tables, but the slave is allowed to continue starting. This situation is most likely to occur when upgrading from a version of MySQL that does not support slave logging tables to one in which they are supported.
In MySQL 8.0, execution of any statement requiring a
write lock on either or both of the
slave_master_info
and
slave_relay_log_info
tables is disallowed while
replication is ongoing, while statements that perform only reads
are permitted at any time.
Do not attempt to update or insert rows in the
slave_master_info
or
slave_relay_log_info
tables manually. Doing
so can cause undefined behavior, and is not supported.
Making replication resilient to unexpected halts.
The mysql.slave_master_info
and
mysql.slave_relay_log_info
tables are created
using the transactional storage engine
InnoDB
. Updates to the relay log
info log table are committed together with the transactions,
meaning that the slave's progress information recorded in that
log is always consistent with what has been applied to the
database, even in the event of an unexpected server halt. The
--relay-log-recovery
option must
be enabled on the slave to guarantee resilience. For more
details, see
Section 17.3.2, “Handling an Unexpected Halt of a Replication Slave”.