Tuesday, 4 May 2010

SQL Server Replication - Replication Agents

My first post in my replication series gave a brief overview of replication, before I dive into setting up and configuring the different types of replication I wanted to look a little more closely at the respective agents and the role they play in the different types of replication.

Replication Agents

Snapshot Agent - usually resides on the distributor server, it is used in all types of replication. The Snapshot Agent makes a copy of the schema objects and the data in the tables to published and stores them in  snapshot files in the snapshot folder, information about the snapshot  is stored in the distribution database.
Log Reader Agent - This is used in transactional replication. The log reader agent monitors the transaction log of all databases involved in replication. it monitors changes in the data marked for replication in the publication database's  transaction log and sends them to the distributor server. The transactions are held here until they are are ready to be sent to the subscribers.
Queue Reader Agent - is used with transactional replication and updateable subscribers publication type... The agent is run at the distributor and moves changes made at the subscriber back to the publisher.
Distribution Agent - is used in both snapshot and transactional replication. Its role is to move the snapshot and transactions stored at the distributor to the subscribing servers. In pull replication this agent lives on the subscribers and in push scenario it resides on the distributor server.
Merge Agent - surprisingly is used in Merge Replication. Unless you are using MERGE replication you will not be utilising this agent. This agent applies the initial snapshot to the subscriber servers. changes made after the initial synchronisation are monitored and merged to the subscribers ...This is the agent that is responsible for resolving update conflicts.


So these are the replication agents I will try and point out the how they work with each type of replication when we look at setting up and configuring replication.