Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I have established SQL Server Replication between SQL Server 2005 and 2008 R2. SQL Server 2005 is the publisher while SQL Server 2008 R2 is the subscriber. The replicated database is about 40GB.

My replication was working most of time OK for few years. A few days ago I saw that I have missing rows inside few tables. When I check manually I see which rows I have missing. When I check replication monitor I see no errors and all looks nice. My trace tokens said that there is no latency.

But I know that there is no rows.

Now I want to manually transfer these rows from publisher to subscriber.

I do not want to reinitialize my replication because when I do that all my statistic go away and my users become to suffer with performance when start using fresh database.

Other thing that my publisher is very poor with performance and reinitialization took a long time to finish and I do not have enough time to stop my app during that process.

Is there an easy way to force the publisher to resend missing data to subscriber beside reinitializing the whole replication again? Is there a way to keep my statistic and indexes on subscriber database after reinitializing that, so I do not lose my performance?

share|improve this question

1 Answer 1

You will need to run a validation to determine how out of sync your publisher and subscriber are. Then, use the tablediff utility or Red Gate SQL Data Compare to generate the script(s) necessary to get the subscriber back in sync. Then apply the script(s) at subscriber to bring the data back into convergence.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.