Table of Contents
- 2.1 How to Set Up Replication
- 2.1.1 Setting the Replication Master Configuration
- 2.1.2 Setting the Replication Slave Configuration
- 2.1.3 Creating a User for Replication
- 2.1.4 Obtaining the Replication Master Binary Log Coordinates
- 2.1.5 Creating a Data Snapshot Using mysqldump
- 2.1.6 Creating a Data Snapshot Using Raw Data Files
- 2.1.7 Setting Up Replication with New Master and Slaves
- 2.1.8 Setting Up Replication with Existing Data
- 2.1.9 Introducing Additional Slaves to an Existing Replication Environment
- 2.1.10 Setting the Master Configuration on the Slave
- 2.2 Replication Formats
- 2.3 Replication with Global Transaction Identifiers
- 2.4 Replication and Binary Logging Options and Variables
- 2.5 Common Replication Administration Tasks
Replication between servers in MySQL is based on the binary logging mechanism. The MySQL instance operating as the master (the source of the database changes) writes updates and changes as “events” to the binary log. The information in the binary log is stored in different logging formats according to the database changes being recorded. Slaves are configured to read the binary log from the master and to execute the events in the binary log on the slave's local database.
You cannot configure the master to log only certain events.
The master is “dumb” in this scenario. Once binary logging has been enabled, all statements are recorded in the binary log. Each slave receives a copy of the entire contents of the binary log. It is the responsibility of the slave to decide which statements in the binary log should be executed; you cannot configure the master to log only certain events. If you do not specify otherwise, all events in the master binary log are executed on the slave. If required, you can configure the slave to process only events that apply to particular databases or tables.
Each slave keeps a record of the binary log coordinates: The file name and position within the file that it has read and processed from the master. This means that multiple slaves can be connected to the master and executing different parts of the same binary log. Because the slaves control this process, individual slaves can be connected and disconnected from the server without affecting the master's operation. Also, because each slave records the current position within the binary log, it is possible for slaves to be disconnected, reconnect and then resume processing.
The master and each slave must be configured with a unique ID (using
server_id system variable). In
addition, each slave must be configured with information about the
master host name, log file name, and position within that file.
These details can be controlled from within a MySQL session using
CHANGE MASTER TO statement on the
slave. The details are stored within the slave's master info
repository, which can be either a file or a table (see
Section 5.2, “Replication Relay and Status Logs”).
This section describes the setup and configuration required for a replication environment, including step-by-step instructions for creating a new replication environment. The major components of this section are:
For a guide to setting up two or more servers for replication, Section 2.1, “How to Set Up Replication”, deals with the configuration of the systems and provides methods for copying data between the master and slaves.
Events in the binary log are recorded using a number of formats. These are referred to as statement-based replication (SBR) or row-based replication (RBR). A third type, mixed-format replication (MIXED), uses SBR or RBR replication automatically to take advantage of the benefits of both SBR and RBR formats when appropriate. The different formats are discussed in Section 2.2, “Replication Formats”.
Detailed information on the different configuration options and variables that apply to replication is provided in Section 2.4, “Replication and Binary Logging Options and Variables”.
Once started, the replication process should require little administration or monitoring. However, for advice on common tasks that you may want to execute, see Section 2.5, “Common Replication Administration Tasks”.