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 two databases (both SQL Server 2008 R2) taking part in transactional replication. This exists to pass data to a customer of ours, so I am troubleshooting from the Publisher side.

Replication has been working fine for months, then all of a sudden (about a week ago) the customer reported that data is no longer showing up in their subscription tables. So - I started troubleshooting and found this:

Replication Error

(the error = The process could not execute '{call sp_MSget_subscription_guid(20)}' on ''.)

It seems that the distributor has failed for this subscription.

My questions (I am relatively new to Replication and have been pouring through documentation):

  • How can I clear this up and get data flowing again?
    • My initial thought is to Reinitialize the subscription, but the only snapshot that exists is the initial snapshot taken when replication began. I get the sense that re-initalizing will just reapply that snapshot and force all data back down again.
  • Can I just restart the Distributor Agent
    • From what I am reading, this may be a viable option - but I can't find the agent anywhere in SMSS (although, I am sure that is due to my inexperience with replication).

Note: This is the only subscription we have.

Update: Query result (mentioned in the comments below) Query Result

share|improve this question
    
Try restarting the distribution agent and also check the agent history for any detailed message. –  Kin Aug 13 '13 at 19:24
    
I am having trouble finding the distribution agent (how do I find it)? –  MattW Aug 13 '13 at 20:09
    
Its a sql agent job on the distribution database server or you can use this script SELECT d.publication ,d.local_job ,d.publisher_db ,d.job_id ,s.NAME FROM distribution.dbo.MSdistribution_agents d JOIN master.sys.servers s ON d.subscriber_id = s.server_id to find it out –  Kin Aug 13 '13 at 20:25
    
I added an image of the query result above ... none of that info contains any of the SQL Server Agent Jobs ... or am I missing something? –  MattW Aug 13 '13 at 21:19
    
@MattW the job_id is the SQL Server Agent job. You should be able to query dbo.sysjobs and filter by job_id to find the name of the job. –  Shawn Melton Aug 14 '13 at 0:02
show 3 more comments

Your Answer

 
discard

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

Browse other questions tagged or ask your own question.