martes, 27 de julio de 2021

Replication – Execution of filter stored procedure xxxx failed. See the SQL Server errorlog for more information.

 Execution of filter stored procedure 1288585956 failed. See the SQL Server errorlog for more information.

The Log-Scan Process failed to construct a replicated command from log sequence number (LSN) {005765c9:0000bb74:0002}. Back up the publication database and contact Customer Support Services.


El error anterior indica que Log Reader Agent está bloqueado en LSN {0001d651: 00002a49: 0006} y no puede leer ni crear un comando para este LSN.
Como el Agente de lectura de registros está atascado en el LSN, no avanza y ya que solo podemos tener 1 Agente de lectura de registros en Replicación transaccional que se utiliza para todas las publicaciones. Todas las publicaciones muestran errores en el monitor de replicación y no avanzan.
Verificamos la transacción en el LSN {0001d651: 00002a49: 0006}.

En el error anterior, vemos "Error en la ejecución del procedimiento almacenado del filtro 2048634987"
. Verificamos el ID del procedimiento almacenado del filtro de sysarticles y descubrimos que era el procedimiento almacenado del filtro para la tabla dbo.booking



SELECT * FROM sys.dm_cdc_errors


Sin embargo, la entrada de el procedimiento almacenado del filtro faltaba en las tablas sysobjects, lo que indica que el procedimiento almacenado del filtro se eliminó por alguna razón. Para confirmar esto usamos la siguiente consulta

select * from (select art.name as article_name

, art.pubid as publication_id

, art.artid as article_id

, art.filter as filter_proc_id

, isnull(obj.name,'## MISSING!! ##') as filter_proc_name

from sysarticles art left outer join sys.objects obj

on art.filter = obj.object_id

where art.filter > 0)as results

solución

Eliminé la publicación, la recreé y luego creé una suscripción sin inicialización. esto impidió una instantánea completa.

O

Entonces, para resolver esto, identificamos las publicaciones de la tabla syspublications con pubid = 750.
Luego eliminamos el filtrado para los 3 artículos anteriores y los volvimos a agregar y el procedimiento almacenado se volvió a crear.
Luego recreamos la instantánea para esa publicación y marcamos su suscriptor para reinicializar.
El agente de instantáneas volvió a crear la instantánea y el agente de lector de registros comenzó a funcionar correctamente sin errores.
Verificamos el Monitor de replicación y el error desapareció.