Cursos
Módulo
Configuración de la replicación y administración de la conmutación por error en Azure Cosmos DB
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Este artículo le ayuda a solucionar el error La suscripción no existe que se produce cuando una réplica principal del distribuidor conmuta por error a una réplica que no usa el mismo perfil de agente.
Versión original del producto: SQL Server 2017 Developer, SQL Server 2017 Enterprise, SQL Server 2017 Enterprise Core
Número de KB original: 4488815
Considere el caso siguiente:
En este escenario, se produce un error en el agente de distribución y recibe el siguiente mensaje de error:
La suscripción no existe.
Los perfiles de agente se administran y conservan en la msdb
base de datos. Los cambios en un perfil de agente se conservan y msdb
no se pueden enviar a otros distribuidores en el GRUPO de disponibilidad de la base de datos de distribución.
Los agentes de replicación están asociados con el perfil a través de profile_id
. Después de una conmutación por error, es posible que el agente no pueda encontrar el perfil correcto. Como alternativa, podría encontrar el perfil incorrecto. Dado que un perfil no predeterminado en un distribuidor podría diferir de otro distribuidor, o puede que nunca haya existido, o puede que tenga otro profile_id
.
El trabajo del agente de distribución emite el sp_MShelp_distribution_agentid
procedimiento almacenado para obtener el identificador del agente cuando se inicia. Si el perfil no existe o si los identificadores de perfil son diferentes, el trabajo del agente de distribución no obtiene el identificador del agente y devuelve la suscripción no existe el mensaje de error.
Para resolver este problema, use uno de los métodos siguientes:
Especifique los parámetros del comando del agente de distribución directamente, en lugar de usar el perfil del agente. Además, aplique los cambios en el trabajo del agente de distribución en todas las réplicas del distribuidor.
Asegúrese de que el perfil del agente se crea en todos los distribuidores que participan en la base de datos de distribución en el GRUPO de disponibilidad y asegúrese de que los identificadores de perfil sean los mismos.
El agente de distribución ejecuta el sp_MShelp_distribution_agentid
procedimiento almacenado para obtener el perfil del agente. Si el perfil del agente no existe o si el identificador de perfil es diferente, no se encuentra el perfil de agente correcto y se devuelve el mensaje de error La suscripción no existe .
Para evitar este problema, especifique el perfil de agente correcto (id. de perfil) en el sp_MShelp_distribution_agentid
procedimiento almacenado.
A continuación se muestra un segmento de código del sp_MShelp_distribution_agentid
procedimiento almacenado:
SELECT distribAgent.id,
distribAgent.name,
distribAgent.publisher_database_id,
distribAgent.publisher_db,
distribAgent.subscriber_db,
profileName.profile_id,
profileName.profile_name
FROM MSdistribution_agents AS distribAgent
INNER JOIN msdb..MSagent_profiles AS profileName
ON distribAgent.profile_id = profileName.profile_id
Cursos
Módulo
Configuración de la replicación y administración de la conmutación por error en Azure Cosmos DB
Documentación
Detección de errores con replicación transaccional - SQL Server
Describe cómo localizar e identificar errores con la replicación transaccional, así como la metodología de solución de problemas para abordar problemas con la replicación.
Inicio o detención de un agente de replicación (SSMS) - SQL Server
Obtenga información sobre cómo iniciar y detener un agente de replicación en SQL Server Management Studio y el Monitor de replicación.
Error cuando se produce un error en el Agente de registro de registro de replicación - SQL Server
En este artículo se describen los pasos de solución de problemas que pueden ayudar a resolver problemas que se producen después de que se produzca un error en el Agente de registro de replicación en SQL Server.