sp_addmergepullsubscription_agent (Transact-SQL)

Agrega un nuevo trabajo de agente utilizado para programar la sincronización de una suscripción de extracción a una publicación de mezcla. Este procedimiento almacenado se ejecuta en el suscriptor de la base de datos de suscripciones.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_addmergepullsubscription_agent [ [ @name = ] 'name' ] 
        , [ @publisher = ] 'publisher' 
        , [ @publisher_db = ] 'publisher_db'
        , [ @publication =] 'publication' 
    [ , [ @publisher_security_mod e= ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher_encrypted_password = ] publisher_encrypted_password ] 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password= ] 'subscriber_password' ] 
    [ , [ @distributor = ] 'distributor' ] 
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @encrypted_password = ] encrypted_password ] 
    [ , [ @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 ] 
    [ , [ @optional_command_line = ] 'optional_command_line' ] 
    [ , [ @merge_jobid = ] merge_jobid ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ]  
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @working_directory = ] 'working_directory' ] 
    [ , [ @use_ftp = ] 'use_ftp' ] 
    [ , [ @reserved = ] 'reserved' ] 
    [ , [ @use_interactive_resolver = ] 'use_interactive_resolver' ] 
    [ , [ @offloadagent = ] 'remote_agent_activation' ] 
    [ , [ @offloadserver = ] 'remote_agent_server_name'] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    [ , [ @use_web_sync = ] use_web_sync ]
        [ , [ @internet_url = ] 'internet_url' ]
    [ , [ @internet_login = ] 'internet_login' ]
        [ , [ @internet_password = ] 'internet_password' ]
    [ , [ @internet_security_mode = ] internet_security_mode ]
        [ , [ @internet_timeout = ] internet_timeout ]
    [ , [ @hostname = ] 'hostname' ]
        [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argumentos

  • [ @name = ] 'name'
    Es el nombre del agente. name es de tipo sysname y su valor predeterminado es NULL.

  • [ @publisher = ] 'publisher'
    Es el nombre del servidor de publicadores. publisher es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @publisher_db = ] 'publisher_db'
    Es el nombre de la base de datos del publicador. publisher_db es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @publication = ] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @publisher_security_mode = ] publisher_security_mode
    Es el modo de seguridad que se utiliza para conectarse a un publicador para la sincronización. publisher_security_mode es de tipo int y su valor predeterminado es 1. 0 especifica la autenticación de SQL Server. Si es 1, especifica Autenticación de Windows.

    Nota de seguridadNota de seguridad

    Siempre que sea posible, utilice la autenticación de Windows.

  • [ @publisher_login = ] 'publisher_login'
    Es el inicio de sesión que se utiliza al conectarse a un publicador durante la sincronización. publisher_login es de tipo sysname y su valor predeterminado es NULL.

  • [ @publisher_password = ] 'publisher_password'
    Es la contraseña que se utiliza al conectarse al publicador. publisher_password es de tipo sysname y su valor predeterminado es NULL.

    Nota de seguridadNota de seguridad

    No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que especifiquen 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_encrypted_password = ]publisher_encrypted_password
    Ya no se admite la configuración de publisher_encrypted_password. Si se intenta establecer este parámetro de tipo bit en 1, se producirá un error.

  • [ @subscriber = ] 'subscriber'
    Es el nombre del suscriptor. subscriber es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_db = ] 'subscriber_db'
    Es el nombre de la base de datos de suscripciones. subscriber_db es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_security_mode = ] subscriber_security_mode
    Es el modo de seguridad que se utiliza para conectarse a un suscriptor para la sincronización. subscriber_security_mode es de tipo int y su valor predeterminado es 1. 0 especifica la autenticación de SQL Server. Si es 1, especifica Autenticación de Windows.

    [!NOTA]

    Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de los scripts. El Agente de mezcla siempre conecta con el suscriptor local mediante Autenticación de Windows. Si se especifica un valor para este parámetro, se devolverá un mensaje de advertencia, pero el valor se pasará por alto.

  • [ @subscriber_login = ] 'subscriber_login'
    Es el inicio de sesión del suscriptor que se utiliza al conectarse a un suscriptor al sincronizar. subscriber_login es obligatorio si subscriber_security_mode se establece en 0. subscriber_login es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de los scripts. Si se especifica un valor para este parámetro, se devolverá un mensaje de advertencia, pero el valor se pasará por alto.

  • [ @subscriber_password = ] 'subscriber_password'
    Es la contraseña del suscriptor para la Autenticación de SQL Server. subscriber_password es obligatorio si subscriber_security_mode se establece en 0. subscriber_password es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de los scripts. Si se especifica un valor para este parámetro, se devolverá un mensaje de advertencia, pero el valor se pasará por alto.

  • [ @distributor = ] 'distributor'
    Es el nombre del distribuidor. distributor es de tipo sysname y su valor predeterminado es publisher; es decir, el publicador también es el distribuidor.

  • [ @distributor_security_mode = ] distributor_security_mode
    Es el modo de seguridad que se utiliza para conectarse a un distribuidor durante la sincronización. distributor_security_mode es de tipo int y su valor predeterminado es 0. 0 especifica la autenticación de SQL Server. 1 especifica Autenticación de Windows.

    Nota de seguridadNota de seguridad

    Siempre que sea posible, utilice la autenticación de Windows.

  • [ @distributor_login = ] 'distributor_login'
    Es el inicio de sesión del distribuidor que se utiliza al conectarse a un distribuidor durante la sincronización. distributor_login es obligatorio si distributor_security_mode se establece en 0. distributor_login es de tipo sysname y su valor predeterminado es NULL.

  • [ @distributor_password = ] 'distributor_password'
    Es la contraseña del distribuidor. Si distributor_security_mode se establece en 0distributor_password es obligatorio. distributor_password es de tipo sysname y su valor predeterminado es NULL.

    Nota de seguridadNota de seguridad

    No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que especifiquen 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.

  • [ @encrypted_password = ] encrypted_password
    Ya no se admite la configuración de encrypted_password. Si se intenta establecer este parámetro de tipo bit en 1, se producirá un error.

  • [ @frequency_type = ] frequency_type
    Es la frecuencia con que se programa el Agente de mezcla. frequency_type es de tipo int y puede tener uno de los valores siguientes.

    Valor

    Descripción

    1

    Una vez

    2

    A petición

    4

    Diario

    8

    Semanal

    16

    Mensual

    32

    Relativo mensual

    64

    Iniciar automáticamente

    128

    Periódico

    NULL (predeterminado)

     

    [!NOTA]

    Al especificar un valor de 64, el Agente de mezcla se ejecuta en modo continuo. Esto equivale a configurar el parámetro -Continuous para el agente. Para obtener más información, vea Agente de mezcla de replicación.

  • [ @frequency_interval = ] frequency_interval
    El día o los días en los que se ejecuta el Agente de mezcla. frequency_interval es de tipo int y puede tener uno de estos 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
    Es la fecha del Agente de mezcla. Este parámetro se utiliza cuando frequency_type se ha establecido en 32 (mensual relativa). frequency_relative_interval es de tipo int y puede tener uno de estos valores.

    Valor

    Descripción

    1

    Primero

    2

    Segundo

    4

    Tercero

    8

    Cuarto

    16

    Último

    NULL (valor predeterminado)

     

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Es el factor de periodicidad utilizado por frequency_type. frequency_recurrence_factor es de tipo int y su valor predeterminado es NULL.

  • [ @frequency_subday = ] frequency_subday
    Es la frecuencia con la que se vuelve a programar durante el período definido. frequency_subday es de tipo int y puede tener uno de estos valores.

    Valor

    Descripción

    1

    Una vez

    2

    Segundo

    4

    Minuto

    8

    Hora

    NULL (valor predeterminado)

     

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Es el intervalo de frequency_subday. frequency_subday_interval es de tipo int y su valor predeterminado es NULL.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Hora del día de la primera programación del Agente de mezcla, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es NULL.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    Hora del día de en que se detiene la programación del Agente de mezcla, con el formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es NULL.

  • [ @active_start_date = ] active_start_date
    Es la fecha en la que comienza la programación del Agente de mezcla, en formato YYYYMMDD. active_start_date es de tipo int y su valor predeterminado es NULL.

  • [ @active_end_date = ] active_end_date
    Es la fecha en que se detiene la programación del Agente de mezcla, en formato YYYYMMDD. active_end_date es de tipo int y su valor predeterminado es NULL.

  • [ @optional_command_line = ] 'optional_command_line'
    Es un símbolo del sistema opcional que se proporciona al Agente de mezcla. optional_command_line es de tipo nvarchar(255) y su valor predeterminado es ' '. Se puede utilizar para proporcionar parámetros adicionales al Agente de mezcla, como en el siguiente ejemplo, en el que se aumenta el tiempo de espera predeterminado de las consultas a 600 segundos.

    @optional_command_line = N'-QueryTimeOut 600'
    
  • [ @merge_jobid = ] merge_jobid
    Es el parámetro de salida del Id. del trabajo. merge_jobid es de tipo binary(16) y su valor predeterminado es NULL.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Especifica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Windows. enabled_for_syncmgr es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es false, la suscripción no se registra con el Administrador de sincronización. Si es true, la suscripción se registra con el Administrador de sincronización y se puede sincronizar sin iniciar SQL Server Management Studio.

  • [ @ftp_address = ] 'ftp_address'
    Se conserva únicamente por compatibilidad con versiones anteriores.

  • [ @ftp_port = ] ftp_port
    Se conserva únicamente por compatibilidad con versiones anteriores.

  • [ @ftp_login = ] 'ftp_login'
    Se conserva únicamente por compatibilidad con versiones anteriores.

  • [ @ftp_password = ] 'ftp_password'
    Se conserva únicamente por compatibilidad con versiones anteriores.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Especifica la ubicación desde la que se obtendrán los archivos de instantáneas. alternate_snapshot_folder es de tipo nvarchar(255) y su valor predeterminado es NULL. Si es NULL, los archivos de instantáneas se recopilarán desde la ubicación predeterminada especificada por el publicador.

  • [ @working_directory = ] 'working_directory'
    Es el nombre del directorio de trabajo utilizado para almacenar temporalmente archivos de datos y esquema para la publicación cuando se utiliza FTP para transferir archivos de instantáneas. working_directory es de tipo nvarchar(255) y su valor predeterminado es NULL.

  • [ @use_ftp = ] 'use_ftp'
    Especifica el uso de FTP en lugar del protocolo habitual para recuperar instantáneas. use_ftp es de tipo nvarchar(5) y su valor predeterminado es FALSE.

  • [ @reserved = ] 'reserved'
    Solo se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

  • [ @use_interactive_resolver = ] 'use_interactive_resolver' ]
    Utiliza la resolución interactiva para resolver conflictos de todos los artículos que permiten una resolución interactiva. use_interactive_resolver es de tipo nvarchar(5) y su valor predeterminado es FALSE.

  • [ @offloadagent = ] 'remote_agent_activation'

    [!NOTA]

    La activación remota del agente se ha desaprobado y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de los scripts. Si se establece remote_agent_activation en un valor distinto de false, se generará un error.

  • [ @offloadserver = ] 'remote_agent_server_name'

    [!NOTA]

    La activación remota del agente se ha desaprobado y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de los scripts. Si se establece remote_agent_server_name en cualquier valor que no sea NULL, se generará un error.

  • [ @job_name = ] 'job_name' ]
    Es el nombre de un trabajo del agente existente. job_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro sólo se especifica cuando la suscripción se va a sincronizar mediante un trabajo existente en lugar de uno recién creado (el valor predeterminado). Si no es miembro de la función fija de servidor sysadmin, debe especificar job_login y job_password cuando especifique job_name.

  • [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    Es la ruta de acceso a la carpeta donde se leerán los archivos de instantáneas si se va a utilizar una instantánea de datos filtrada. dynamic_snapshot_location es de tipo nvarchar(260) y su valor predeterminado es NULL. Para obtener más información, vea Filtros de fila con parámetros.

  • [ @use_web_sync = ] use_web_sync
    Indica que la sincronización Web está habilitada. use_web_sync es de tipo bit y su valor predeterminado es 0. 1 especifica que la suscripción de extracción se puede sincronizar a través de Internet mediante HTTP.

  • [ @internet_url = ] 'internet_url'
    Es la ubicación de la escucha de replicación (REPLISAPI.DLL) para la sincronización Web. internet_url es de tipo nvarchar(260) y su valor predeterminado es NULL. internet_url es una dirección URL completa con formato http://server.domain.com/directory/replisapi.dll. Si el servidor está configurado para escuchar en un puerto que no sea el 80, también se debe proporcionar el número de puerto con el formato http://server.domain.com:portnumber/directory/replisapi.dll, donde portnumber representa al puerto.

  • [ @internet_login = ] 'internet_login'
    Es el inicio de sesión que utiliza el Agente de mezcla al conectarse al servidor Web que aloja la sincronización Web mediante Autenticación básica HTTP. internet_login es de tipo sysname y su valor predeterminado es NULL.

  • [ @internet_password = ] 'internet_password'
    Es la contraseña que utiliza el Agente de mezcla al conectarse al servidor Web que aloja la sincronización Web mediante la Autenticación básica HTTP. internet_password es de tipo nvarchar(524) y su valor predeterminado es NULL.

    Nota de seguridadNota de seguridad

    No utilice una contraseña en blanco. Utilice una contraseña segura.

  • [ @internet_security_mode = ] internet_security_mode
    Es el método de autenticación que utiliza el Agente de mezcla al conectarse al servidor Web durante la sincronización Web mediante HTTPS. internet_security_mode es de tipo int y puede tener uno de estos valores.

    Valor

    Descripción

    0

    Se utiliza Autenticación básica.

    1 (valor predeterminado)

    Se utiliza Autenticación integrada de Windows.

    [!NOTA]

    Con la sincronización Web, se recomienda utilizar Autenticación básica. Para utilizar la sincronización Web, es necesario realizar una conexión SSL al servidor Web. Para obtener más información, vea Configurar la sincronización Web.

  • [ @internet_timeout = ] internet_timeout
    Es el tiempo, en segundos, antes de que caduque una solicitud de sincronización Web. internet_timeout es de tipo int y su valor predeterminado es 300 segundos.

  • [ @hostname = ] 'hostname'
    Omite el valor de HOST_NAME() cuando esta función se utiliza en la cláusula WHERE de un filtro con parámetros. hostname es de tipo sysname y su valor predeterminado es NULL.

  • [ @job_login = ] 'job_login'
    Es el inicio de sesión de la cuenta de Windows con la que se ejecuta el agente. job_login es de tipo nvarchar(257) y no tiene ningún valor predeterminado. Esta cuenta de Windows siempre se utiliza para las conexiones del agente al suscriptor y para las conexiones al distribuidor y al publicador cuando se utiliza Autenticación integrada de Windows.

  • [ @job_password = ] 'job_password'
    Es la contraseña de la cuenta de Windows con la que se ejecuta el agente. job_password es de tipo sysname y no tiene ningún valor predeterminado.

    Nota de seguridadNota de seguridad

    No almacene información de autenticación en archivos de script. Para una mayor seguridad, los nombres de inicio de sesión y las contraseñas se deben proporcionar en tiempo de ejecución.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_addmergepullsubscription_agent se utiliza en la replicación de mezcla e incorpora una funcionalidad similar a la de sp_addpullsubscription_agent.

El modelo de seguridad del Agente de replicación ha cambiado notablemente con respecto a SQL Server 2000. Para obtener un ejemplo de cómo especificar correctamente la configuración de seguridad al ejecutar sp_addmergepullsubscription_agent, vea Cómo crear una suscripción de extracción (programación de la replicación con Transact-SQL).

Ejemplo

-- 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".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO

Permisos

Sólo los miembros de la función fija de servidor sysadmin o la función fija de base de datos db_owner pueden ejecutar sp_addmergepullsubscription_agent.