Agente do Leitor de Log de Replicação

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

O Agente de Leitor de Log de Replicação é um executável que monitora o log de transações de cada banco de dados configurado para replicação transacional e copia as transações marcadas para replicação do log de transações no banco de dados de distribuição.

Observação

Os parâmetros podem ser especificados em qualquer ordem. Quando não são especificados parâmetros opcionais, são usados valores predefinidos com base no perfil de agente padrão.

Sintaxe

  
logread [-?]   
-Publisher server_name[\instance_name]   
-PublisherDB publisher_database   
[-Continuous]  
[-DefinitionFile def_path_and_file_name]  
[-Distributor server_name[\instance_name]]  
[-DistributorLogin distributor_login]  
[-DistributorPassword distributor_password]  
[-DistributorSecurityMode [0|1]]  
[-EncryptionLevel [0|1|2]]  
[-ExtendedEventConfigFile configuration_path_and_file_name]  
[-HistoryVerboseLevel [0|1|2]]  
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]  
[-LoginTimeOut login_time_out_seconds]  
[-LogScanThreshold scan_threshold]  
[-MaxCmdsInTran number_of_commands]  
[-MessageInterval message_interval]
[-MultiSubnetFailover [0|1]]
[-Output output_path_and_file_name]  
[-OutputVerboseLevel [0|1|2|3|4]]  
[-PacketSize packet_size]  
[-PollingInterval polling_interval]  
[-ProfileName profile_name]   
[-PublisherFailoverPartner server_name[\instance_name] ]  
[-PublisherSecurityMode [0|1]]  
[-PublisherLogin publisher_login]  
[-PublisherPassword publisher_password]   
[-QueryTimeOut query_time_out_seconds]  
[-ReadBatchSize number_of_transactions]   
[-ReadBatchThreshold read_batch_threshold]  
[-RecoverFromDataErrors]  

Argumentos

-?
Exibe informações de uso.

-Publisherserver_name[\instance_name]
É o nome do Publicador. Especifique server_name para a instância padrão do Microsoft SQL Server nesse servidor. Especifique server_name\instance_name para conectar-se a uma instância nomeada do SQL Server nesse servidor.

-PublisherDBpublisher_database
É o nome do banco de dados Publicador.

-Continuous
Especifica se o agente tenta ou não sondar transações replicadas continuamente. Se especificado, o agente sondará as transações replicadas da origem em intervalos de sondagem, mesmo que não haja transações pendentes.

-DefinitionFiledef_path_and_file_name
É o caminho do arquivo de definição de agente. Um arquivo de definição de agente contém argumentos de linha de comando para o agente. O conteúdo do arquivo é analisado como um arquivo executável. Use aspas duplas (") para especificar os valores de argumentos que contêm caracteres arbitrários.

-Distributorserver_name[\instance_name]
É o nome do Distribuidor. Especifique server_name para a instância padrão do SQL Server nesse servidor. Especifique server_name\instance_name para conectar-se a uma instância nomeada do SQL Server nesse servidor.

-DistributorLogindistributor_login
É o nome de logon do Distribuidor.

-DistributorPassworddistributor_password
É a senha do Distribuidor.

-DistributorSecurityMode [ 0| 1]
Especifica o modo de segurança do Distribuidor. Um valor de 0 indica o Modo de Autenticação do SQL Server (padrão) e um valor de 1 indica o Modo de Autenticação do Microsoft Windows.

-EncryptionLevel [ 0 | 1 | 2 ]
É o nível da criptografia TLS (Transport Layer Security), anteriormente conhecida como SSL (Secure Sockets Layer), que é usada pelo Agente de Leitor de Log ao fazer conexões.

Valor EncryptionLevel Descrição
0 Especifica que o TLS não é usado.
1 Especifica que o TLS é usado, mas que o agente não verifica se o certificado de servidor TSL/SSL é assinado por um emissor confiável.
2 Especifica que o TLS é usado e que o certificado é verificado.

Observação

É definido um certificado TLS/SSL válido com um nome de domínio totalmente qualificado do SQL Server. Para que o agente seja conectado com êxito ao definir -EncryptionLevel como 2, crie um alias no SQL Server local. O parâmetro 'Alias Name' deve ser o nome do servidor e o parâmetro 'Server' deve ser definido como o nome totalmente qualificado do SQL Server.

Confira mais informações em Exibir e modificar as configurações de replicação de segurança.

-ExtendedEventConfigFileconfiguration_path_and_file_name
Especifica o caminho e o nome do arquivo de configuração XML de eventos estendidos. O arquivo de configuração de eventos estendidos permite configurar sessões e habilitar eventos para acompanhamento.
Somente para uso interno.

-HistoryVerboseLevel [ 0| 1| 2]
Especifica a quantidade de histórico registrada durante uma operação de leitura de log. Você pode minimizar o efeito de desempenho do registro de histórico selecionando 1.

Valor HistoryVerboseLevel Descrição
0
1 Padrão. Sempre atualiza uma mensagem de histórico anterior do mesmo status (inicialização, andamento, êxito, etc.). Se nenhum registro anterior com o mesmo status existir, insira um registro novo.
2 Insira novos registros de histórico, a menos que o registro seja para coisas como mensagens ociosas ou mensagens de trabalho de execução longa; em tal caso, atualize os registros anteriores.

-KeepAliveMessageIntervalkeep_alive_message_interval_seconds
É o número de segundos antes que o thread de histórico verifique se alguma das conexões existentes está esperando por uma resposta do servidor. Esse valor pode ser diminuído para evitar que o agente de verificação marque o Agente de Leitor de Log como suspeito ao executar um lote de execução longa. O padrão é 300 segundos.

-LoginTimeOutlogin_time_out_seconds
É o número de segundos antes de o logon atingir o tempo limite. O padrão é 15 segundos.

-LogScanThresholdscan_threshold
Somente para uso interno.

-MaxCmdsInTrannumber_of_commands
Especifica o número máximo de instruções agrupadas em uma transação à medida que o Log Reader grava comandos no banco de dados de distribuição. O uso desse parâmetro permite que o Agente de Leitor de Log e o Agente de Distribuição divida grandes transações (consistindo em muitos comandos) no Publicador em várias transações menores quando aplicadas no Assinante. A especificação desse parâmetro pode reduzir a contenção no Distribuidor e pode reduzir a latência entre o Publicador e o Assinante. Como a transação original é aplicada em unidades menores, o Assinante pode acessar linhas de uma transação lógica de Publicador antes do fim da transação original, O padrão é 0, que preserva os limites de transação do Publicador.

Observação

Esse parâmetro é ignorado para publicações que não sejam do SQL Server. Para obter mais informações, consulte a seção que "Configurando o trabalho de conjunto das transações" em Performance Tuning for Oracle Publishers.

Aviso

OMaxCmdsInTran não foi criado para estar sempre ativado. Ele existe para contornar casos em que alguém acidentalmente executou um grande número de operações DML em uma única transação (causando um atraso na distribuição de comandos até que toda a transação esteja no banco de dados de distribuição, bloqueios sendo mantidos etc.). Se você rotineiramente enfrentar essa situação, examine seus aplicativos e descubra maneiras de reduzir o tamanho da transação.

Aviso

Não haverá suporte para MaxCmdsInTran se o banco de dados de publicação fornecido estiver habilitado para Captura de dados de alterações e replicação. O uso de MaxCmdsInTran nessa configuração pode levar à perda de dados nas tabelas de alterações da CDA. Isso também pode causar erros de PK se o parâmetro MaxCmdsInTran for adicionado e removido durante a replicação de uma transação grande.

-MessageIntervalmessage_interval
É o intervalo de tempo usado para registro de histórico. Um evento de histórico é registrado quando o valor MessageInterval é alcançado depois que o ultimo evento de histórico é registrado.

Se não houver nenhuma transação replicada disponível na origem, o agente informará uma mensagem de não transação ao Distributor. Essa opção especifica quanto tempo o agente espera antes de informar outro mensagem de não transação. O agente sempre informa uma mensagem de não transação quando detecta que não há transações disponíveis na origem após transações replicadas de processamento anterior. O padrão é 60 segundos.

-MultiSubnetFailover [0|1] Especifica se a propriedade MultiSubnetFailover está habilitada ou não. Se o seu aplicativo estiver se conectando a um grupo de disponibilidade AlwaysOn (AG) em diferentes sub-redes, definir MultiSubnetFailover como 1 (true) fornece uma detecção e uma conexão mais rápida ao servidor (atualmente) ativo.

Ao configurar uma publicação transacional em um AG, o Agente de Leitor de Log cria um servidor vinculado dinâmico para o ouvinte verificar os metadados. A partir do SQL Server 2022 CU10, há uma alteração na configuração do servidor vinculado dinâmico. Para obter mais informações, confira KB5031778.

Aplica-se ao: SQL Server (Começando pelo SQL Server 2019 (15.x)).

-Outputoutput_path_and_file_name
É o caminho do arquivo de saída do agente. Se o nome de arquivo não for fornecido, a saída será enviada ao console. Se o nome do arquivo especificado existir, a saída será anexada ao arquivo.

-OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
Especifica se a saída deve ser detalhada.

Valor Descrição
0 Somente mensagens de erro são impressas.
1 Todas as mensagens de relatório de progresso do agente são impressas.
2 (padrão) Todas as mensagens de relatório de progresso do agente e de erro são impressas.
3 Os primeiros 100 bytes de cada comando replicado são impressos.
4 Todos os comandos replicados são impressos.

Os valores 2-4 são úteis na depuração.

-PacketSizepacket_size
É o tamanho do pacote, em bytes. O padrão é 4096 (bytes).

-PollingIntervalintervalo_de_sondagem
É a frequência, em segundos, que o log é consultado para transações replicadas. O padrão é 5 segundos.

-ProfileNameprofile_name
Especifica um perfil de agente a ser usado para parâmetros de agente. Se ProfileName for NULL, o perfil de agente será desabilitado. Se ProfileName não for especificado, o perfil padrão de tipo de agente será usado. Para obter mais informações, consulte Perfis do agente de replicação.

-PublisherFailoverPartnerserver_name[\instance_name]
Especifica a instância de parceiro de failover do SQL Server que participa de uma sessão de espelhamento de banco de dados com o banco de dados de publicação. Para obter mais informações, confira Espelhamento e replicação de banco de dados (SQL Server).

-PublisherSecurityMode [ 0| 1]
Especifica o modo de segurança do Publicador. Um valor de 0 indica Autenticação do SQL Server (padrão), e um valor de 1 indica o Modo de Autenticação do Windows.

-PublisherLoginpublisher_login
É o nome de logon do Publicador.

-PublisherPasswordpublisher_password
É a senha do Publicador.

-QueryTimeOuttempo_limite_da_consulta_em_segundos
É o número de segundos antes do tempo limite da consulta. O padrão é 1800 segundos.

-ReadBatchSizenumber_of_transactions
É o número máximo de transações lidas de um log de transações do banco de dados de publicação por ciclo de processamento, com um padrão de 500 e máximo de 10 mil. O agente continuará lendo transações em lotes até que todas as transações tenham sido lidas do log. Esse parâmetro não tem suporte para Editores Oracle.

-ReadBatchThresholdnumber_of_commands
É o número de comandos de replicação a serem lidos no log de transações, antes de ser emitido para o Assinante pelo Agente de Distribuição. O padrão é 0. Se o parâmetro não for especificado, o Agente de Leitor de Log lerá até a parte final do log ou até o número especificado em -ReadBatchSize (número de transações).

-RecoverFromDataErrors
Especifica que o Agente de Leitor de Log continuará a executar, quando encontrar erros em dados de colunas publicados de um Publicador não SQL Server. Por padrão, tais erros fazem o Agente de Leitor de Log falhar. Quando você usa -RecoverFromDataErrors, dados de coluna são replicados erroneamente como NULL ou como um valor não nulo apropriado e as mensagens de aviso são registradas na tabela MSlogreader_history . Esse parâmetro só tem suporte para Editores Oracle.

Comentários

Importante

Se você instalou o SQL Server Agent para executar com uma conta Sistema Local em vez de uma conta de usuário de domínio (o padrão), o serviço só poderá acessar o computador local. Se o Agente de Leitor de Log executado no SQL Server Agent estiver configurado para usar o modo de autenticação do Windows ao fazer logon no SQL Server, o Agente de Leitor de Log falhará. A configuração padrão é Autenticação do SQL Server. Para obter informações em como alterar contas de segurança, consulte View and Modify Replication Security Settings.

Para iniciar o Agente de Leitor de Log, execute logread.exe no prompt de comando. Para obter informações, consulte Conceitos dos executáveis do agente de replicação.

Histórico de alterações

Conteúdo atualizado
Adicionado o parâmetro -ExtendedEventConfigFile .
Adicionado o parâmetro -MultiSubnetFailover.

Confira também

Administração do agente de replicação