The term high availability defines a state of continuous operation for a specified length of time.
Reliability engineering use three principles of systems design to help achieve high availability:elimination of single points of failure (SPOFs),reliable crossover or fail over points ,and failure detection capabilities (including monitoring)
Redundancy is required for many components to achieve high availability.
Replication enables data from one MySQL database server(Known as a source) to be copied to one or more other MySQL database servers.(known as replicas). MySQL replication by default is asynchronous replication,the source writes events to its binary log,and replicas request them when ready.
Asynchronous replication provides lower write latency since a write is acknowledged locally by a source before being written to the replicas.
MySQL implements its replication capabilities using three main threads,one on the source server and two on the replicas:
- Binary log dump thread
- Replication I/O thread
- Replication SQL thread
Replication works because events written to the binary log are read from the source and then processed on the replica.The events are recorded within the binary log in different formats according to the type of event.MySQL replication has three kinds of binary logging formats.
- Row-based replication(RBR)
- Statement-based replication(SBR)
- Mixed replication