Compartir a través de


sp_addlogreader_agent (Transact-SQL)

Agrega un Agente de registro del LOG a una base de datos dada. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.

Nota de seguridadNota de seguridad

Al configurar un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto simple. Debe cifrar la conexión entre el publicador y su distribuidor remoto antes de ejecutar este procedimiento almacenado. Para obtener más información, vea Habilitar conexiones cifradas en el motor de base de datos (Administrador de configuración de SQL Server).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_addlogreader_agent [ @job_login = ] 'job_login' 
        , [ @job_password = ] 'job_password'
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] 'publisher_login' ]
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher = ] 'publisher' ]

Argumentos

  • [ @job_login= ] 'job_login'
    Es el inicio de sesión de la cuenta de Microsoft Windows en la que se ejecuta el agente. job_login es de tipo nvarchar(257) y su valor predeterminado es NULL. Esta cuenta de Windows siempre se utiliza para conexiones del agente con el distribuidor.

    [!NOTA]

    En publicadores que no son de Microsoft SQL Server, el inicio de sesión debe ser el mismo que se especificó en sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    Es la contraseña de la cuenta de Windows en la que se ejecuta el agente. job_password es de tipo sysname y su valor predeterminado es NULL.

    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.

  • [ @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 solamente se especifica cuando se inicia el agente a partir de un trabajo existente, en lugar de hacerlo con un trabajo recién creado (el valor predeterminado).

  • [ @publisher_security_mode= ] publisher_security_mode
    Es el modo de seguridad que el agente utiliza al conectarse al publicador. publisher_security_mode es de tipo smallint y su valor predeterminado es 1. 0 especifica Autenticación de SQL Server y 1 especifica Autenticación de Windows. Debe especificarse un valor de 0 para publicadores que no sean de SQL Server.

  • [ @publisher_login= ] 'publisher_login'
    Es el inicio de sesión utilizado al conectar al publicador. publisher_login es de tipo sysname y su valor predeterminado es NULL. publisher_login se debe especificar si publisher_security_mode es 0. Si publisher_login es NULL y publisher_security_mode es 1, se utilizará la cuenta de Windows especificada en job_login al conectarse al publicador.

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

    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.

  • [ @publisher= ] 'publisher'
    Es el nombre del publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    No debe especificar este parámetro para un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_addlogreader_agent se utiliza en la replicación transaccional.

Debe ejecutar sp_addlogreader_agent para agregar un Agente de registro del LOG si actualizó una base de datos que se habilitó para replicación en esta versión de SQL Server antes de que se creara una publicación que utilizara la base de datos.

Permisos

Solo los miembros del rol fijo de servidor sysadmin o del rol fijo de base de datos db_owner pueden ejecutar sp_addlogreader_agent.

Ejemplo

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

Vea también

Referencia

sp_addpublication (Transact-SQL)

sp_changelogreader_agent (Transact-SQL)

Procedimientos almacenados de replicación (Transact-SQL)

Conceptos

Crear una publicación