Agent de distribution de réplication
L'Agent de distribution de réplication est un fichier exécutable qui déplace la capture instantanée (pour la réplication de capture instantanée et la réplication transactionnelle) et les transactions contenues dans les tables de base de données de distribution (pour la réplication transactionnelle) vers les tables de destination au niveau des Abonnés.
[!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 des paramètres du Registre prédéfinis sur l'ordinateur local sont utilisées.
Syntaxe
distrib [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Subscriber server_name[\instance_name]
-SubscriberDB subscriber_database
[-AltSnapshotFolder alt_snapshot_folder_path]
[-BcpBatchSize bcp_batch_size]
[-CommitBatchSize commit_batch_size]
[-CommitBatchThreshold commit_batch_threshold]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor distributor]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-EncryptionLevel [0|1|2]]
[-ErrorFile error_path_and_file_name]
[-FileTransferType [0|1]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password]
[-FtpPort ftp_port]
[-FtpUserName ftp_user_name]
[-HistoryVerboseLevel [0|1|2|3]]
[-Hostname host_name]
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads]
[-MaxDeliveredTransactions number_of_transactions]
[-MessageInterval message_interval]
[-OledbStreamThreshold oledb_stream_threshold]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-Publication publication]
[-QueryTimeOut query_time_out_seconds]
[-QuotedIdentifier quoted_identifier]
[-SkipErrors native_error_id [:...n]]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password]
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|3]]
[-SubscriptionStreams [1|2|...64]]
[-SubscriptionTableName subscription_table]
[-SubscriptionType [0|1|2]]
[-TransactionsPerHistory [0|1|...10000]]
[-UseDTS]
[-UseInprocLoader]
[-UseOledbStreaming]
Arguments
-?
Imprime tous les paramètres disponibles.-Publisherserver_name[**\instance_name]
Nom du serveur de publication. 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.-PublisherDBpublisher_database
Nom de la base de données du serveur de publication.-Subscriberserver_name[**\instance_name]
Nom de l'Abonné. 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.-SubscriberDBsubscriber_database
Nom de la base de données de l'Abonné.-AltSnapshotFolderalt_snapshot_folder_path
Chemin d'accès au dossier contenant la capture instantanée initiale pour un abonnement.-BcpBatchSizebcp_batch_size
Nombre de lignes à envoyer dans une opération de copie en bloc. Lorsque vous effectuez une opération bcp in, la taille du lot correspond au nombre de lignes à envoyer au serveur en une transaction, mais aussi au nombre de lignes à envoyer avant que l'Agent de distribution ne journalise un message de progression bcp. Lorsque vous effectuez une opération bcp out, une taille de lot fixe de 1000 est utilisée.-CommitBatchSizecommit_batch_size
Nombre de transactions à délivrer à l'Abonné avant l'émission d'une instruction COMMIT. La valeur par défaut est 100.-CommitBatchThreshold commit_batch_threshold
Nombre de commandes de réplication à délivrer à l'Abonné avant l'émission d'une instruction COMMIT. La valeur par défaut est 1000.-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 de la source à des fréquences d'interrogation définies, même s'il n'y a pas de transactions en attente.[!REMARQUE]
-Continuous ne doit pas être spécifié avec -MaxDeliveredTransactions. Pour plus d'informations, consultez l'entrée -MaxDeliveredTransactions, plus loin dans cette rubrique.
-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 d'invite de commandes 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.-Distributordistributor
Nom du serveur de distribution. Pour la distribution du serveur de distribution (transmission de type push), le nom a comme valeur par défaut le nom du serveur de distribution local.-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, tandis que la valeur 1 indique le mode d'authentification Windows (valeur par défaut).-EncryptionLevel [ 0 | 1 | 2 ]
Niveau du chiffrement SSL (Secure Sockets Layer) utilisé par l'Agent de distribution lors de l'établissement de connexions.Valeur EncryptionLevel
Description
0
Spécifie que le chiffrement SSL n'est pas utilisé.
1
Spécifie que le chiffrement SSL est utilisé, mais que l'agent ne vérifie pas si le certificat de serveur SSL est signé par un émetteur de confiance.
2
Spécifie que le chiffrement SSL est utilisé et que le certificat est vérifié.
Pour plus d'informations, consultez Vue d'ensemble de la sécurité (réplication).
-ErrorFileerror_path_and_file_name
Chemin d'accès et nom du fichier d'erreurs généré par l'Agent de distribution. Ce fichier est généré là où une erreur s'est produite lors de l'application de transactions de réplication sur l'Abonné ; les erreurs se produisant sur le serveur de publication ou de distribution ne sont pas journalisées dans ce fichier. Ce fichier contient les transactions de réplication ayant échoué, avec les messages d'erreur associés. S'il n'est pas spécifié, le fichier d'erreurs est créé dans le répertoire même de l'Agent de distribution. Le nom du fichier d'erreurs est le nom de l'Agent de distribution avec une extension .err. Si le nom de fichier spécifié existe, les messages d'erreur sont ajoutés au fichier. Ce paramètre peut contenir jusqu'à 256 caractères Unicode.-FileTransferType [ 0| 1]
Spécifie le type de transfert de fichier. La valeur 0 indique la convention d'affectation des noms (UNC), tandis que la valeur 1 indique le protocole de transfert de fichiers (FTP).-FtpAddressftp_address
Adresse réseau du service FTP du serveur de distribution. S'il n'est pas spécifié, DistributorAddress est utilisé. Si DistributorAddress n'est pas spécifié, Distributor est utilisé.-FtpPasswordftp_password
Mot de passe de l'utilisateur utilisé pour la connexion au service FTP.-FtpPortftp_port
Numéro de port du service FTP du serveur de distribution. S'il n'est pas spécifié, le numéro de port par défaut pour le service FTP (21) est utilisé.-FtpUserName ftp_user_name
Nom d'utilisateur utilisé pour la connexion au service FTP. S'il n'est pas spécifié, anonymous est utilisé.-HistoryVerboseLevel[ 0 | 1 | 2 | 3 ]
Spécifie la quantité d'informations d'historique journalisées pendant une opération de distribution. Vous pouvez réduire l'effet de la journalisation d'historique sur les performances en sélectionnant 1.Valeur HistoryVerboseLevel
Description
0
Les messages de progression sont écrits dans la console ou dans un fichier de sortie. Les enregistrements d'historique ne sont pas journalisés dans la base de données de distribution.
1
Valeur 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.
3
Insère toujours de nouveaux enregistrements, sauf s'il s'agit de messages inactifs.
-Hostnamehost_name
Nom d'hôte utilisé pour la connexion au serveur de publication Ce paramètre peut contenir jusqu'à 128 caractères Unicode.-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 distribution 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 15 secondes.-MaxBcpThreadsnumber_of_threads
Spécifie le nombre d'opérations de copie en bloc pouvant être effectuées en parallèle. Le nombre maximal de threads et de connexions ODBC pouvant exister simultanément est, en privilégiant la valeur la plus petite, MaxBcpThreads ou le nombre de demandes de copie en bloc qui apparaissent dans la transaction de synchronisation dans la base de données de distribution. MaxBcpThreads doit avoir une valeur supérieure à 0 et n'a aucune limite supérieure codée en dur. La valeur par défaut est 2 fois le nombre de processeurs, la valeur maximale étant de 8. Lors de l'application d'une capture instantanée qui a été générée au niveau du serveur de publication à l'aide de l'option de capture instantanée concurrente, un thread est utilisé quel que soit le nombre que vous spécifiez pour MaxBcpThreads.-MaxDeliveredTransactionsnumber_of_transactions
Nombre maximal de transactions par émission ou par extraction appliquées aux Abonnés dans le cadre d'une synchronisation. La valeur 0 indique que la valeur maximale est un nombre infini de transactions. D'autres valeurs peuvent être utilisées par les Abonnés pour réduire la durée d'une synchronisation qui est extraite d'un serveur de publication.[!REMARQUE]
Si -MaxDeliveredTransactions est spécifié avec -Continuous, -MaxDeliveredTransactions est prioritaire. La synchronisation continue tant que le nombre de transactions spécifié par -MaxDeliveredTransactions n'est pas atteint, puis l'Agent de distribution s'arrête même si -Continuous est spécifié.
-MessageInterval message_interval
Intervalle de temps utilisé pour la journalisation d'historique. Un événement d'historique est journalisé lorsque l'un de ces paramètres est atteint :La valeur TransactionsPerHistory est atteinte après la journalisation du dernier événement d'historique.
La valeur MessageInterval est atteinte après la journalisation du dernier événement d'historique.
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 60 secondes.
-OledbStreamThresholdoledb_stream_threshold
Spécifie la taille minimale des données des objets blob, en octets, au-delà de laquelle les données seront liées sous la forme d'un flux. Vous devez spécifier –UseOledbStreaming pour utiliser ce paramètre. Les valeurs peuvent être comprises entre 400 et 1 048 576 octets, la valeur par défaut étant de 16 384 octets.-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]
Spécifie si la sortie doit être en clair. Si le niveau de détail est 0, seuls les messages d'erreur sont imprimés. Si le niveau de détail est 1, tous les messages du rapport de progression sont imprimés. Si le niveau de détail est 2 (valeur par défaut), tous les messages d'erreur et tous les messages du rapport de progression sont imprimés, ce qui peut s'avérer utile 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, à laquelle la base de données de distribution est interrogée au sujet des transactions répliquées. La valeur par défaut est de 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.-Publication publication
Nom de la publication. Ce paramètre est uniquement valide si la publication est configurée de telle sorte qu'une capture instantanée soit toujours disponible pour les nouveaux abonnements ou les abonnements réinitialisés.-QueryTimeOutquery_time_out_seconds
Nombre de secondes avant l'expiration de la requête. La valeur par défaut est de 1 800 secondes.-QuotedIdentifierquoted_identifier
Spécifie le caractère de l'identificateur entre guillemets à utiliser. Le premier caractère de la valeur indique la valeur utilisée par l'Agent de distribution. Si QuotedIdentifier est utilisé sans valeur, l'Agent de distribution utilise un espace. Si QuotedIdentifier n'est pas utilisé, l'Agent de distribution utilise n'importe quel identificateur entre guillemets pris en charge par l'Abonné.-SkipErrorsnative_error_id[:...n]
Liste séparée par des virgules spécifiant les numéros d'erreur à ignorer par cet agent. Pour plus d'informations, consultez Omission des erreurs lors de la réplication transactionnelle.-SubscriberDatabasePathsubscriber_database_path
Chemin d'accès à la base de données Jet (fichier .mdb) si SubscriberType a la valeur 2 (autorise une connexion à une base de données Jet sans nom de la source de données ODBC).-SubscriberLoginsubscriber_login
Nom de connexion de l'Abonné. Si SubscriberSecurityMode a la valeur 0 (pour l'authentification SQL Server), ce paramètre doit être spécifié.-SubscriberPasswordsubscriber_password
Mot de passe de l'Abonné. Si SubscriberSecurityMode a la valeur 0 (pour l'authentification SQL Server), ce paramètre doit être spécifié.-SubscriberSecurityMode[ 0| 1]
Spécifie le mode de sécurité de l'Abonné. La valeur 0 indique le mode d'authentification SQL Server, tandis que la valeur 1 indique le mode d'authentification Windows (valeur par défaut).-SubscriberType[ 0| 1| 3]
Spécifie le type de connexion d'Abonné utilisé par l'Agent de distribution.Valeur SubscriberType
Description
0
SQL Server
1
Source de données ODBC
3
Source de données OLE DB.
-SubscriptionStreams [0|1|2|...64]
Nombre de connexions autorisées par l'Agent de distribution afin d'appliquer des lots de modifications en parallèle à un Abonné, tout en conservant bon nombre des caractéristiques transactionnelles présentes lors de l'utilisation d'un thread unique. Pour un serveur de publication SQL Server, une plage de valeurs comprises entre 1 et 64 est prise en charge. Ce paramètre est uniquement pris en charge lorsque le serveur de publication et le serveur de distribution s'exécutent sur SQL Server 2005 ou version ultérieure. Ce paramètre n'est pas pris en charge ou doit être égal à 0 pour les Abonnés non-SQL Server ou les abonnements d'égal à égal.[!REMARQUE]
Si l'une des connexions ne réussit pas à s'exécuter ou n'est pas validée, toutes les connexions abandonneront le lot actuel, et l'Agent utilisera un flux unique pour une nouvelle tentative sur les lots ayant échoué. Avant que cette phase de nouvelle tentative ne se termine, il peut se produire des incohérences transactionnelles temporaires sur l'Abonné. Une fois que les lots ayant échoué sont validés avec succès, l'Abonné retrouve un état de cohérence transactionnelle.
Important
Lorsque vous spécifiez une valeur égale ou supérieure à 2 pour -SubscriptionStreams, l'ordre dans lequel les transactions sont reçues au niveau de l'Abonné peut différer de l'ordre dans lequel elles ont été créées au niveau du serveur de publication. Si ce comportement provoque des violations de contrainte pendant la synchronisation, vous devez utiliser l'option NOT FOR REPLICATION pour désactiver l'application de contraintes pendant la synchronisation. Pour plus d'informations, consultez Procédure : contrôler le comportement de déclencheurs et de contraintes au cours de la synchronisation (programmation Transact-SQL de la réplication).
-SubscriptionTableNamesubscription_table
Nom de la table d'abonnements générée ou a utilisée au niveau de l'Abonné donné. S'il n'est pas spécifié, la table MSreplication_subscriptions (Transact-SQL) est utilisée. Utilisez cette option pour les systèmes de gestion de base de données (SGBD) qui ne prennent pas en charge les noms de fichier longs.-SubscriptionType[ 0| 1| 2]
Spécifie le type d'abonnement pour la distribution. La valeur 0 indique un abonnement par émission de données, la valeur 1 un abonnement par extraction et la valeur 2 un abonnement anonyme.-TransactionsPerHistory[ 0| 1|... 10000]
Spécifie l'intervalle de transaction pour la journalisation d'historique. Si le nombre de transactions validées après la dernière instance de journalisation d'historique est supérieur à cette option, un message d'historique est journalisé. La valeur par défaut est 100. La valeur 0 indique une quantité infinie de TransactionsPerHistory. Consultez le paramètre –MessageIntervalprécédent.-UseDTS
Doit être spécifié en tant que paramètre pour une publication qui autorise la transformation de données.-UseInprocLoader
Améliore les performances de la capture instantanée initiale en forçant l'Agent de distribution à utiliser la commande BULK INSERT lors de l'application des fichiers de capture instantanée à l'Abonné. Ce paramètre est désapprouvé parce qu'il n'est pas compatible avec le type de données XML. Si vous ne répliquez pas de données XML, ce paramètre peut être utilisé. Ce paramètre ne peut être utilisé ni avec les captures instantanées en mode caractère ni avec les Abonnés non-SQL Server. Si vous utilisez ce paramètre, le compte de service SQL Server au niveau de l'Abonné doit posséder des autorisations en lecture sur le répertoire où se trouvent les fichiers de données .bcp de capture instantanée. Lorsque ce paramètre n'est pas utilisé, l'agent (pour les Abonnés non-SQL Server) ou le pilote ODBC chargé par l'agent (pour les Abonnés SQL Server) lit les fichiers. Le contexte de sécurité du compte de service SQL Server n'est donc pas utilisé.-UseOledbStreaming
S'il est spécifié, active la liaison des données des objets blob sous la forme d'un flux. Utilisez -OledbStreamThreshold pour spécifier la taille, en octets, au-dessus de laquelle un flux sera utilisé.
Notes
Important
Si vous avez installé l'Agent SQL Server pour s'exécuter sous un compte système local plutôt que sous un compte d'utilisateur de domaine (paramètre par défaut), le service peut uniquement accéder à l'ordinateur local. Si l'Agent de distribution qui s'exécute sous l'Agent SQL Server est configuré pour utiliser le mode d'authentification Windows lorsqu'il se connecte à une instance de SQL Server, l'Agent de distribution é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 Procédure : afficher et modifier les paramètres de sécurité de réplication (programmation Transact-SQL de la réplication).
Pour démarrer l'Agent de distribution, exécutez distrib.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 |
---|
Clarification de ce qui se passe si -Continuous et -MaxTransactionsRequired sont tous deux spécifiés. |