sp_addmergepushsubscription_agent (Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance
Agrega un nuevo trabajo de agente que se utiliza para programar la sincronización de una suscripción de inserción con una publicación de combinación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.
Importante
Al configurar un publicador con un distribuidor remoto, los valores proporcionados para todos los parámetros, incluidos @job_login y @job_password, se envían al distribuidor como texto sin formato. Antes de ejecutar este procedimiento almacenado, se recomienda cifrar la conexión entre el publicador y su distribuidor remoto. Para más información, consulte Configuración del Motor de base de datos de SQL Server para el cifrado de las conexiones.
Convenciones de sintaxis de Transact-SQL
Nota:
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
Sintaxis
sp_addmergepushsubscription_agent
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ ; ]
Argumentos
[ @publication = ] N'publication'
Nombre de la publicación. @publication es sysname, sin ningún valor predeterminado.
[ @subscriber = ] N'subscriber'
Nombre del suscriptor. @subscriber es sysname, con un valor predeterminado de NULL
.
[ @subscriber_db = ] N'subscriber_db'
Nombre de la base de datos de suscripciones. @subscriber_db es sysname, con un valor predeterminado de NULL
.
[ @subscriber_security_mode = ] subscriber_security_mode
Modo de seguridad que se va a usar al conectarse a un suscriptor al sincronizar. @subscriber_security_mode es smallint, con un valor predeterminado de 1
. Los valores siguientes definen el modo de seguridad:
0
especifica la autenticación de SQL Server.1
especifica autenticación de Windows.2
especifica la autenticación con contraseña de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.3
especifica la autenticación integrada de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.4
especifica la autenticación de tokens de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.
Importante
Siempre que sea posible, utilice la autenticación de Windows.
[ @subscriber_login = ] N'subscriber_login'
Inicio de sesión del suscriptor que se usará al conectarse a un suscriptor al sincronizar. @subscriber_login es sysname, con un valor predeterminado de NULL
. @subscriber_login es necesario si @subscriber_security_mode está establecido 0
en .
[ @subscriber_password = ] N'subscriber_password'
Contraseña del suscriptor para la autenticación de SQL Server. @subscriber_password es sysname, con un valor predeterminado de NULL
. @subscriber_password es necesario si @subscriber_security_mode está establecido 0
en . Si se usa una contraseña de suscriptor, se cifra automáticamente.
Importante
Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.
[ @publisher_security_mode = ] publisher_security_mode
Modo de seguridad que se va a usar al conectarse a un publicador al sincronizar. @publisher_security_mode es smallint, con un valor predeterminado de 1
. Los valores siguientes definen el modo de seguridad:
0
especifica la autenticación de SQL Server.1
especifica autenticación de Windows.2
especifica la autenticación con contraseña de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.3
especifica la autenticación integrada de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.4
especifica la autenticación de tokens de Microsoft Entra, a partir de SQL Server 2022 (16.x) CU 6.
Importante
Siempre que sea posible, utilice la autenticación de Windows.
[ @publisher_login = ] N'publisher_login'
Inicio de sesión que se va a usar al conectarse a un publicador al sincronizar. @publisher_login es sysname, con un valor predeterminado de NULL
.
[ @publisher_password = ] N'publisher_password'
Contraseña usada al conectarse al publicador. @publisher_password es sysname, con un valor predeterminado de NULL
.
Importante
No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.
[ @job_login = ] N'job_login'
Inicio de sesión de la cuenta de Windows con la que se ejecuta el agente. @job_login es nvarchar(257), con un valor predeterminado de NULL
. Esta cuenta de Windows se utiliza siempre para las conexiones de agentes al distribuidor y para las conexiones al suscriptor y al publicador, cuando se utiliza la autenticación de Windows integrada.
[ @job_password = ] N'job_password'
Contraseña de la cuenta de Windows con la que se ejecuta el agente. @job_password es sysname, sin ningún valor predeterminado.
Importante
Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.
[ @job_name = ] N'job_name'
Nombre de un trabajo de agente existente. @job_name es sysname, con un valor predeterminado de NULL
. Este parámetro solo se especifica cuando se sincroniza la suscripción con un trabajo existente en lugar de utilizar un trabajo recién creado (la opción predeterminada). Si no es miembro del rol fijo de servidor sysadmin , debe especificar job_login y job_password al especificar @job_name.
[ @frequency_type = ] frequency_type
Valor que indica cuándo se ejecuta el Agente de mezcla. @frequency_type es int y puede ser uno de los siguientes valores.
Valor | Descripción |
---|---|
1 |
Una vez |
2 |
A petición |
4 |
Diario |
8 |
Semanal |
16 |
Mensual |
32 |
Mensualmente relativa |
64 |
Iniciar automáticamente |
128 |
Periódico |
NULL (valor predeterminado) |
Nota:
Especificar un valor de 64
hace que el Agente de mezcla se ejecute en modo continuo. Esto corresponde a establecer el -Continuous
parámetro para el agente. Para más información, consulte Replication Merge Agent.
[ @frequency_interval = ] frequency_interval
Los días en que se ejecuta el agente de mezcla. @frequency_interval es int y puede ser uno de los siguientes valores.
Valor | Descripción |
---|---|
1 |
Domingo |
2 |
Lunes |
3 |
Martes |
4 |
Miércoles |
5 |
Jueves |
6 |
Viernes |
7 |
Sábado |
8 |
Día |
9 |
Días de la semana |
10 |
Días del fin de semana |
NULL (valor predeterminado) |
[ @frequency_relative_interval = ] frequency_relative_interval
Fecha del Agente de mezcla. Este parámetro se usa cuando @frequency_type se establece 32
en (relativo mensual). @frequency_relative_interval es int y puede ser uno de los siguientes valores.
Valor | Descripción |
---|---|
1 |
First |
2 |
Segundo |
4 |
Tercero |
8 |
Cuarta |
16 |
Último |
NULL (valor predeterminado) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Factor de periodicidad utilizado por @frequency_type. @frequency_recurrence_factor es int, con un valor predeterminado de 0
.
[ @frequency_subday = ] frequency_subday
Frecuencia con la que se vuelve a programar durante el período definido. @frequency_subday es int y puede ser uno de los siguientes valores.
Valor | Descripción |
---|---|
1 |
Una vez |
2 |
Second |
4 |
Minute |
8 |
Hora |
NULL (valor predeterminado) |
[ @frequency_subday_interval = ] frequency_subday_interval
Intervalo de @frequency_subday. @frequency_subday_interval es int, con un valor predeterminado de NULL
.
[ @active_start_time_of_day = ] active_start_time_of_day
Hora del día en que el Agente de mezcla se programa por primera vez, con el formato HHmmss
. @active_start_time_of_day es int, con un valor predeterminado de 0
.
[ @active_end_time_of_day = ] active_end_time_of_day
Hora del día en que el Agente de mezcla deja de programarse, con formato HHmmss
. @active_end_time_of_day es int, con un valor predeterminado de 235959
.
[ @active_start_date = ] active_start_date
Fecha en la que el Agente de mezcla se programa por primera vez, con el formato yyyyMMdd
. @active_start_date es int, con un valor predeterminado de 0
.
[ @active_end_date = ] active_end_date
Fecha en la que el Agente de mezcla deja de programarse, con el formato yyyyMMdd
. @active_end_date es int, con un valor predeterminado de 99991231
.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Especifica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Windows. @enabled_for_syncmgr es nvarchar(5), con un valor predeterminado de false
.
- Si
false
es , la suscripción no se registra con el Administrador de sincronización. - Si
true
es , la suscripción se registra con el Administrador de sincronización y se puede sincronizar sin iniciar SQL Server Management Studio.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
sp_addmergepushsubscription_agent
se usa en la replicación de mezcla y usa funcionalidad similar a sp_addpushsubscription_agent.
Ejemplos
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Permisos
Solo los miembros del rol fijo de servidor sysadmin o db_owner rol fijo de base de datos pueden ejecutar sp_addmergepushsubscription_agent
.