Partager via


sp_adddistributor (Transact-SQL)

Crée une entrée dans la table sys.sysservers (s'il n'en existe pas), marque l'entrée comme serveur de distribution et stocke les informations des propriétés. Cette procédure stockée est exécutée sur la base de données master du serveur de distribution pour enregistrer et marquer le serveur en tant que serveur de distribution. Dans le cas d'un serveur de distribution distant, la procédure stockée est également exécutée sur le serveur de publication à partir de la base de données master.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_adddistributor [ @distributor= ] 'distributor' 
    [ , [ @heartbeat_interval= ] heartbeat_interval ] 
    [ , [ @password= ] 'password' ] 
    [ , [ @from_scripting= ] from_scripting ]

Arguments

  • [ @distributor=] 'distributor'
    Nom de serveur de distribution. distributor est de type sysname et n'a pas de valeur par défaut. Ce paramètre est uniquement utilisé lors de la configuration d'un serveur de distribution distant. Il ajoute des entrées pour les propriétés du serveur de distribution dans la table msdb..MSdistributor.

  • [ @heartbeat_interval=] heartbeat_interval
    Nombre maximal de minutes pendant lesquelles un Agent peut fonctionner sans enregistrer de message pour la progression. heartbeat_interval est de type int. Sa valeur par défaut est 10. Un travail de l'Agent SQL Server est créé et s'exécute pendant cet intervalle de temps pour contrôler l'état des agents de réplication en cours d'exécution.

  • [ @password=] 'password']
    Mot de passe pour la connexion distributor_admin. password est de type sysname, avec NULL comme valeur par défaut. Si le mot de passe est NULL ou est une chaîne vide, une valeur aléatoire est redéfinie pour lui. Le mot de passe doit être configuré lors de l'ajout du premier serveur de distribution distant. La connexion distributor_admin et le password sont stockés pour l'entrée de serveur lié utilisée pour une connexion RPC distributor, y compris des connexions locales. Si distributor est local, une nouvelle valeur est affectée au mot de passe pour distributor_admin. Pour les serveurs de publication avec un serveur de distribution distant, la même valeur pour password doit être spécifiée lors de l'exécution de sp_adddistributor sur les serveurs de publication et de distribution. sp_changedistributor_password peut être utilisé pour modifier le mot de passe du serveur de distribution.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Lorsque c'est possible, demandez aux utilisateurs d'entrer leurs informations d'identification au moment de l'exécution. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher tout accès non autorisé.

  • [ @from_scripting= ] from_scripting
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_adddistributor est utilisé lors d'une réplication transactionnelle, de capture instantanée et de fusion.

Exemple

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".

-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
-- Specify the replication working directory.
SET @directory = N'\\' + $(DistPubServer) + '\repldata';
-- Specify the publication database.
SET @publicationDB = N'AdventureWorks2008R2'; 

-- Install the server MYDISTPUB as a Distributor using the defaults,
-- including autogenerating the distributor password.
USE master
EXEC sp_adddistributor @distributor = @distributor;

-- Create a new distribution database using the defaults, including
-- using Windows Authentication.
USE master
EXEC sp_adddistributiondb @database = @distributionDB, 
    @security_mode = 1;
GO

-- Create a Publisher and enable AdventureWorks2008R2 for replication.
-- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor
-- and use Windows Authentication.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);

USE [distribution]
EXEC sp_adddistpublisher @publisher=@publisher, 
    @distribution_db=@distributionDB, 
    @security_mode = 1;
GO 

Autorisations

Seuls les membres du rôle serveur fixe sysadmin peuvent exécuter sp_adddistributor.