What is Database Replication ?
Published: 2023-04-21 20:27:42

---
title: What is Database Replication ?
published: true
date: 2023-04-17 07:59:07 UTC
tags: 
canonical_url: https://harshmange.hashnode.dev/what-is-database-replication
---

## Introduction

Database replication is the process of copying data from one database to another to ensure redundancy, availability, and fault tolerance. It involves creating multiple copies of a database and synchronizing them to ensure that they contain the same data. This can be useful for improving performance, providing backups, and enabling distributed access to data.

## Why do we need it?

Let's consider an example to understand the concept of database replication in more detail. Suppose you have a website that contains a database with customer information, including their name, email, and order history. You want to ensure that the website is always available and can handle high traffic, even if the main database fails. To achieve this, you can set up database replication.

## Types of Database Replication (Major)

1. 
### Master-slave replication

In this type of replication, one database server acts as the master, and one or more servers act as slaves. The master database is the primary database that receives all the writes, while the slave databases receive copies of the data from the master. The slaves can be used for read-only operations or as backups in case the master fails.

2. 
### Master-master replication

In this type of replication, multiple database servers act as both master and slave. Each server can receive writes and read requests, and changes are propagated to all the other servers in the cluster. This type of replication can provide better fault tolerance and scalability than master-slave replication.

3. 
### Multi-master replication

In this type of replication, multiple databases act as both master and slave, and each server can receive writes and read requests. Unlike master-master replication, changes are not propagated to all the other servers in the cluster, but only to a subset of them. This type of replication can provide better performance than master-master replication but requires careful management to avoid conflicts.

## Example

Let's assume that we are using master-slave replication for our website's database. The master database is the primary database that receives all the writes, while the slave databases receive copies of the data from the master. The slave databases can be used for read-only operations or as backups in case the master fails.

To set up database replication, we first need to configure the master database to enable replication. This involves creating a replication user and granting it the appropriate permissions. We then need to configure the slave databases to connect to the master database and start replicating the data. This involves setting the replication parameters, such as the master server address, the replication user, and the replication mode.

Once replication is set up, any changes made to the master database are automatically propagated to the slave databases. This ensures that all the databases contain the same data and are synchronized. If the master database fails, we can promote one of the slave databases to become the new master and continue processing requests.