How to synchronize two (or n) replication processes for SQL Server databases?

Posted by Yauheni Sivukha on Stack Overflow See other posts from Stack Overflow or by Yauheni Sivukha
Published on 2010-06-08T07:29:27Z Indexed on 2010/06/13 8:42 UTC
Read the original article Hit count: 140

There are two master databases and two read-only copies updated by standard transactional replication. It is needed to map some entity from both read-only databases, lets say that A databases contains orders and B databases contains lines.

Replication

The problem is that replication to one database can lag behind replication of second database, and at the moment of mapping R-databases will have inconsistent data. For example.

We stored 2 orders with lines at 19:00 and 19:03. Mapping process started at 19:05, but to the moment of mapping A database replication processed all changes up to 19:03, but B database replication processed only changes up to 19:00. After mapping we will have order entity with order as of 19:03 and lines as of 19:00. The troubles are guaranteed:)

In my particular case both databases have temporal model, so it is possible to fetch data for every time slice, but the problem is to identify time of latest replication.

Question: How to synchronize replication processes for several databases to avoid situation described above? Or, in other words, how to compare last time of replication in each database?

UPD:

The only way I see to synchronize is to continuously write timestamps into service tables in each database and to check these timestamps on replicated servers. Is that acceptable solution?

© Stack Overflow or respective owner

Related posts about sql-server

Related posts about sql-server-2008