sp_addpullsubscription_agent (Transact-SQL)

Actualizado: 12 de diciembre de 2006

Agrega un nuevo trabajo de agente programado utilizado para sincronizar una suscripción de extracción a una publicación transaccional. 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_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] 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 ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @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' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argumentos

  • [ @publisher=] 'publisher'
    Es el nombre del publicador. 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 su valor predeterminado es NULL. Los publicadores de Oracle omiten publisher_db.
  • [ @publication=] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.
  • [ @subscriber=] 'subscriber'
    Es el nombre del suscriptor. subscriber 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 las secuencias de comandos.

  • [ @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.

    [!NOTA] Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de las secuencias de comandos.

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

    [!NOTA] Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de las secuencias de comandos. El Agente de distribución siempre conecta con el suscriptor local mediante Autenticación de Windows. Si se especifica un valor distinto de NULL o 1 para este parámetro, se devuelve un mensaje de advertencia.

  • [ @subscriber_login =] 'subscriber_login'
    Es el inicio de sesión del suscriptor que se utiliza al conectarse a un suscriptor durante la sincronización. 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 las secuencias de comandos. Si se especifica un valor para este parámetro, se devuelve un mensaje de advertencia, pero el valor se pasa por alto.

  • [ @subscriber_password=] 'subscriber_password'
    Es la contraseña del suscriptor. Si subscriber_security_mode se establece en 0, el parámetro subscriber_password es obligatorio. subscriber_password es de tipo sysname y su valor predeterminado es NULL. Si se utiliza una contraseña de suscriptor, se cifra automáticamente.

    [!NOTA] Este parámetro es obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de las secuencias de comandos. Si se especifica un valor para este parámetro, se devuelve un mensaje de advertencia, pero el valor se pasa por alto.

  • [ @distributor=] 'distributor'
    Es el nombre del distribuidor. distributor es sysname, con el valor especificado por publisher como valor predeterminado.
  • [ @distribution_db=] 'distribution_db'
    Es el nombre de la base de datos de distribución. distribution_db es de tipo sysname y su valor predeterminado es NULL.
  • [ @distributor_security_mode=] distributor_security_mode
    Es el modo de seguridad que se utiliza al conectarse a un distribuidor durante la sincronización. distributor_security_mode es de tipo int y su valor predeterminado es 1. 0 especifica Autenticación de SQL Server. 1 especifica Autenticación de Windows.

    ms188358.security(es-es,SQL.90).gifNota 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.

    ms188358.security(es-es,SQL.90).gifNota 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 secuencia de comandos, proteja el archivo para evitar el acceso no autorizado.
  • [ @optional_command_line=] 'optional_command_line'
    Es un símbolo del sistema opcional proporcionado al Agente de distribución. Por ejemplo, -DefinitionFile C:\Distdef.txt o -CommitBatchSize 10. optional_command_line es de tipo nvarchar(4000) y su valor predeterminado es una cadena vacía.
  • [ @frequency_type=] frequency_type
    Es la frecuencia con que se programa el Agente de distribución. frequency_type es de tipo int y puede tener uno de los valores siguientes.

    Valor Descripción

    1

    Una vez

    2 (predeterminado)

    A petición

    4

    Diario

    8

    Semanal

    16

    Mensual

    32

    Relativo mensual

    64

    Iniciar automáticamente

    128

    Periódico

    [!NOTA] Al especificar un valor de 64, el Agente de distribución se ejecuta en modo continuo. Esto equivale a configurar el parámetro -Continuous para el agente. Para obtener más información, vea Replication Distribution Agent.

  • [ @frequency_interval=] frequency_interval
    Es el valor que se va a aplicar a la frecuencia establecida por frequency_type. frequency_interval es de tipo int y su valor predeterminado es 1.
  • [ @frequency_relative_interval=] frequency_relative_interval
    Es la fecha del Agente de distribución. 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 los siguientes valores.

    Valor Descripción

    1 (predeterminado)

    Primero

    2

    Segundo

    4

    Tercero

    8

    Cuarto

    16

    Último

  • [ @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 1.
  • [ @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 los siguientes valores.

    Valor Descripción

    1 (predeterminado)

    Una vez

    2

    Segundo

    4

    Minuto

    8

    Hora

  • [ @frequency_subday_interval=] frequency_subday_interval
    Es el intervalo de frequency_subday. frequency_subday_interval es de tipo int y su valor predeterminado es 1.
  • [ @active_start_time_of_day=] active_start_time_of_day
    Es la hora del día de la primera programación del Agente de distribución, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es 0.
  • [ @active_end_time_of_day=] active_end_time_of_day
    Es la hora del día en que se detiene la programación del Agente de distribución, con el formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es 0.
  • [ @active_start_date=] active_start_date
    Es la fecha en la que comienza la programación del Agente de distribución, en formato YYYYMMDD. active_start_date es de tipo int y su valor predeterminado es 0.
  • [ @active_end_date=] active_end_date
    Es la fecha en la que se detiene la programación del Agente de distribución, en formato YYYYMMDD. active_end_date es de tipo int y su valor predeterminado es 0.
  • [ @distribution_jobid =] distribution_jobidOUTPUT
    Es el Id. del Agente de distribución de este trabajo. distribution_jobid es de tipo binary(16), su valor predeterminado es NULL y es un parámetro OUTPUT.
  • [ @encrypted_distributor_password=] encrypted_distributor_password
    Ya no se admite la configuración de encrypted_distributor_password. Si se intenta establecer este parámetro de tipo bit en 1, se producirá un error.
  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Indica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Microsoft. 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 de la carpeta alternativa para la instantánea. alternate_snapshot_folder es de tipo nvarchar(255) y su valor predeterminado es NULL.
  • [ @working_directory= ] 'working_director'
    Es el nombre del directorio de trabajo utilizado para almacenar archivos de datos y de esquema para la publicación. working_directory es de tipo nvarchar(255) y su valor predeterminado es NULL. El nombre se debe especificar en el formato UNC.
  • [ @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.
  • [ @publication_type= ] publication_type
    Especifica el tipo de réplica de la publicación. publication_type es de tipo tinyint y su valor predeterminado es 0. Si es 0, la publicación es del tipo de transacción. Si es 1, la publicación es del tipo de instantánea. Si es 2, la publicación es del tipo de mezcla.
  • [ @dts_package_name= ] 'dts_package_name'
    Especifica el nombre del paquete DTS. dts_package_name es de tipo sysname y su valor predeterminado es NULL. Por ejemplo, para especificar un paquete de DTSPub_Package, el parámetro sería @dts_package_name = N'DTSPub_Package'.
  • [ @dts_package_password= ] 'dts_package_password'
    Especifica la contraseña del paquete, si existe. dts_package_password es de tipo sysname y su valor predeterminado es NULL, que significa que el paquete no tiene contraseña.

    [!NOTA] Si se especifica el parámetro dts_package_name, es necesario especificar una contraseña.

  • [ @dts_package_location= ] 'dts_package_location'
    Especifica la ubicación del paquete. dts_package_location es de tipo nvarchar(12) y su valor predeterminado es subscriber. La ubicación del paquete puede ser distributor o subscriber.
  • [ @reserved= ] 'reserved'
    Sólo para uso interno.
  • [ @offloadagent= ] 'remote_agent_activation'

    [!NOTA] La activación remota del agente es obsoleta y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de las secuencias de comandos. 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 es obsoleta y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de las secuencias de comandos. 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.
  • [ @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 con el suscriptor.
  • [ @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.

    ms188358.security(es-es,SQL.90).gifNota de seguridad:
    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 secuencia de comandos, proteja el archivo para evitar el acceso no autorizado.

Notas

sp_addpullsubscription_agent se utiliza en la réplica de instantáneas y transaccional.

Permisos

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

Valores de código de retorno

0 (correcto) o 1 (error)

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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';

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

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

Vea también

Referencia

sp_addpullsubscription (Transact-SQL)
sp_change_subscription_properties (Transact-SQL)
sp_droppullsubscription (Transact-SQL)
sp_helppullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)

Otros recursos

Cómo crear una suscripción de extracción (programación de la réplica con Transact-SQL)
Suscribirse a publicaciones

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se agregó una nota para notificar que un parámetro @frequency_type de 64 hace que el Agente de distribución se ejecute en modo continuo.