Open In App

Types of Database Replication

Database replication is like making copies of your important documents so you have backups in case something happens to the original. There are different ways to make these copies, like having one main copy (master) that gets updated and then making copies (slaves) of that updated version. Another way is to have multiple main copies (masters) that can all be updated and share those updates. In this article, we will see different types of database replication.



Let’s understand the types of database replication:



1. Master-Slave Replication

Master-slave replication is a method used to copy and synchronize data from a primary database (the master) to one or more secondary databases (the slaves).

1.1. How Master-Slave Replication generally works

In master-slave replication, communication occurs from the master database to the slave database(s). The communication process involves the following steps:

  1. Write Operations: When a write operation (such as an insert, update, or delete) is performed on the master database, the master records the change in its transaction log.
  2. Replication Process: The master database has a replication process or thread that reads the transaction log and sends the changes (or updates) to the slave database(s).
  3. Network Communication: The changes are transmitted over the network from the master to the slave(s). This communication can be synchronous or asynchronous, depending on the configuration.
  4. Applying Changes: Upon receiving the changes, the slave database applies them to its own copy of the data. The slave may also have a replication process or thread that manages this process.
  5. Acknowledgment: Once the changes are applied, the slave sends an acknowledgment back to the master to confirm that the changes have been received and applied successfully.

1.2 Real-World Analogy of Master-Slave Replication

Imagine a library with two branches

1.3 Applications of Master-Slave Replication

Below are the applications of Master-Slave Replication:

1.4. Benefits of Master-Slave Replication

Below are the benefits of Master-Slave Replication:

1.5. Challenges of Master-Slave Replication

Below are the challenges of Master-Slave Replication:

2. Master-Master Replication

Master-master replication, also known as bidirectional replication, is a setup in which two or more databases are configured as master databases, and each master can accept write operations. This means that changes made to any master database are replicated to all other master databases in the configuration.

2.1. How Master-Master Replication generally works

In master-master replication, communication occurs bidirectionally between the master nodes. Each master node is responsible for accepting write operations and replicating these writes to the other master nodes in the system. The communication process typically involves the following steps:

2.2 Real-World Analogy of Master-Master Replication

Imagine two highly trained air traffic controllers managing air traffic in a busy airspace

2.3 Applications of Master-Master Replication

Below are the applications of Master-Master Replication:

2.4. Benefits of Master-Master Replication

Below are the benefits of Master-Master Replication:

2.5. Challenges of Master-Master Replication:

Below are the challenges of Master-Master Replication:

3. Snapshot Replication

Snapshot replication is a method used in database replication to create a copy of the entire database at a specific point in time and then replicate that snapshot to one or more destination servers. This is typically done for reporting, backup, or distributed database purposes.

3.1. How Snapshot Replication generally works:

Snapshot replication essentially involves taking a snapshot of the entire database at the publisher, storing it in a distribution database, and then replicating the changes from the publisher to the subscribers based on a predefined schedule or trigger.

It’s like taking a picture of the database and then sending that picture to other servers, which can be useful for reporting, backup, or creating a read-only copy of the database for different purposes.

  1. Initial Snapshot:
    • A full copy of the database is taken at the publisher (source database server).
    • This snapshot includes all the tables, data, and schema at a specific point in time.
  2. Distribution:
    • The snapshot is stored in a distribution database.
    • This database acts as a repository for the snapshot and the subsequent changes.
  3. Replication Process:
    • Changes (inserts, updates, deletes) made to the publisher’s database are tracked.
    • These changes are stored in the distribution database.
    • The distribution database periodically replicates these changes to subscriber databases (destination servers).
  4. Subscriber Updates:
    • Subscribers receive the replicated changes from the distribution database.
    • They apply these changes to their own databases to keep them synchronized with the publisher.

3.2 Real-World Analogy of Snapshot Replication

Imagine taking a photo of a messy room (database) at a specific time

3.3 Applications of Snapshot Replication

Below are the applications of Snapshot Replication:

3.4. Benefits of Snapshot Replication

Below are the benefits of Snapshot Replication

3.5. Challenges of Snapshot Replication

Below are the challenges of Snapshot Replication:

4. Transactional Replication

Transactional replication is a method for keeping multiple copies of a database synchronized in real-time.

4.1. How Transactional Replication generally works

  1. Publisher and Subscriber: You define a table or set of tables in the publisher database that you want to replicate. Each subscriber database receives updates for these specific tables.
  2. Changes are Tracked: The publisher continuously monitors the selected tables for any changes, such as inserts, updates, or deletes.
  3. Transactions Captured: Each change is grouped into a transaction, ensuring data integrity and consistency.
  4. Distributor Sends Updates: A central server called the distributor receives the transactions from the publisher and prepares them for distribution to the subscribers.
  5. Subscribers Apply Updates: The subscribers receive the transactions from the distributor and apply them to their local copies of the tables, maintaining data consistency.

4.2 Real-World Analogy of Transactional Replication

Picture a live stock market with constantly changing prices

4.3 Applications of Transactional Replication

Below are the applications of Transactional Replication:

4.4. Benefits of Transactional Replication

Below are the benefits of Transactional Replication

4.5. Challenges of Transactional Replication

Below are the challenges of Transactional Replication:

5. Merge Replication

Merge replication is a database synchronization method allowing both the central server (publisher) and its connected devices (subscribers) to make changes to the data, resolving conflicts when necessary.

This definition captures the key essence of merge replication in a concise and accurate way, highlighting its two main characteristics:

5.1. How Merge Replication generally works

  1. Publisher and Subscribers: Similar to other methods, you define tables in the publisher database for replication. Subscribers can also have read/write access to these tables.
  2. Changes are Tracked: Both the publisher and subscribers track changes made to the tables.
  3. Conflicts are Possible: Since both sides can modify data, conflicts can occur when different changes are made to the same data item.
  4. Synchronization and Conflict Resolution: When a subscriber connects to the network, it sends its changes to the publisher. The publisher merges these changes with its own and other subscribers’ changes. If conflicts arise, pre-defined rules determine which change takes precedence.
  5. Updates Distributed: The resolved updates are then distributed back to all subscribers, ensuring everyone has the latest data.

5.2 Real-World Analogy of Merge Replication

Imagine a team working on a shared document (database) in Google Docs

5.3 Applications of Merge Replication

Below are the applications of Merge Replication:

5.4. Benefits of Merge Replication

Below are the benefits of Merge Replication:

5.5. Challenges of Merge Replication

Below are the challenges of Merge Replication:

6. Differences between Master-Slave Replication and Master-Master Replication

Below are the differences between Master-Slave Replication and Master-Master Replication:

Aspect Master-Slave Replication Master-Master Replication
Data Flow One-way: from master to slave Bi-directional: between masters
Write Operations Only master allows writes; slaves are read-only Both masters allow writes
Read Operations Slaves can handle read operations Both masters can handle read operations
Data Consistency Asynchronous, potential delay in consistency Can be synchronous, immediate consistency possible
Conflict Resolution Simpler, conflicts less likely due to one-way flow More complex, conflicts may occur and need resolution

7. Differences between Snapshot Replication and Transactional Replication

Below are the differences between Snapshot Replication and Transactional Replication:

Aspect Snapshot Replication Transactional Replication
Data Capture Takes a point-in-time snapshot of the entire database Captures and replicates individual transactions in real-time
Frequency of Updates Typically used for less frequent updates Used for more frequent updates, providing near real-time replication
Size of Data Transfer Transfers the entire dataset during each replication cycle Transfers only the changes made since the last replication cycle, reducing data transfer
Consistency Provides a consistent snapshot of the database at a specific point in time Maintains near real-time consistency between the publisher and subscribers
Use Cases Suitable for reporting, backup, or distributing read-only copies of the database Used for scenarios where near real-time data synchronization is required

8. Conclusion

In conclusion, database replication is a fundamental concept in system design that plays a crucial role in ensuring data availability, scalability, and fault tolerance. By understanding these above types of replication and their respective use cases, system designers can make informed decisions to meet the specific requirements of their applications, ensuring data integrity, availability, and performance.


Article Tags :