Agent de lecture du journal des réplications

S’applique à :SQL ServerAzure SQL Managed Instance

L’Agent de lecture du journal des réplications est un fichier exécutable qui analyse le journal des transactions de chaque base de données configurée pour la réplication transactionnelle, et qui copie les transactions devant être répliquées à partir du journal des transactions dans la base de données de distribution.

Remarque

Les paramètres peuvent être spécifiés dans n'importe quel ordre. Lorsque les paramètres optionnels ne sont pas spécifiés, les valeurs prédéfinies basées sur le profil d'agent par défaut sont utilisées.

Syntaxe

  
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]  

Arguments

-?
Affiche des informations sur l’utilisation.

-Publisherserver_name[\instance_name]
Nom du serveur de publication. Spécifiez server_name pour l’instance par défaut de Microsoft SQL Server sur ce serveur. Spécifiez server_name instance_name\ pour une instance nommée de SQL Server sur ce serveur.

-PublisherDBpublisher_database
Nom de la base de données du serveur de publication.

-Continuous
Spécifie si l'Agent tente d'interroger les transactions répliquées de manière continue. S'il est spécifié, l'Agent interroge les transactions répliquées à partir de la source à des fréquences d'interrogation définies, même s'il n'y a pas de transactions en attente.

-DefinitionFiledef_path_and_file_name
Chemin d'accès du fichier de définition d'agent. Un fichier de définition d'agent contient des arguments de ligne de commande pour l'agent. Le contenu du fichier est analysé en tant que fichier exécutable. Utilisez des guillemets doubles (") pour spécifier des valeurs d'argument qui contiennent des caractères arbitraires.

-Distributorserver_name[\instance_name]
Nom du serveur de distribution. Spécifiez server_name pour l’instance par défaut de SQL Server sur ce serveur. Spécifiez server_name instance_name\ pour une instance nommée de SQL Server sur ce serveur.

-DistributorLogindistributor_login
Nom de connexion du serveur de distribution.

-DistributorPassworddistributor_password
Mot de passe du serveur de distribution.

-DistributorSecurityMode [ 0| 1]
Spécifie le mode de sécurité du serveur de distribution. La valeur 0 indique le mode d’authentification SQL Server (valeur par défaut) et la valeur 1 indique le mode d’authentification Microsoft Windows.

-EncryptionLevel [ 0 | 1 | 2 ]
Niveau du chiffrement TLS (Transport Layer Security), anciennement SSL (Secure Sockets Layer), utilisé par l'Agent de lecture du journal lors de l'établissement de connexions.

Valeur EncryptionLevel Description
0 Spécifie que le chiffrement TLS n'est pas utilisé.
1 Spécifie que le chiffrement TLS/SSL est utilisé, mais que l'agent ne vérifie pas si le certificat de serveur TLS/SSL est signé par un émetteur de confiance.
2 Spécifie que le chiffrement TLS est utilisé et que le certificat est vérifié.

Remarque

Un certificat TLS/SSL valide est défini avec le nom de domaine complet de l’instance SQL Server. Pour que l’agent puisse se connecter lorsque vous définissez EncryptionLevel sur 2, créez un alias sur l’instance locale de SQL Server. Le paramètre « Nom de l’alias » doit correspondre au nom du serveur, et le paramètre « Serveur » doit être défini sur le nom complet de l’instance SQL Server.

Pour plus d’informations, consultez Afficher et modifier les paramètres de sécurité de la réplication.

-ExtendedEventConfigFileconfiguration_path_and_file_name
Spécifie le chemin d'accès et le nom du fichier de configuration XML d'événements étendus. Le fichier de configuration d'événements étendu vous permet de configurer des sessions et d'activer des événements pour le suivi.
Utilisation interne uniquement.

-HistoryVerboseLevel [ 0| 1| 2]
Spécifie la quantité d'informations d'historique journalisées pendant une opération du lecteur du journal. Vous pouvez réduire l'effet de la journalisation d'historique sur les performances en sélectionnant 1.

Valeur HistoryVerboseLevel Description
0
1 Par défaut. Met toujours à jour un message d'historique précédent du même état (démarrage, progression, succès, et ainsi de suite). Si aucun enregistrement précédent du même état n'existe, insère un nouvel enregistrement.
2 Insère de nouveaux enregistrements d'historique, sauf s'il s'agit d'un enregistrement concernant notamment un message inactif ou un message de travail de longue durée, auquel cas les enregistrements précédents sont mis à jour.

-KeepAliveMessageIntervalkeep_alive_message_interval_seconds
Durée en secondes au terme de laquelle le thread d'historique doit vérifier si l'une des connexions existantes attend une réponse du serveur. Vous pouvez réduire cette valeur pour éviter que l'agent de vérification ne marque l'Agent de lecture du journal comme suspect lors de l'exécution d'un lot de longue durée. La valeur par défaut est 300 secondes.

-LoginTimeOutlogin_time_out_seconds
Nombre de secondes avant l’expiration de la connexion. La valeur par défaut est de 15 secondes.

-LogScanThresholdscan_threshold
Utilisation interne uniquement.

-MaxCmdsInTrannumber_of_commands
Indique le nombre maximal d'instructions groupées dans une transaction lorsque le Lecteur du journal enregistre des commandes sur la base de données de distribution. L'utilisation de ce paramètre permet à l'Agent de lecture du journal et à l'Agent de distribution de scinder les transactions importantes (constituées de plusieurs commandes) sur le serveur de publication en plusieurs transactions plus petites lors de leur application sur l'Abonné. La spécification de ce paramètre permet de réduire les contentions sur le serveur de distribution et de réduire la latence entre le serveur de publication et l'Abonné. Du fait que la transaction d'origine est appliquée en plusieurs morceaux, l'Abonné peut accéder aux lignes d'une importante transaction logique du serveur de publication avant la fin de la transaction d'origine, ce qui rompt la stricte atomicité transactionnelle. La valeur par défaut est 0, ce qui permet de conserver les limites de la transaction du serveur de publication.

Remarque

Ce paramètre est ignoré pour les publications non-SQL Server. Pour plus d'informations, consultez la section « Configuration du travail du jeu de transactions » dans Performance Tuning for Oracle Publishers.

Avertissement

MaxCmdsInTran n'a pas été conçu pour rester toujours activé. Il existe un travail autour des cas où une personne a effectué accidentellement un grand nombre d’opérations DML dans une seule transaction (entraînant un retard dans la distribution des commandes jusqu’à ce que la transaction entière se trouve dans la base de données de distribution, les verrous en cours de détention, etc.). Si vous vous retrouvez régulièrement dans cette situation, vérifiez vos applications et trouvez un moyen de réduire la taille des transactions.

Avertissement

MaxCmdsInTran n’est pas pris en charge si la base de données de publication donnée est activée pour la capture de données modifiées et la réplication. L’utilisation de MaxCmdsInTran dans cette configuration peut entraîner une perte de données dans les tables de modification cdc. Cela peut également entraîner des erreurs PK si le paramètre MaxCmdsInTran est ajouté et supprimé lors de la réplication d’une transaction volumineuse.

-MessageIntervalmessage_interval
Intervalle de temps utilisé pour la journalisation d'historique. Un événement d'historique est journalisé lorsque la valeur MessageInterval est atteinte une fois le dernier événement d'historique journalisé.

Si aucune transaction répliquée n'est disponible à la source, l'agent signale un message de non-transaction au serveur de distribution. Cette option spécifie combien de temps l'agent doit attendre avant de signaler un autre message de non-transaction. Les agents signalent toujours un message de non-transaction lorsqu'ils détectent qu'aucune transaction n'est disponible à la source après avoir précédemment traité des transactions répliquées. La valeur par défaut est de 60 secondes.

-MultiSubnetFailover [0|1] Spécifie si la propriété MultiSubnetFailover est activée ou non. Si votre application se connecte à un groupe de disponibilité Always On sur différents sous-réseaux, la définition de MultiSubnetFailover sur 1 (true) permet une détection et une connexion plus rapides au serveur actif (actuellement).

Lorsque vous configurez une publication transactionnelle sur un groupe de disponibilité, l’Agent de lecture du journal crée un serveur lié dynamique pour l’écouteur afin de vérifier les métadonnées. À compter de SQL Server 2022 CU10, il existe une modification de la configuration du serveur lié dynamique. Pour plus d’informations, consultez Ko5031778.

S’applique à : SQL Server (à partir de SQL Server 2019 (15.x)).

-Outputoutput_path_and_file_name
Chemin d'accès du fichier de sortie de l'agent. Si le nom du fichier n'est pas spécifié, la sortie est envoyée à la console. Si le nom de fichier spécifié existe, la sortie est ajoutée au fichier.

-OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
Spécifie si la sortie doit être en clair.

Valeur Description
0 Seuls les messages d'erreur sont imprimés.
1 Tous les messages du rapport de progression de l'agent sont imprimés.
2 (par défaut) Tous les messages d'erreur et tous les messages du rapport de progression sont imprimés.
3 Les 100 premiers octets de chaque commande répliquée sont imprimés.
4 Toutes les commandes répliquées sont imprimées.

Les valeurs 2-4 sont utiles lors du débogage.

-PacketSizepacket_size
Taille du paquet en octets. La valeur par défaut est 4 096 octets.

-PollingIntervalpolling_interval
Fréquence, en secondes, d'interrogation du journal pour l'obtention de transactions répliquées. La valeur par défaut est 5 secondes.

-ProfileNameprofile_name
Spécifie un profil d'agent à utiliser pour les paramètres d'agent. Si ProfileName a la valeur NULL, le profil d'agent est désactivé. Si ProfileName n'est pas spécifié, le profil par défaut du type d'agent est utilisé. Pour plus d’informations, consultez Profils de l’Agent de réplication.

-PublisherFailoverPartnerserver_name[\instance_name]
Spécifie l’instance de partenaire de basculement de SQL Server participant à une session de miroir de base de données avec la base de données de publication. Pour plus d’informations, consultez Mise en miroir de bases de données et réplication (SQL Server).

-PublisherSecurityMode [ 0| 1]
Spécifie le mode de sécurité du serveur de publication. La valeur 0 indique l’authentification SQL Server (valeur par défaut) et la valeur 1 indique le mode d’authentification Windows.

-PublisherLoginpublisher_login
Nom de connexion du serveur de publication.

-PublisherPasswordpublisher_password
Mot de passe du serveur de publication.

-QueryTimeOutquery_time_out_seconds
Nombre de secondes avant l’expiration de la requête. La valeur par défaut est 1800 secondes.

-ReadBatchSizenumber_of_transactions
Nombre maximal de transactions lues dans le journal des transactions de la base de données de publication par cycle de traitement, avec 500 comme valeur par défaut et 1 000 comme valeur maximale. L'agent continue à lire les transactions par lots jusqu'à ce que toutes les transactions aient été lues dans le journal. Ce paramètre n'est pas pris en charge pour les serveurs de publication Oracle.

-ReadBatchThresholdnumber_of_commands
Nombre de commandes de réplication à lire dans le journal des transactions avant que l'Agent de distribution ne les envoie à l'Abonné. La valeur par défaut est 0. Si ce paramètre n'est pas spécifié, l'Agent de lecture du journal lit la totalité du journal ou jusqu'au nombre spécifié - ReadBatchSize (nombre de transactions).

-RecoverFromDataErrors
Spécifie que l'Agent de lecture du journal poursuit son exécution lorsqu'il rencontre des erreurs dans les données de colonne publiées à partir d'un serveur de publication non-SQL Server. Par défaut, de telles erreurs provoquent l'échec de l'Agent de lecture du journal. Lorsque vous utilisez -RecoverFromDataErrors, les données de colonne erronées sont répliquées soit en tant que valeur NULL, soit en tant que valeur non nulle appropriée, et des messages d'avertissement sont journalisés dans la table MSlogreader_history . Ce paramètre est uniquement pris en charge pour les serveurs de publication Oracle.

Notes

Important

Si vous avez installé SQL Server Agent pour s’exécuter sous un compte système local au lieu d’un compte d’utilisateur de domaine (la valeur par défaut), le service peut accéder uniquement à l’ordinateur local. Si l’Agent de lecture du journal qui s’exécute sous SQL Server Agent est configuré pour utiliser le mode d’authentification Windows lorsqu’il se connecte à SQL Server, l’Agent de lecture du journal échoue. Le paramètre par défaut est l’authentification SQL Server. Pour plus d'informations sur la modification des comptes de sécurité, consultez View and Modify Replication Security Settings.

Pour démarrer l'Agent de lecture du journal, exécutez logread.exe à l'invite de commandes. Pour plus d’informations, consultez Concepts des exécutables de l’agent de réplication.

Historique des modifications

Mise à jour du contenu
Ajout du paramètre ExtendedEventConfigFile .
Ajout du paramètre -MultiSubnetFailover.

Voir aussi

Administration de l’Agent de réplication