Top 21 Database Replication Interview Questions You Must Prepare 04.Dec.2022

Sp_replcounters is a system stored procedure that returns information about the traction rate, latency, and first and last log sequence number (LSN) for each publication on a server. This is run on the publishing server. Running this stored procedure on a server that is acting as the distributor or subscribing to publications from another server will not return any data.

One option is to replicate stored procedure execution instead of the actual DELETE command.  You can create two different versions of the stored procedures one on the publisher that does the delete and the other on the subscriber that does not do the delete.

Another option is to not replicate DELETE commands.

Replication is not dependent on any particular recovery model. A database can participate in replication whether it is in simple, bulk-logged, or full. However how data is tracked for replication depends on the type of replication used.

Tracer tokens were introduced with SQL Server 2005 tractional replication as a way to monitor the latency of delivering tractions from the publisher to the distributor and from the distributor to the subscriber(s). For details, please refer tip to this tip: Monitor SQL Server replication latency using tracer tokens.

At first data and object is synchronized between publisher and subscribers. The snapshot is created on the publisher and trmitted to subscribers. All the subsequent changes on the publisher are stored in distribution database. Subscriber receives the data either using push or pull mechanism as configured from distribution database.

Server to Server Replication:-

  1. Improving scalability and availability
  2. Data warehousing and reporting
  3. Integrating data from multiple sites
  4. Integrating heterogeneous data
  5. Offloading batch processing

Sverer to Client Replication:-

  1. Exchanging data with mobile users
  2. Retail point of sale (POS) applications
  3. Integrating data from multiple sites

There are 3 types of replication:

  1. Snap shot replication
  2. Merge replication
  3. Trasctinal Replication

Yes this can be done and there are no restrictions on the number or types of publications that can use the same distribution database. One thing to note though is that all publications from a Publisher must use the same Distributor and distribution database.

  • sys.dm_repl_articles - Contains information about each article being published. It returns data from the database being published and returns a row for each object being published in each article.
  • sys.dm_repl_schemas - Contains information about each table and column being published. It returns data from the database being published and returns one row for each column in each object being published.
  • sys.dm_repl_traninfo - Contains information about each traction in a tractional replication.

Replication is the process of distributing data from one database to another on the same server or servers connected through LAN or the internet. Replication is used to synchronize data between databases that may be at remote location.

  • Snapshot Agent
  • Log Reader Agent
  • Distribution Agent

The easiest way to monitor replication activity and performance is to use replication monitor. To monitor replication, a user must be a member of the sysadmin fixed server role at the Distributor or a member of the replmonitor fixed database role in the distribution database. A system administrator can add any user to the replmonitor role, which allows that user to view replication activity in Replication Monitor; however, the user cannot administer replication.

There are a number of possible causes for data not being delivered to Subscribers:

  • The table is filtered, and there are no changes to deliver to a given Subscriber.
  • One or more agents are not running or are failing with an error.
  • Data is deleted by a trigger, or a trigger includes a ROLLBACK statement.
  • A tractional subscription was initialized without a snapshot, and changes have occurred on the Publisher since the publication was created.
  • Replication of stored procedure execution for a tractional publication produces different results at the Subscriber.
  • The INSERT stored procedure used by a tractional article includes a condition that is not met.
  • Data is deleted by a user, a replication script, or another application.

  • This allows both publisher and subscriber to work independently, online or offline and merges the changes later.
  • Here changes are track on both publisher and subscriber and then merged.

Locking depends on the type of replication used:

  • In snapshot replication, the snapshot agent locks the object during the entire snapshot generation process.
  • In tractional replication, locks are acquired initially for a very brief time and then released. Normal operations on a database can continue after that.
  • In merge replication, no locks are acquired during the snapshot generation process.

It is used when changes are frequent. The replication agent monitors the changes at the publisher and distributes the changes to the subscribers. Tractional Replication is required where up to date data is required.

  • Snapshot of entire data is copied from publisher to the subscriber's database on regular interval.
  • This kind of replication is used for replicating data that doesn’t change frequently.
  • It is used where the source can manage with out of date data.
  • This replication is considered when amount of data to be replicated is small.

Yes this can be done using heterogeneous replication. In SQL Server 2000, publishing data to other databases such as DB2 or Oracle was supported; however, publishing data from other databases was not supported without custom programming. In SQL Server 2005 and later versions, Oracle databases can be directly replicated to SQL Server in much the same way as standard SQL Server replication.  For more information, please read tip: Introduction to SQL Server Heterogeneous Replication.

Yes. Schema changes to tables must be made by using Tract-SQL or SQL Server Management Objects (SMO). When schema changes are made in SQL Server Management Studio, Management Studio attempts to drop and re-create the table and since you cannot drop a published objects, the schema change will fail.

Snapshot Agent:- The Snapshot Agent is used with all types of replication. It prepares the schema and the initial bulk copy files of published tables and other objects, stores the snapshot files, and records information about synchronization in the distribution database. The Snapshot Agent runs at the Distributor.

Log Reader Agent:-

  • The Log Reader Agent is used with tractional replication. It moves tractions marked for replication from the traction log on the Publisher to the distribution database. Each database.
  • Published using tractional replication has its own Log Reader Agent that runs on the Distributor and connects to the Publisher (the Distributor can be on the same computer as the Publisher).

Distribution Agent:- The Distribution Agent is used with snapshot replication and tractional replication. It applies the initial snapshot to the Subscriber and moves tractions held in the distribution database to Subscribers. The Distribution Agent runs at either the Distributor for push subscriptions or at the Subscriber for pull subscriptions.

Merge Agent:- The Merge Agent is used with merge replication. It applies the initial snapshot to the Subscriber and moves and reconciles incremental data changes that occur. Each merge subscription has its own Merge Agent that connects to both the Publisher and the Subscriber and updates both. The Merge Agent runs at either the Distributor for push subscriptions or the Subscriber for pull subscriptions.

Queues Reader Agent:- The Queue Reader Agent is used with tractional replication with the queued updating option. The agent runs at the Distributor and moves changes made at the Subscriber back to the Publisher. Unlike the Distribution Agent and the Merge Agent, only one instance of the Queue Reader Agent exists to service all Publishers and publications for a given distribution database.