MySQL Replication

Abstract

This is the MySQL Replication extract from the MySQL 5.6 Reference Manual.

For legal information, see the Legal Notices.

For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users.

Document generated on: 2020-09-30 (revision: 67527)


Table of Contents

Preface and Legal Notices
1 Replication
2 Replication Configuration
2.1 How to Set Up Replication
2.1.1 Setting the Replication Source Configuration
2.1.2 Setting the Replica Configuration
2.1.3 Creating a User for Replication
2.1.4 Obtaining the Replication Source 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 Source and Replicas
2.1.8 Setting Up Replication with Existing Data
2.1.9 Introducing Additional Replicas to an Existing Replication Environment
2.1.10 Setting the Source Configuration on the Replica
2.2 Replication Formats
2.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
2.2.2 Usage of Row-Based Logging and Replication
2.2.3 Determination of Safe and Unsafe Statements in Binary Logging
2.3 Replication with Global Transaction Identifiers
2.3.1 GTID Concepts
2.3.2 Setting Up Replication Using GTIDs
2.3.3 Using GTIDs for Failover and Scaleout
2.3.4 Restrictions on Replication with GTIDs
2.3.5 Disabling GTID Transactions
2.4 Replication and Binary Logging Options and Variables
2.4.1 Replication and Binary Logging Option and Variable Reference
2.4.2 Replication Source Options and Variables
2.4.3 Replica Server Options and Variables
2.4.4 Binary Log Options and Variables
2.4.5 Global Transaction ID Options and Variables
2.5 Common Replication Administration Tasks
2.5.1 Checking Replication Status
2.5.2 Pausing Replication on the Slave
3 Replication Solutions
3.1 Using Replication for Backups
3.1.1 Backing Up a Replica Using mysqldump
3.1.2 Backing Up Raw Data from a Replica
3.1.3 Backing Up a Source or Replica by Making It Read Only
3.2 Handling an Unexpected Halt of a Replica Server
3.3 Using Replication with Different Source and Replica Storage Engines
3.4 Using Replication for Scale-Out
3.5 Replicating Different Databases to Different Replicas
3.6 Improving Replication Performance
3.7 Switching Sources During Failover
3.8 Setting Up Replication to Use Encrypted Connections
3.9 Semisynchronous Replication
3.9.1 Semisynchronous Replication Administrative Interface
3.9.2 Semisynchronous Replication Installation and Configuration
3.9.3 Semisynchronous Replication Monitoring
3.10 Delayed Replication
4 Replication Notes and Tips
4.1 Replication Features and Issues
4.1.1 Replication and AUTO_INCREMENT
4.1.2 Replication and BLACKHOLE Tables
4.1.3 Replication and Character Sets
4.1.4 Replication and CHECKSUM TABLE
4.1.5 Replication of CREATE SERVER, ALTER SERVER, and DROP SERVER
4.1.6 Replication of CREATE ... IF NOT EXISTS Statements
4.1.7 Replication of CREATE TABLE ... SELECT Statements
4.1.8 Replication of CURRENT_USER()
4.1.9 Replication with Differing Table Definitions on Source and Replica
4.1.10 Replication and DIRECTORY Table Options
4.1.11 Replication of DROP ... IF EXISTS Statements
4.1.12 Replication and Floating-Point Values
4.1.13 Replication and FLUSH
4.1.14 Replication and Fractional Seconds Support
4.1.15 Replication and System Functions
4.1.16 Replication of Invoked Features
4.1.17 Replication and LIMIT
4.1.18 Replication and LOAD DATA
4.1.19 Replication and max_allowed_packet
4.1.20 Replication and MEMORY Tables
4.1.21 Replication of the mysql System Database
4.1.22 Replication and the Query Optimizer
4.1.23 Replication and Partitioning
4.1.24 Replication and REPAIR TABLE
4.1.25 Replication and Reserved Words
4.1.26 Replication and Source or Replica Shutdowns
4.1.27 Replica Errors During Replication
4.1.28 Replication and Server SQL Mode
4.1.29 Replication and Temporary Tables
4.1.30 Replication Retries and Timeouts
4.1.31 Replication and Time Zones
4.1.32 Replication and Transactions
4.1.33 Replication and Triggers
4.1.34 Replication and TRUNCATE TABLE
4.1.35 Replication and Variables
4.1.36 Replication and Views
4.2 Replication Compatibility Between MySQL Versions
4.3 Upgrading a Replication Setup
4.4 Troubleshooting Replication
4.5 How to Report Replication Bugs or Problems
5 Replication Implementation
5.1 Replication Threads
5.1.1 Monitoring Replication Main Threads
5.1.2 Monitoring Replication Applier Worker Threads
5.2 Relay Log and Replication Metadata Repositories
5.2.1 The Relay Log
5.2.2 Replication Metadata Repositories
5.3 How Servers Evaluate Replication Filtering Rules
5.3.1 Evaluation of Database-Level Replication and Binary Logging Options
5.3.2 Evaluation of Table-Level Replication Options
5.3.3 Interactions Between Replication Filtering Options