Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
O Replication Log Reader Agent é 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 para o banco de dados de distribuição.
Observação
Os parâmetros podem ser especificados em qualquer ordem. Quando os parâmetros opcionais não são especificados, valores predefinidos com base no perfil do agente padrão são usados.
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 | 3 | 4 ] ]
[ -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.
- Editora server_name [ \instance_name ]
O nome do Editor. Especifique <server_name> para a instância padrão do SQL Server nesse servidor. Especifique <server_name>\<instance_name> para uma instância nomeada do SQL Server nesse servidor.
-PublisherDB publisher_database
O nome do banco de dados do Publisher.
-Em contínuo
Especifica se o agente tenta sondar transações replicadas continuamente. Se especificado, o agente sonda transações replicadas da origem em intervalos de sondagem, mesmo que não haja transações pendentes.
-Definição do Ficheiro def_path_and_file_name
O caminho do arquivo de definição do 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 valores de argumento que contenham caracteres arbitrários.
-Distribuidor server_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 uma instância nomeada do SQL Server nesse servidor.
-DistribuidorLogin distributor_login
O nome de login do Distribuidor.
-DistribuidorPalavra-passe distributor_password
A palavra-passe do Distribuidor.
-Modo de Segurança do Distribuidor [ 0 | 1 ]
Especifica o modo de segurança do Distribuidor. Um valor indica o Modo de Autenticação do 0 SQL Server (padrão) e um valor indica o Modo de Autenticação do 1 Windows.
-Nível de Encriptação [ 0 | 1 | 2 | 3 | 4 ]
O nível de criptografia TLS (Transport Layer Security), anteriormente conhecido como SSL (Secure Sockets Layer), usado pelo Log Reader Agent ao fazer conexões.
| Valor EncryptionLevel | Descrição |
|---|---|
0 |
Especifica que o TLS não é usado. |
1 |
Especifica que o TLS 1.2 é usado, mas o agente não verifica se o certificado do servidor TLS está assinado por um emissor confiável. |
2 |
Especifica que o TLS 1.2 é usado e que o certificado é verificado. |
3 |
Especifica que, para conexões da Instância Gerenciada SQL do Azure, ou do SQL Server 2025 e versões posteriores, com a Instância Gerenciada SQL do Azure, o TLS 1.3 é usado e o certificado é verificado. Para conexões com o SQL Server (qualquer versão com suporte), o TLS 1.3 não é imposto com a opção 3. |
4 |
Especifica que, para conexões da Instância Gerenciada SQL do Azure, ou do SQL Server 2025 e versões posteriores, com a Instância Gerenciada SQL do Azure, o TLS 1.3 é usado e o certificado é verificado. Para conexões da Instância Gerenciada SQL do Azure, ou SQL Server 2025 e versões posteriores, com o SQL Server (qualquer versão com suporte), o TLS 1.3 é usado e o certificado é verificado. Requer a instalação do certificado em hosts do SQL Server que estão recebendo conexões com EncryptionLevel set como 4. |
Observação
Para topologias de replicação com um distribuidor remoto:
Um certificado TLS/SSL válido é definido com um nome de domínio totalmente qualificado do SQL Server. Para que o agente se conecte 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.
Para obter mais informações, consulte Exibir e modificar configurações de segurança de replicação.
-ExtensedEventConfigFile configuration_path_and_file_name
Especifica o caminho e o nome do arquivo para o arquivo de configuração XML de eventos estendidos. O arquivo de configuração de eventos estendido permite configurar sessões e habilitar eventos para rastreamento. Apenas para uso interno.
-HistóriaVerboseLevel [ 0 | 1 | 2 ]
Especifica a quantidade de histórico registrado durante uma operação de leitor de log. Você pode minimizar o efeito de desempenho do registro de histórico selecionando 1.
| Valor HistoryVerboseLevel | Descrição |
|---|---|
0 |
Nenhum. |
1 (padrão) |
Sempre atualize uma mensagem de histórico anterior do mesmo status (inicialização, progresso, sucesso e assim por diante). Se não existir nenhum registo anterior com o mesmo estado, insira um novo registo. |
2 |
Insira novos registros de histórico, a menos que o registro seja para coisas como mensagens ociosas ou mensagens de trabalho de longa duração, caso em que atualize os registros anteriores. |
-KeepAliveMessageInterval keep_alive_message_interval_seconds
O número de segundos antes do thread de histórico verifica se alguma das conexões existentes está aguardando uma resposta do servidor. Esse valor pode ser reduzido para evitar que o agente de verificação marque o Log Reader Agent como suspeito ao executar um lote de longa execução. O padrão é 300 segundos.
- LoginTimeout login_time_out_seconds
O número de segundos antes do início de sessão expirar. O padrão é 15 segundos.
- LogScanThreshold scan_threshold
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
-MaxCmdsInTran number_of_commands
Especifica o número máximo de instruções agrupadas em uma transação à medida que o Leitor de Log grava comandos no banco de dados de distribuição. O uso desse parâmetro permite que o Log Reader Agent e o Distribution Agent dividam transações grandes (consistindo em muitos comandos) no Publisher em várias transações menores quando aplicadas no Assinante. Especificar esse parâmetro pode reduzir a contenção no Distribuidor e reduzir a latência entre o Editor e o Assinante. Como a transação original é aplicada em unidades menores, o Assinante pode acessar linhas de uma grande transação lógica do Publisher antes do final da transação original, quebrando a atomicidade transacional estrita. O padrão é 0, que preserva os limites de transação do Editor.
Esse parâmetro é ignorado para publicações que não sejam do SQL Server. Para obter mais informações, consulte Configurando o trabalho do conjunto de transações.
MaxCmdsInTran não foi concebido para estar sempre ligado. Ele funciona em torno de casos em que alguém acidentalmente realizou um grande número de operações DML em uma única transação. Isso causa 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 se enquadra nessa situação, analise seus aplicativos e encontre maneiras de reduzir o tamanho da transação.
Advertência
Erros de chave primária podem ocorrer se o parâmetro for adicionado e removido durante a MaxCmdsInTran replicação de uma transação grande. Para resolver erros de chave primária em transações grandes, adicione o MaxCmdsInTran parâmetro novamente até que a transação seja replicada para o banco de dados de distribuição.
O uso do MaxCmdsInTran parâmetro em um banco de dados que tenha a Captura de Dados de Alteração (CDC) e a replicação habilitada não é suportado e pode levar à perda de dados nas tabelas de alteração CDC.
-IntervaloMensagem message_interval
O intervalo de tempo usado para o registro do histórico. Um evento de histórico é registrado quando o MessageInterval valor é atingido após o último evento de histórico ser registrado.
Se não houver nenhuma transação replicada disponível na origem, o agente relatará uma mensagem sem transação ao Distribuidor. Esta opção especifica quanto tempo o agente aguarda antes de relatar outra mensagem sem transação. Os agentes sempre relatam uma mensagem sem transação quando detetam que não há transações disponíveis na origem depois de processar anteriormente as transações replicadas. A predefinição é 60 segundos.
-MultiSubnetFailover [ 0 | 1 ]
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores.
Especifica se a propriedade MultiSubnetFailover está habilitada ou não. Se seu aplicativo estiver se conectando a um grupo de disponibilidade Always On (AG) em sub-redes diferentes, definir MultiSubnetFailover como 1 (true) fornece deteção e conexão mais rápidas com o servidor (atualmente) ativo.
Quando você configura uma publicação transacional em um AG, o Log Reader Agent cria um servidor vinculado dinâmico para que o ouvinte verifique os metadados. No SQL Server 2022 (16.x) 10 e versões posteriores, há uma alteração na configuração do servidor vinculado dinâmico. Para obter mais informações, consulte KB5031778.
-Saída output_path_and_file_name
O caminho do arquivo de saída do agente. Se o nome do arquivo não for fornecido, a saída será enviada para o console. Se o nome de 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 |
Apenas as mensagens de erro são impressas. |
1 |
Todas as mensagens do relatório de progresso do agente são impressas. |
2 (padrão) |
Todas as mensagens de erro e mensagens de relatório de progresso do agente 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 durante a depuração.
- PacoteTamanho packet_size
O tamanho do pacote, em bytes. O padrão é 4096 (bytes).
- PollingInterval polling_interval
Com que frequência, em segundos, o log é consultado para transações replicadas. O padrão é 5 segundos.
-Nome do Perfil profile_name
Especifica um perfil de agente a ser usado para parâmetros de agente. Se ProfileName for NULL, o perfil do agente será desativado. Se ProfileName não for especificado, o perfil padrão para o tipo de agente será usado. Para obter informações, consulte Perfis do agente de replicação.
- PublisherFailoverPartner server_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, consulte Espelhamento e replicação de banco de dados (SQL Server).
-Modo de Segurança do Editor [ 0 | 1 ]
Especifica o modo de segurança do Editor. Um valor de indica Autenticação do 0 SQL Server (padrão) e um valor indica o Modo de Autenticação do 1 Windows.
-PublisherLogin publisher_login
O nome de login do Editor.
- EditorPalavra-passe publisher_password
A palavra-passe do Publicador.
- QueryTimeout query_time_out_seconds
O número de segundos antes do tempo limite da consulta. O padrão é 1.800 segundos.
- ReadBatchSize number_of_transactions
O número máximo de transações lidas do 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 10000. O agente continua a ler as transações em lotes até que todas as transações sejam lidas do log. Este parâmetro não é suportado por editores Oracle.
- ReadBatchThreshold number_of_commands
O número de comandos de replicação a serem lidos no log de transações antes de serem emitidos para o Assinante pelo Agente de Distribuição. O padrão é 0. Se esse parâmetro não for especificado, o Log Reader Agent lerá até o final do log ou o número especificado em -ReadBatchSize (número de transações).
-RecoverFromDataErrors
Especifica que o Log Reader Agent continue a ser executado quando encontrar erros em dados de coluna publicados de um editor que não seja do SQL Server. Por padrão, esses erros fazem com que o Log Reader Agent falhe. Quando você usa -RecoverFromDataErrorso , os dados de coluna incorretos são replicados como NULL ou um valor não nulo apropriado e as mensagens de aviso são registradas na tabela MSlogreader_history . Este parâmetro só é suportado para Editores Oracle.
Observações
Se você instalou o SQL Server Agent para ser executado em uma conta do sistema local em vez de em uma conta de usuário de domínio (o padrão), o serviço poderá acessar apenas o computador local. Se o Log Reader Agent executado no SQL Server Agent estiver configurado para usar o Modo de Autenticação do Windows quando fizer logon no SQL Server, o Log Reader Agent falhará. A configuração padrão é Autenticação do SQL Server. Para obter informações sobre como alterar contas de segurança, consulte Exibir e modificar configurações de segurança de replicação.
Para iniciar o Log Reader Agent, execute logread.exe a partir do prompt de comando. Para obter informações, consulte Conceitos de executáveis do Replication Agent.