0

Yes, I know this issue is scattered all over the Internet, but none quite deal with my issue. Both Publisher and Subscriber are SQL Server 2017 on Windows Server 2016. The Log Reader fails with the sp_replcmds error immediately after the Publisher task-set is completed. All authentication has been verified; the owner of the DB is sa; all accounts are local administrators and/or sysadmin. I can even successfully setup replication with another database on this same server using the same accounts. Transactional Replication was running continuously on this server for almost 2 years until a user created a job on the Subscriber side that filled both the log and data drives. Since then, no joy in replication-land.

Error messages:

The process could not execute 'sp_replcmds' on '*****'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011) Get help: http://help/MSSQL_REPL20011

The statement has been terminated. (Source: MSSQLServer, Error number: 3621) Get help: http://help/3621

The process could not execute 'sp_replcmds' on '*****'. (Source: MSSQL_REPL, Error number: MSSQL_REPL22037) Get help: http://help/MSSQL_REPL22037*

Steiner
  • 1
  • 3
  • Note: the servers are not part of a domain. – Steiner Oct 19 '21 at 13:31
  • as you wrote there are a number of reasons for that so to determine what caused the failure additional clues is needed. Perhaps there is a more detailed description of the error in logs. In my case it was related to a filter procedure. – Anton Grig Oct 20 '21 at 07:18
  • As I stated, this has been running successfully for almost 2 years. Last week a developer created a job the filled the data drive on the subscriber server (different DB). This caused the SQL service to stop on that server. Have not been able to get replication back online since that point. – Steiner Oct 21 '21 at 19:13
  • I have even completely eliminated the "remote" server from the equation by placing the distributor on the publisher server, I still get the "sp_replcmds" error immediately after completing the New Publication wizard – Steiner Oct 21 '21 at 19:15
  • I would check whether all filters objects exist on the publisher. Select p.[name] as publication, a.[name] as article, a.filter as filter_id, 'The filter procedure is absent.' as warning From sysarticles as a Inner Join syspublications as p on (a.pubid=p.pubid) Left Join sys.objects as o on (a.filter = o.object_id) where a.filter > 0 And o.object_id Is Null – Anton Grig Oct 22 '21 at 13:41

0 Answers0