Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Database Replication or Mirroring?

What is the difference between Replication and Mirroring in SQL server 2005?

like image 414
Server_Mule Avatar asked May 29 '09 03:05

Server_Mule


People also ask

What is the difference between mirroring and copying?

Your understanding of Mirror is correct - Mirror always creates a new object. Even for a component, Mirror creates a totally new component. Copy/Paste acts differently for Bodies and Components, so that is important to understand, as well. Component Copy/Paste is not really a true "Copy/Paste" operation.

Which of the two would you prefer database mirroring or database replication?

Replication is cheaper as compared to Mirroring. Mirroring is not applicable in case of Distributed databases. Replication can be easily implemented in case of distributed databases. Mirroring is done to create a copy of database on different hardware and on different location to serve as backup location.

What is mirroring in database?

A database mirror is a complete backup of the database that can be used if the primary database fails. Transactions and changes to the primary database are transferred directly to the mirror and processed immediately so the mirror is always up-to-date and available as a “hot” standby.

What is a replication in database?

Replication is the process of copying data from a central database to one or more databases. The central database is called the publication database because it provides the data for users at other sites. The data in the publication database is copied (replicated) to subscription databases at other locations.


2 Answers

In short, mirroring allows you to have a second server be a "hot" stand-by copy of the main server, ready to take over any moment the main server fails. So mirroring offers fail-over and reliability.

Replication, on the other hand, allows two or more servers to stay "in sync" - that means the secondary servers can answer queries and (depending on setup) actually change data (it will be merged in the sync). You can also use it for local caching, load balancing, etc.

like image 58
Danut Enachioiu Avatar answered Oct 12 '22 12:10

Danut Enachioiu


Mirroring is a feature that creates a copy of your database at bit level. Basically you have the same, identical, database in two places. You cannot optionally leave out parts of the database. You can have only one mirror, and the 'mirror' is always offline (it cannot be modified). Mirroring works by shipping the database log as is being created to the mirror and apply (redo-ing) the log on the mirror. Mirroring is a technology for high availability and disaster recoverability.

Replication is a feature that allow 'slices' of a database to be replicated between several sites. The 'slice' can be a set of database objects (ie. tables) but it can also contain parts of a table, like only certain rows (horizontal slicing) or only certain columns to be replicated. You can have multiple replicas and the 'replicas' are available to query and even can be updated. Replication works by tracking/detecting changes (either by triggers or by scanning the log) and shipping the changes, as T-SQL statements, to the subscribers (replicas). Replication is a technology for making data available at off sites and to consolidate data to central sites. Although it is sometimes used for high availability or for disaster recoverability, it is an artificial use for a problem that mirroring and log shipping address better.

There are several types and flavours of replication (merge, transactional, peer-to-peer etc.) and they differ in how they implement change tracking or update propagation, if you want to know more details you should read the MSDN spec on the subject.

like image 24
Remus Rusanu Avatar answered Oct 12 '22 14:10

Remus Rusanu